From 0f6b4b6cd8e3abfd015f50a7a7b9e220cd1dd8a1 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Mon, 26 Aug 2024 13:06:22 +0900 Subject: [PATCH 01/33] change vim config lua style. --- .config/nvim/init.lua | 15 +++ .config/nvim/init.vim | 129 ------------------------ .config/nvim/lua/plugins.lua | 1 + .config/nvim/lua/plugins/etc.lua | 25 +++++ .config/nvim/lua/plugins/git.lua | 14 +++ .config/nvim/lua/plugins/lsp-config.lua | 25 +++++ .config/nvim/lua/plugins/lualine.lua | 12 +++ .config/nvim/lua/plugins/neo-tree.lua | 12 +++ .config/nvim/lua/plugins/suda.lua | 6 ++ .config/nvim/lua/plugins/themes.lua | 49 +++++++++ .config/nvim/lua/plugins/treesitter.lua | 12 +++ .config/nvim/lua/vim-options.lua | 53 ++++++++++ .config/nvim/plugList.vim | 25 ----- .zshrc | 8 +- 14 files changed, 227 insertions(+), 159 deletions(-) create mode 100644 .config/nvim/init.lua delete mode 100644 .config/nvim/init.vim create mode 100644 .config/nvim/lua/plugins.lua create mode 100644 .config/nvim/lua/plugins/etc.lua create mode 100644 .config/nvim/lua/plugins/git.lua create mode 100644 .config/nvim/lua/plugins/lsp-config.lua create mode 100644 .config/nvim/lua/plugins/lualine.lua create mode 100644 .config/nvim/lua/plugins/neo-tree.lua create mode 100644 .config/nvim/lua/plugins/suda.lua create mode 100644 .config/nvim/lua/plugins/themes.lua create mode 100644 .config/nvim/lua/plugins/treesitter.lua create mode 100644 .config/nvim/lua/vim-options.lua delete mode 100644 .config/nvim/plugList.vim diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..56aacdb --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,15 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup("plugins") +require("vim-options") diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index 57c4a1c..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,129 +0,0 @@ -" Vim Configuration -set nocompatible "move using arrow key -"filtype plugin on -set number -set ai "auto indent -set si "smart indent -set cindent " c style indent - -set shiftwidth=4 "shift order 4step -set tabstop=4 "tab order 4step -set hlsearch "highlight empathize the word. - -set history=1000 "history store depth -set nobackup "no generate swp file -set noswapfile -set nowritebackup -set backupdir=~/.backup/ -set directory=~/.backup/ - -set ruler "display the cursor position -set title "display the title -set showmatch "display the matched bracket -"set nowrap "no auto linefeed -set wmnu "auto word finder - -set autochdir " auto change working directory - -set hidden "buffer hidden -set updatetime=300 " 300ms -set cmdheight=2 " Better display for messages -set shortmess+=c " don't give [ins-completion-menu] messages. -set signcolumn=yes " always show signcolumns - - -set backspace=indent,eol,start -set fencs=ucs-bom,utf-8,cp949 -set clipboard^=unnamed,unnamedplus - -set mouse=a - -" PluginManager in vimrc -runtime plugList.vim - -""""""""""""""""""""""""""""""""""""""""""""""""""" -" Colorscheme -""""""""""""""""""""""""""""""""""""""""""""""""""" -"""""""""""""" One Dark -"colorscheme onedark -"""""""""""""" Grub_box -let g:gruvbox_contrast_dark='soft' -set background=dark -colorscheme gruvbox -let g:airline_theme='gruvbox' -"""""""""""""" Paper Color -"set background=light -"colorscheme PaperColor -"let g:airline_theme='hybrid' -"let g:PaperColor_Theme_Options = { -" \ 'theme': { -" \ 'default.light': { -" \ 'transparent_background': 1 -" \ } -" \ } -" \ } -"""""""""""""" Molokai -"let g:molokai_original = 1 -"colorscheme molokai -"""""""""""""" Solarized 8 -"set background=light -"colorscheme solarized8_high -"let g:airline_theme='solarized8' -"""""""""""""" Challenger Deep -"colorscheme challenger_deep -"colorscheme palenight - -""""""""""""""""""""""""""""""""""""""""""""""""""" -" Air-line -""""""""""""""""""""""""""""""""""""""""""""""""""" -let g:airline#extensions#tabline#enabled = 1 " turn on buffer list -set laststatus=2 " turn on bottom bar - - -"""""""""""""""""""""""""""""""""""""""""""""""""" -" Git Gutter -"""""""""""""""""""""""""""""""""""""""""""""""""" -let g:gitgutter_highlight_lines = 1 -map :GitGutterLineHighlightsToggle - - -"""""""""""""""""""""""""""""""""""""""""""""""""" -" easymotion -"""""""""""""""""""""""""""""""""""""""""""""""""" -" f{char} to move to {char} -"map f (easymotion-bd-f) -"nmap f (easymotion-overwin-f) - -" s{char}{char} to move to {char}{char} -nmap s (easymotion-overwin-f2) - -" Move to line -"map L (easymotion-bd-jk) -"nmap L (easymotion-overwin-line) - -" Move to word -map w (easymotion-bd-w) -nmap w (easymotion-overwin-w) - -map "+ygv"*y -map "+p -map :cd %:p:h:term bash -map @a -map "byaw/incNumber/b -cw"bp - -"""""""""""""""""""""""""""""""""""""""""""""""""" -" Visual-star (Search using * / in visual modde) -"""""""""""""""""""""""""""""""""""""""""""""""""" -xnoremap * :call VSetSearch('/')/=@/ -xnoremap # :call VSetSearch('?')?=@/ - -function! s:VSetSearch(cmdtype) - let temp = @s - norm! gv"sy - let @/ = '\V' . substitute(escape(@s, a:cmdtype.'\'), '\n', '\\n', 'g') - let @s = temp -endfunction - - - diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100644 index 0000000..a564707 --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -0,0 +1 @@ +return {} diff --git a/.config/nvim/lua/plugins/etc.lua b/.config/nvim/lua/plugins/etc.lua new file mode 100644 index 0000000..2481f00 --- /dev/null +++ b/.config/nvim/lua/plugins/etc.lua @@ -0,0 +1,25 @@ +return { + { + "tpope/vim-unimpaired", + config = function() + end + }, + { + "tpope/vim-commentary", + config = function() + end + }, + { + "tpope/vim-surround", + config = function() + end + }, + { + "easymotion/vim-easymotion", + config = function() + vim.keymap.set('n', 's', '(easymotion-overwin-f2)', {}) + vim.keymap.set('n', 'w', '(easymotion-bd-w)', {}) + -- vim.keymap.set('n', 'w', '(easymotion-bd-w)', {}) + end + }, +} diff --git a/.config/nvim/lua/plugins/git.lua b/.config/nvim/lua/plugins/git.lua new file mode 100644 index 0000000..a3cfe80 --- /dev/null +++ b/.config/nvim/lua/plugins/git.lua @@ -0,0 +1,14 @@ +return { + { + "tpope/vim-fugitive", -- git wrapper + config = function() + end + }, + { + "airblade/vim-gitgutter", -- git modified view; + config = function() + vim.g.gitgutter_highlight_lines = 1 + vim.keymap.set({'n', 'v'}, '', ':GitGutterLineHighlightsToggle', {}) + end + }, +} diff --git a/.config/nvim/lua/plugins/lsp-config.lua b/.config/nvim/lua/plugins/lsp-config.lua new file mode 100644 index 0000000..f41e798 --- /dev/null +++ b/.config/nvim/lua/plugins/lsp-config.lua @@ -0,0 +1,25 @@ +return { + { + "williamboman/mason.nvim", + config = function() + require("mason").setup() + end + }, + { + "williamboman/mason-lspconfig.nvim", + config = function() + require("mason-lspconfig").setup({ + ensure_installed = {"lua_ls", "clangd", "cmake", "cssls", "html"} + }) + end + }, + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({}) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) + end + } +} + diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..dd67160 --- /dev/null +++ b/.config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,12 @@ +return { + 'nvim-lualine/lualine.nvim', + config = function() + require('lualine').setup({ + options = { + icons_enabled = true, + theme = 'auto' + } + }) + end +} + diff --git a/.config/nvim/lua/plugins/neo-tree.lua b/.config/nvim/lua/plugins/neo-tree.lua new file mode 100644 index 0000000..9c09d1f --- /dev/null +++ b/.config/nvim/lua/plugins/neo-tree.lua @@ -0,0 +1,12 @@ +return { + "nvim-neo-tree/neo-tree.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + }, + config = function() + vim.keymap.set('n', '', ':Neotree filesystem reveal left', {}) + -- vim.keymap.set('n', '', ':Neotree filesystem reveal left', {}) + end +} diff --git a/.config/nvim/lua/plugins/suda.lua b/.config/nvim/lua/plugins/suda.lua new file mode 100644 index 0000000..b0c305f --- /dev/null +++ b/.config/nvim/lua/plugins/suda.lua @@ -0,0 +1,6 @@ +return { + 'lambdalisue/suda.vim', + config = function() + end +} + diff --git a/.config/nvim/lua/plugins/themes.lua b/.config/nvim/lua/plugins/themes.lua new file mode 100644 index 0000000..9a6e986 --- /dev/null +++ b/.config/nvim/lua/plugins/themes.lua @@ -0,0 +1,49 @@ +return { + { + "NLKNguyen/papercolor-theme", + config = function() + -- vim.cmd("set background=light") + -- vim.cmd.colorscheme "PaperColor" + end + }, + { + "tomasr/molokai", + config = function() + -- vim.cmd.colorscheme "molokai" + end + }, + { + "joshdick/onedark.vim", + config = function() + -- vim.cmd.colorscheme "onedark" + end + }, + { + 'morhetz/gruvbox', + config = function() + -- vim.g.gruvbox_contrast_dark='soft' + -- vim.cmd("set background=dark") + -- vim.cmd.colorscheme "gruvbox" + end + }, + { + "drewtempelmeyer/palenight.vim", + config = function() + -- vim.cmd.colorscheme "palenight" + end + }, + { + "challenger-deep-theme/vim", + name = "challenger_deep", + config = function() + -- vim.cmd.colorscheme "challenger_deep" + end + }, + { + "catppuccin/nvim", + config = function() + vim.cmd.colorscheme "catppuccin" + end + }, +} + diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..6550b68 --- /dev/null +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,12 @@ +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function() + local configs = require("nvim-treesitter.configs") + configs.setup({ + ensure_installed = {"lua", "c", "rust", "verilog"}, + highlight = { enable = true }, + indent = { enable = true } + }) + end +} diff --git a/.config/nvim/lua/vim-options.lua b/.config/nvim/lua/vim-options.lua new file mode 100644 index 0000000..b17909f --- /dev/null +++ b/.config/nvim/lua/vim-options.lua @@ -0,0 +1,53 @@ +-- Vim Configuration +vim.cmd("set nocompatible") -- move using arrow key +-- filtype plugin on +vim.cmd("set number") +vim.cmd("set ai") -- auto indent +vim.cmd("set si") -- smart indent +vim.cmd("set cindent") -- c style indent + +vim.cmd("set shiftwidth=4") -- shift order 4step +vim.cmd("set tabstop=4") -- tab order 4step +vim.cmd("set hlsearch") -- highlight empathize the word. + +vim.cmd("set history=1000") -- history store depth +vim.cmd("set nobackup") -- no generate swp file +vim.cmd("set noswapfile") +vim.cmd("set nowritebackup") +vim.cmd("set backupdir=~/.backup/") +vim.cmd("set directory=~/.backup/") + +vim.cmd("set ruler") -- display the cursor position +vim.cmd("set title") -- display the title +vim.cmd("set showmatch") -- display the matched bracket +-- set nowrap "no auto linefeed +vim.cmd("set wmnu") -- auto word finder + +vim.cmd("set autochdir") -- auto change working directory + +vim.cmd("set hidden") -- buffer hidden +vim.cmd("set updatetime=300") -- 300ms +vim.cmd("set cmdheight=2") -- Better display for messages +vim.cmd("set shortmess+=c") -- don't give [ins-completion-menu] messages. +vim.cmd("set signcolumn=yes") -- always show signcolumns + + +vim.cmd("set backspace=indent,eol,start") +vim.cmd("set fencs=ucs-bom,utf-8,cp949") +-- vim.cmd("set clipboard^=unnamed,unnamedplus") +vim.cmd("set clipboard+=unnamedplus") + +vim.cmd("set mouse=a") + +-- normal +vim.keymap.set('n', '', 'h', {}) +vim.keymap.set('n', '', 'l', {}) +vim.keymap.set('n', '', 'j', {}) +vim.keymap.set('n', '', 'k', {}) +-- vim.keymap.set('n', '', '"*y', {}) +-- vim.keymap.set('n', '', '"*p', {}) +-- +vim.keymap.set('n', '', ':cd %:p:h:term zsh', {}) +vim.keymap.set('n', '', '@a', {}) + + diff --git a/.config/nvim/plugList.vim b/.config/nvim/plugList.vim deleted file mode 100644 index 70ecdd6..0000000 --- a/.config/nvim/plugList.vim +++ /dev/null @@ -1,25 +0,0 @@ -call plug#begin('~/.vim/plugged') -Plug 'lambdalisue/suda.vim' -" color scheme -Plug 'morhetz/gruvbox' -"Plug 'lifepillar/vim-solarized8' -"Plug 'NLKNguyen/papercolor-theme' -"Plug 'tomasr/molokai' -"Plug 'joshdick/onedark.vim' -"Plug 'challenger-deep-theme/vim', { 'as': 'challenger-deep' } -Plug 'drewtempelmeyer/palenight.vim' -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' -Plug 'tpope/vim-unimpaired' -Plug 'tpope/vim-commentary' -Plug 'tpope/vim-fugitive' " git wrapper -Plug 'airblade/vim-gitgutter' " git modified view; -Plug 'tpope/vim-surround' -Plug 'easymotion/vim-easymotion' - -"Plug 'neoclide/coc.nvim', {'branch': 'release'} - - - -call plug#end() - diff --git a/.zshrc b/.zshrc index 7c91935..ff661c1 100644 --- a/.zshrc +++ b/.zshrc @@ -35,11 +35,9 @@ alias ytv-best="youtube-dl -f bestvideo+bestaudio " alias startsv="ssh odroid startsv" alias stopsv="ssh odroid stopsv" -alias ls="exa -al --color=always --group-directories-first" -alias la="exa -a --color=always --group-directories-first" -alias ll="exa -l --color=always --group-directories-first" -alias lt="exa -aT --color=always --group-directories-first" -alias l.='exa -a | egrep "^\."' +alias ls="eza -a --icons" +alias ll="eza -al --icons" +alias lt="eza -a --tree --level=1 --icons" # WSL2 if [[ $JUPCID == "WSL" ]];then From 1bdcedb34b0c0ad10b2ae09a860d330897c0dadb Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Mon, 26 Aug 2024 13:07:14 +0900 Subject: [PATCH 02/33] sxhkd : bind screenshot key --- .config/sxhkd/sxhkdrc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index 1f178dc..d6c9c34 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -24,6 +24,10 @@ super+shift+c bspc node -c super+shift+q killall picom & killall sxhkd & bspc quit +super+s + scrot -e 'xclip -selection clipboard -t image/png -i $f' +super+shift+s + scrot -s -e 'xclip -selection clipboard -t image/png -i $f' super+shift+e rofi -mode drun -theme solarized -font "hack 20" -show combi alt+Tab From 0df06aef698cfb43a15ecd06404e8930c7a7212f Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Mon, 26 Aug 2024 13:38:57 +0900 Subject: [PATCH 03/33] emacs : copilot support --- .config/emacs/custom-default.el | 3 +++ .config/emacs/init.el | 2 ++ .config/emacs/lisp/init-copilot.el | 8 ++++++++ 3 files changed, 13 insertions(+) create mode 100644 .config/emacs/lisp/init-copilot.el diff --git a/.config/emacs/custom-default.el b/.config/emacs/custom-default.el index a09d946..dc8c279 100644 --- a/.config/emacs/custom-default.el +++ b/.config/emacs/custom-default.el @@ -47,6 +47,9 @@ custom-org-roam-directory "~/org/roam" custom-org-agenda-file "~/org/agenda/agenda.org") +;; Line numbers, relative or comment this line +(setq display-line-numbers-type 'relative) + ;; Chatgpt setup (setq custom-chatgpt-my-key "my-key") diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 9e25f63..fba0254 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -114,5 +114,7 @@ Otherwise the startup will be very slow. " (require 'init-extra) (require 'init-chatgpt) + +(require 'init-copilot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init.el ends here diff --git a/.config/emacs/lisp/init-copilot.el b/.config/emacs/lisp/init-copilot.el new file mode 100644 index 0000000..74dfabe --- /dev/null +++ b/.config/emacs/lisp/init-copilot.el @@ -0,0 +1,8 @@ +;; init-copilot.el -*- lexical-binding: t -*- +(add-to-list 'load-path "~/.config/emacs/copilot.el") +(require 'copilot) + +(add-hook 'prog-mode-hook 'copilot-mode) + +(provide 'init-copilot) +;;; init-copilot.el ends here From 054cea85112c453e0878f5035171962026399a12 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Mon, 26 Aug 2024 13:39:36 +0900 Subject: [PATCH 04/33] scripts : some script added --- scripts/color_test.sh | 16 ++++++++++++++++ scripts/merge_all_files.sh | 21 +++++++++++++++++++++ scripts/take_screenshot.sh | 3 +++ 3 files changed, 40 insertions(+) create mode 100755 scripts/color_test.sh create mode 100755 scripts/merge_all_files.sh create mode 100755 scripts/take_screenshot.sh diff --git a/scripts/color_test.sh b/scripts/color_test.sh new file mode 100755 index 0000000..9735442 --- /dev/null +++ b/scripts/color_test.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Based on: https://gist.github.com/XVilka/8346728 + +awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{ + s="/\\"; + for (colnum = 0; colnum255) g = 510-g; + printf "\033[48;2;%d;%d;%dm", r,g,b; + printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b; + printf "%s\033[0m", substr(s,colnum%2+1,1); + } + printf "\n"; +}' diff --git a/scripts/merge_all_files.sh b/scripts/merge_all_files.sh new file mode 100755 index 0000000..98b96ca --- /dev/null +++ b/scripts/merge_all_files.sh @@ -0,0 +1,21 @@ +#!/bin/bash +if [ "$#" -ne 3 ]; then + echo "Usage : ./merge_all_files.sh [dir] [pattern] [file]" + exit +fi + +pushd $1 +find . -type f -name "*.$2" -exec sh -c 'cat "{}"' >> $3 \; +popd + + + +# files=() +# while IFS= read -r -d $'\0'; do +# files+=("$REPLY") +# done < <(find . -type f -name "*.$1" -print0) + +# echo $files +# for file in files; do +# echo $file +# done diff --git a/scripts/take_screenshot.sh b/scripts/take_screenshot.sh new file mode 100755 index 0000000..b07805e --- /dev/null +++ b/scripts/take_screenshot.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +scrot -e 'xclip -selection clipboard -t image/png -i $f' From 7a2834b617d513dfeaf6b5010cf1c3c642f8b510 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 28 Aug 2024 14:25:38 +0900 Subject: [PATCH 05/33] vim : option change to use. --- .config/nvim/lua/plugins/lsp-config.lua | 2 +- .config/nvim/lua/plugins/themes.lua | 8 +++++++- .config/nvim/lua/vim-options.lua | 3 +-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.config/nvim/lua/plugins/lsp-config.lua b/.config/nvim/lua/plugins/lsp-config.lua index f41e798..81b7ed3 100644 --- a/.config/nvim/lua/plugins/lsp-config.lua +++ b/.config/nvim/lua/plugins/lsp-config.lua @@ -9,7 +9,7 @@ return { "williamboman/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup({ - ensure_installed = {"lua_ls", "clangd", "cmake", "cssls", "html"} + ensure_installed = {"lua_ls", "clangd"} }) end }, diff --git a/.config/nvim/lua/plugins/themes.lua b/.config/nvim/lua/plugins/themes.lua index 9a6e986..42cee98 100644 --- a/.config/nvim/lua/plugins/themes.lua +++ b/.config/nvim/lua/plugins/themes.lua @@ -42,7 +42,13 @@ return { { "catppuccin/nvim", config = function() - vim.cmd.colorscheme "catppuccin" + -- vim.cmd.colorscheme "catppuccin" + end + }, + { + "tomasr/molokai", + config = function() + vim.cmd.colorscheme "molokai" end }, } diff --git a/.config/nvim/lua/vim-options.lua b/.config/nvim/lua/vim-options.lua index b17909f..58eabc3 100644 --- a/.config/nvim/lua/vim-options.lua +++ b/.config/nvim/lua/vim-options.lua @@ -6,6 +6,7 @@ vim.cmd("set ai") -- auto indent vim.cmd("set si") -- smart indent vim.cmd("set cindent") -- c style indent +vim.cmd("set expandtab") -- tab to space vim.cmd("set shiftwidth=4") -- shift order 4step vim.cmd("set tabstop=4") -- tab order 4step vim.cmd("set hlsearch") -- highlight empathize the word. @@ -49,5 +50,3 @@ vim.keymap.set('n', '', 'k', {}) -- vim.keymap.set('n', '', ':cd %:p:h:term zsh', {}) vim.keymap.set('n', '', '@a', {}) - - From c590f95ce47d7a9fad8670aadd54ad0b4e89f1f7 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 28 Aug 2024 14:26:12 +0900 Subject: [PATCH 06/33] emacs : add lua-mode --- .config/emacs/init.el | 1 + .config/emacs/lisp/init-lua.el | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 .config/emacs/lisp/init-lua.el diff --git a/.config/emacs/init.el b/.config/emacs/init.el index fba0254..33adc54 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -106,6 +106,7 @@ Otherwise the startup will be very slow. " (require 'init-python) (require 'init-ruby) (require 'init-shell) +(require 'init-lua) (require 'init-latex) (require 'init-verilog) diff --git a/.config/emacs/lisp/init-lua.el b/.config/emacs/lisp/init-lua.el new file mode 100644 index 0000000..41b384f --- /dev/null +++ b/.config/emacs/lisp/init-lua.el @@ -0,0 +1,6 @@ +;; init-lua.el --- Initialize ruby configurations. -*- lexical-binding: t -*- +(use-package lua-mode) + +(provide 'init-lua) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; init-lua.el ends here From 6cf734fc1309540eb1a8c24bdd8795f690bf2e2d Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 28 Aug 2024 17:47:18 +0900 Subject: [PATCH 07/33] emacs : add avy bindings --- .config/emacs/lisp/init-general.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/emacs/lisp/init-general.el b/.config/emacs/lisp/init-general.el index 2d06fad..eeb50cb 100644 --- a/.config/emacs/lisp/init-general.el +++ b/.config/emacs/lisp/init-general.el @@ -135,7 +135,9 @@ ;; Avy "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") + "ve" '(avy-goto-char-2 :which-key "Avy Goto Char - 2") + "vq" '(avy-goto-word-0 :which-key "Avy Goto Word") + "vw" '(avy-goto-word-1 :which-key "Avy Goto Word - 1") "vl" '(avy-goto-line :which-key "Avy Goto Line")) (provide 'init-general) From fc0559a4fc77b4914f78d13a63ec92b5e7dd416b Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Fri, 30 Aug 2024 16:12:57 +0900 Subject: [PATCH 08/33] emacs : init-lua to prog --- .config/emacs/init.el | 1 - .config/emacs/lisp/init-lua.el | 6 ------ .config/emacs/lisp/init-prog.el | 2 +- 3 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 .config/emacs/lisp/init-lua.el diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 33adc54..fba0254 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -106,7 +106,6 @@ Otherwise the startup will be very slow. " (require 'init-python) (require 'init-ruby) (require 'init-shell) -(require 'init-lua) (require 'init-latex) (require 'init-verilog) diff --git a/.config/emacs/lisp/init-lua.el b/.config/emacs/lisp/init-lua.el deleted file mode 100644 index 41b384f..0000000 --- a/.config/emacs/lisp/init-lua.el +++ /dev/null @@ -1,6 +0,0 @@ -;; init-lua.el --- Initialize ruby configurations. -*- lexical-binding: t -*- -(use-package lua-mode) - -(provide 'init-lua) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; init-lua.el ends here diff --git a/.config/emacs/lisp/init-prog.el b/.config/emacs/lisp/init-prog.el index 60d3c3d..71ef7aa 100644 --- a/.config/emacs/lisp/init-prog.el +++ b/.config/emacs/lisp/init-prog.el @@ -147,7 +147,7 @@ Install the doc if it's not installed." ;;(use-package dart-mode) ;;(use-package groovy-mode) ;;(use-package julia-mode) -;;(use-package lua-mode) +(use-package lua-mode) ;;(use-package mermaid-mode) ;;(use-package plantuml-mode) (use-package rmsbolt) ; A compiler output viewer From 0cf7cd2b9e64b9c83bdc5b9e72899dd7246fb014 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Fri, 30 Aug 2024 16:13:23 +0900 Subject: [PATCH 09/33] emacs : symbol overlay help keybinding "h" to "g" --- .config/emacs/lisp/init-highlight.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/emacs/lisp/init-highlight.el b/.config/emacs/lisp/init-highlight.el index 2a0b30f..48e5aa3 100644 --- a/.config/emacs/lisp/init-highlight.el +++ b/.config/emacs/lisp/init-highlight.el @@ -43,7 +43,9 @@ (interactive) (when (derived-mode-p 'prog-mode 'yaml-mode) (symbol-overlay-mode 1))) - (advice-add #'deactivate-mark :after #'turn-on-symbol-overlay))) + (advice-add #'deactivate-mark :after #'turn-on-symbol-overlay)) + (define-key symbol-overlay-map (kbd "h") nil) + (define-key symbol-overlay-map (kbd "g") 'symbol-overlay-map-help)) ;; Colorize color names in buffers (use-package rainbow-mode From f4d5ef85316b17c2bc077707e495b9de8b313d47 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Mon, 2 Sep 2024 17:18:26 +0900 Subject: [PATCH 10/33] sxhkd : rofi improvement --- .config/sxhkd/sxhkdrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index d6c9c34..0f65a38 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -29,9 +29,9 @@ super+s super+shift+s scrot -s -e 'xclip -selection clipboard -t image/png -i $f' super+shift+e - rofi -mode drun -theme solarized -font "hack 20" -show combi + rofi drun,run,filebrowser -show alt+Tab - rofi -mode window -theme solarized -font "hack 20" -show + rofi -show window ##rofi things ##Launch apps From 33254b574b6564d42e99d4f8f5195f12f0939be4 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Mon, 2 Sep 2024 17:19:49 +0900 Subject: [PATCH 11/33] emacs : disable treesitter to use verilog-mode --- .config/emacs/lisp/init-prog.el | 6 +++--- .config/emacs/lisp/init-verilog.el | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.config/emacs/lisp/init-prog.el b/.config/emacs/lisp/init-prog.el index 60d3c3d..4447509 100644 --- a/.config/emacs/lisp/init-prog.el +++ b/.config/emacs/lisp/init-prog.el @@ -4,9 +4,9 @@ (require 'init-funcs) ;; Tree-sitter support -(use-package treesit-auto - :hook (after-init . global-treesit-auto-mode) - :init (setq treesit-auto-install 'prompt)) +;; (use-package treesit-auto +;; :hook (after-init . global-treesit-auto-mode) +;; :init (setq treesit-auto-install 'prompt)) ;; Search tool (use-package grep diff --git a/.config/emacs/lisp/init-verilog.el b/.config/emacs/lisp/init-verilog.el index 9202edf..f80b26f 100644 --- a/.config/emacs/lisp/init-verilog.el +++ b/.config/emacs/lisp/init-verilog.el @@ -24,7 +24,7 @@ (setq verilog-ext-feature-list '(font-lock xref - ;; capf + capf hierarchy eglot ;; lsp @@ -32,14 +32,14 @@ beautify navigation template - formatter + ;; formatter compilation imenu which-func hideshow typedefs time-stamp - block-end-comments + ;; block-end-comments ports)) :config (verilog-ext-mode-setup)) From fff61a913901e5327a01833ebd8e0aba4a7d46a9 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Tue, 3 Sep 2024 17:32:02 +0900 Subject: [PATCH 12/33] emacs : use-package to straight, base edit evil general hydra treemacs ui vertico yassnippet --- .config/emacs/early-init.el | 4 +- .config/emacs/init.el | 94 ++++++++++----------- .config/emacs/lisp/init-base.el | 24 +++--- .config/emacs/lisp/init-edit.el | 17 +++- .config/emacs/lisp/init-evil.el | 19 +++-- .config/emacs/lisp/init-general.el | 6 ++ .config/emacs/lisp/init-hydra.el | 9 +- .config/emacs/lisp/init-package.el | 86 +++++-------------- .config/emacs/lisp/init-treemacs.el | 51 +++++++----- .config/emacs/lisp/init-ui.el | 42 +++++++--- .config/emacs/lisp/init-vertico.el | 120 ++++++++++++++++----------- .config/emacs/lisp/init-yasnippet.el | 7 +- 12 files changed, 261 insertions(+), 218 deletions(-) diff --git a/.config/emacs/early-init.el b/.config/emacs/early-init.el index d557651..24d218e 100644 --- a/.config/emacs/early-init.el +++ b/.config/emacs/early-init.el @@ -24,11 +24,11 @@ (push '(ns-transparent-titlebar . t) default-frame-alist)) (setq-default mode-line-format nil) -;;(setq inhibit-startup-message nil) +;;(setq inhibit-startup-message nil) ; TODO check. ;; initial load with blue theme ;(load-theme 'deeper-blue) -;;(customize-set-variable 'initial-major-mode 'fundamental-mode) +(setq package-enable-at-startup nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; early-init.el ends here diff --git a/.config/emacs/init.el b/.config/emacs/init.el index fba0254..8f4fc54 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -67,54 +67,54 @@ Otherwise the startup will be very slow. " (require 'init-yasnippet) -(require 'init-bookmark) -(require 'init-dashboard) -(require 'init-dired) -(require 'init-highlight) -(require 'init-ibuffer) -(require 'init-persp) -(require 'init-window) +;;(require 'init-bookmark) +;;(require 'init-dashboard) +;;(require 'init-dired) +;;(require 'init-highlight) +;;(require 'init-ibuffer) +;;(require 'init-persp) +;;(require 'init-window) (require 'init-treemacs) - -;; shell -(require 'init-eshell) - -;; markdown -(require 'init-markdown) -(require 'init-org) -(require 'init-reader) - ;; -(require 'init-dict) - -;; docker -(when ON-LINUX - (require 'init-docker)) -;; utils -(require 'init-utils) - -;; Programming -(require 'init-vcs) -(require 'init-flycheck) -(require 'init-eglot) -(require 'init-ctags) -(require 'init-prog) - -(require 'init-elisp) -(require 'init-c) -(require 'init-rust) -(require 'init-python) -(require 'init-ruby) -(require 'init-shell) - -(require 'init-latex) -(require 'init-verilog) - -(require 'init-debug) - -(require 'init-extra) -(require 'init-chatgpt) - -(require 'init-copilot) +;;;; shell +;;(require 'init-eshell) +;; +;;;; markdown +;;(require 'init-markdown) +;;(require 'init-org) +;;(require 'init-reader) +;; +;;;; +;;(require 'init-dict) +;; +;;;; docker +;;(when ON-LINUX +;; (require 'init-docker)) +;;;; utils +;;(require 'init-utils) +;; +;;;; Programming +;;(require 'init-vcs) +;;(require 'init-flycheck) +;;(require 'init-eglot) +;;(require 'init-ctags) +;;(require 'init-prog) +;; +;;(require 'init-elisp) +;;(require 'init-c) +;;(require 'init-rust) +;;(require 'init-python) +;;(require 'init-ruby) +;;(require 'init-shell) +;; +;;(require 'init-latex) +;;(require 'init-verilog) +;; +;;(require 'init-debug) +;; +;;(require 'init-extra) +;;(require 'init-chatgpt) +;; +;;(require 'init-copilot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init.el ends here diff --git a/.config/emacs/lisp/init-base.el b/.config/emacs/lisp/init-base.el index a001f40..7e4ef3d 100644 --- a/.config/emacs/lisp/init-base.el +++ b/.config/emacs/lisp/init-base.el @@ -1,5 +1,4 @@ ;; init-base.el -*- lexical-binding: t -*- - (require 'init-const) (require 'init-funcs) @@ -10,6 +9,8 @@ ;; (use-package gcmh + :straight t + :ensure t :diminish :hook (emacs-startup . gcmh-mode) @@ -28,15 +29,20 @@ (set-selection-coding-system 'utf-8)) (when ON-LINUX (use-package exec-path-from-shell + :straight t + :ensure t + :defer t :init (exec-path-from-shell-initialize))) ;; open file point at where last saved place. (use-package saveplace - :ensure nil + :straight t + :ensure t :hook (after-init . save-place-mode)) (use-package recentf - :ensure nil + :straight t + :ensure t :bind (("C-x C-r" . recentf-open-files)) :hook @@ -54,7 +60,8 @@ (add-to-list 'recentf-filename-handlers #'abbreviate-file-name)) (use-package savehist - :ensure nil + :straight t + :ensure t :hook (after-init . savehist-mode) :init @@ -68,7 +75,7 @@ savehist-autosave-interval 300)) (use-package simple - :ensure nil + :ensure nil ; emacs base package :hook ((after-init . size-indication-mode) (text-mode . visual-line-mode) ((prog-mode markdown-mode conf-mode) . enable-trailing-whitespace)) @@ -110,7 +117,7 @@ (concat " " (nerd-icons-faicon "nf-fa-bolt" :face 'nerd-icons-lblue)) - ;;(all-the-icons-faicon "nf-fa-bolt" :face 'all-the-icons-lblue)) + ;;(all-the-icons-faicon "nf-fa-bolt" :face 'all-the-icons-lblue)) " x")) (name (aref val 0)) (pid (aref val 1)) @@ -150,11 +157,6 @@ sentence-end-double-space nil word-wrap-by-category t) -;; use for org-roam? -(when (fboundp 'sqlite-open) - (use-package emacsql-sqlite-builtin)) - - (provide 'init-base) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-base.el ends here diff --git a/.config/emacs/lisp/init-edit.el b/.config/emacs/lisp/init-edit.el index ee04853..b593b54 100644 --- a/.config/emacs/lisp/init-edit.el +++ b/.config/emacs/lisp/init-edit.el @@ -3,10 +3,14 @@ (require 'init-funcs) (use-package autorevert - :ensure nil + :straight t + :ensure t :diminish :hook (after-init . global-auto-revert-mode)) (use-package avy + :straight t + :ensure t + :defer t :hook (after-init . avy-setup-default) :config (setq avy-style 'de-bruijn @@ -15,6 +19,8 @@ avy-background t)) ;; Show number of matches in mode-line while searching (use-package anzu + :straight t + :ensure t :diminish ;;:bind (([remap query-replace] . anzu-query-replace) ;; ([remap query-replace-regexp] . anzu-query-replace-regexp) @@ -22,10 +28,10 @@ ;; ([remap isearch-query-replace] . anzu-isearch-query-replace) ;; ([remap isearch-query-replace-regexp] . anzu-isearch-query-replace-regexp)) :hook (after-init . global-anzu-mode)) -(use-package ialign) - (use-package undo-tree + :straight t + :ensure t :diminish :hook (after-init . global-undo-tree-mode) :custom @@ -42,7 +48,8 @@ undo-outer-limit (* 128 1024 1024))) (use-package hideshow - :ensure nil + :straight t + :ensure t :diminish hs-minor-mode :pretty-hydra ((:title (pretty-hydra-title "HideShow" 'octicon "nf-oct-fold") @@ -112,6 +119,8 @@ ;; Hanlde minified code (use-package so-long + :straight t + :ensure t :hook (after-init . global-so-long-mode)) (provide 'init-edit) diff --git a/.config/emacs/lisp/init-evil.el b/.config/emacs/lisp/init-evil.el index 6dcc580..d4f2ef9 100644 --- a/.config/emacs/lisp/init-evil.el +++ b/.config/emacs/lisp/init-evil.el @@ -3,7 +3,8 @@ (require 'init-funcs) (use-package evil - :ensure nil + :straight t + :ensure t :diminish :hook (after-init . evil-mode) :init @@ -25,24 +26,28 @@ ;; eshell no evil (dolist (mode '(eshell-mode)) (add-to-list 'evil-emacs-state-modes mode))) + (with-eval-after-load 'evil - (defalias #'forward-evil-word #'forward-evil-symbol) - ;; make evil-search-word look for symbol rather than word boundaries - (setq-default evil-symbol-word-search t)) + (defalias #'forward-evil-word #'forward-evil-symbol) + ;; make evil-search-word look for symbol rather than word boundaries + (setq-default evil-symbol-word-search t)) (use-package evil-collection - :defer nil + :straight t + :ensure t :config (evil-collection-init)) (use-package evil-nerd-commenter - :defer nil + :straight t + :ensure t :config ;; evil nerd commenter (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-numbers - :defer nil + :straight t + :ensure t :config ;; evil numbers ;; unfortunately C-x is emacs common key binding. diff --git a/.config/emacs/lisp/init-general.el b/.config/emacs/lisp/init-general.el index eeb50cb..5b42c38 100644 --- a/.config/emacs/lisp/init-general.el +++ b/.config/emacs/lisp/init-general.el @@ -11,10 +11,13 @@ (global-set-key (kbd "C-=") 'text-scale-increase) (global-set-key (kbd "C--") 'text-scale-decrease) +; TODO move to hideshow (global-set-key (kbd "C-") 'hs-toggle-hiding) ;; When you begin a keybind, whichkey will show you all keybinds you can follow the first one with in order to form a full keywords. (use-package which-key + :straight t + :ensure t :defer t :init (which-key-mode) :diminish which-key-mode @@ -22,6 +25,9 @@ (setq which-key-idle-delay 0.5)) (use-package general + :straight t + :ensure t + :defer t :init (general-auto-unbind-keys) :config diff --git a/.config/emacs/lisp/init-hydra.el b/.config/emacs/lisp/init-hydra.el index 007de22..0723bff 100644 --- a/.config/emacs/lisp/init-hydra.el +++ b/.config/emacs/lisp/init-hydra.el @@ -2,10 +2,15 @@ (require 'init-const) (require 'init-funcs) (use-package hydra + :straight t + :ensure t + :defer t :hook (emacs-lisp-mode . hydra-add-imenu)) -;; TODO (use-package pretty-hydra + :straight t + :ensure t + :defer t :bind ("" . toggles-hydra/body) :hook (emacs-lisp-mode . (lambda () (add-to-list @@ -23,7 +28,7 @@ (concat (when (and (icons-displayable-p) icon-type icon-name) (let ((f (intern (format "nerd-icons-%s" icon-type)))) - ;;(let ((f (intern (format "all-the-icons-%s" icon-type)))) + ;;(let ((f (intern (format "all-the-icons-%s" icon-type)))) (when (fboundp f) (concat (apply f (list icon-name :face face :height height :v-adjust v-adjust)) diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el index fa5ba5e..1384554 100644 --- a/.config/emacs/lisp/init-package.el +++ b/.config/emacs/lisp/init-package.el @@ -8,74 +8,28 @@ (and (file-readable-p custom-file) (load custom-file)) -;; HACK: DO NOT save package-selected-packages to `custom-file'. -;; https://github.com/jwiegley/use-package/issues/383#issuecomment-247801751 -(defun my-package--save-selected-packages (&optional value) - "Set `package-selected-packages' to VALUE but don't save to `custom-file'." - (when value - (setq package-selected-packages value)) - (unless after-init-time - (add-hook 'after-init-hook #'my-package--save-selected-packages))) -(advice-add 'package--save-selected-packages :override #'my-package--save-selected-packages) - -(require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) - -(unless (bound-and-true-p package--initialized) - (setq package-enable-at-startup nil) - (package-initialize)) -;; Setup `use-package' -(unless (package-installed-p 'use-package) - (package-refresh-contents) - (package-install 'use-package)) -;; Should set before loading `use-package' -(eval-and-compile - (setq use-package-always-ensure t) - (setq use-package-always-defer t) - (setq use-package-expand-minimally t) - (setq use-package-enable-imenu-support t)) -(eval-when-compile - (require 'use-package)) - -(use-package diminish) -(use-package bind-key) - -(use-package paradox - :custom-face - (paradox-archive-face ((t (:inherit font-lock-doc-face)))) - (paradox-description-face ((t (:inherit completions-annotations)))) - :hook - (emacs-startup . paradox-enable) - :init - (setq paradox-execute-asynchronously t - paradox-github-token nil - paradox-display-star-count nil - paradox-status-face-alist ; - '(("built-in" . font-lock-builtin-face) - ("available" . success) - ("new" . (success bold)) - ("held" . font-lock-constant-face) - ("disabled" . font-lock-warning-face) - ("avail-obso" . font-lock-comment-face) - ("installed" . font-lock-comment-face) - ("dependency" . font-lock-comment-face) - ("incompat" . font-lock-comment-face) - ("deleted" . font-lock-comment-face) - ("unsigned" . font-lock-warning-face))) - :config - (add-hook 'paradox-after-execute-functions - (lambda (_) - "Display `page-break-lines' in \"*Paradox Report*\" buffer." - (when (fboundp 'page-break-lines-mode) - (let ((buf (get-buffer "*Paradox Report*")) - (inhibit-read-only t)) - (when (buffer-live-p buf) - (with-current-buffer buf - (page-break-lines-mode 1)))))) - t)) - +(defvar bootstrap-version) +(let ((bootstrap-file + (expand-file-name + "straight/repos/straight.el/bootstrap.el" + (or (bound-and-true-p straight-base-dir) + user-emacs-directory))) + (bootstrap-version 7)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage)) +(straight-use-package 'use-package) +(setq use-package-always-ensure t) +; hide info in modeline +(use-package diminish + :straight t) (provide 'init-package) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/.config/emacs/lisp/init-treemacs.el b/.config/emacs/lisp/init-treemacs.el index ac04e7c..e879d5f 100644 --- a/.config/emacs/lisp/init-treemacs.el +++ b/.config/emacs/lisp/init-treemacs.el @@ -3,6 +3,9 @@ (require 'init-funcs) ;; A tree layout file explorer (use-package treemacs + :straight t + :ensure t + :defer t :commands (treemacs-follow-mode treemacs-filewatch-mode treemacs-git-mode) @@ -26,28 +29,36 @@ (`(t . t) (treemacs-git-mode 'deferred)) (`(t . _) - (treemacs-git-mode 'simple))) + (treemacs-git-mode 'simple)))) - (use-package treemacs-nerd-icons - :demand - :custom-face - (treemacs-nerd-icons-root-face ((t (:inherit nerd-icons-green :height 1.3)))) - (treemacs-nerd-icons-file-face ((t (:inherit nerd-icons-dsilver)))) - :config (treemacs-load-theme "nerd-icons")) +(use-package treemacs-nerd-icons + :straight t + :ensure t + :defer t + :custom-face + (treemacs-nerd-icons-root-face ((t (:inherit nerd-icons-green :height 1.3)))) + (treemacs-nerd-icons-file-face ((t (:inherit nerd-icons-dsilver)))) + :config (treemacs-load-theme "nerd-icons")) - (use-package treemacs-magit - :after magit - :autoload treemacs-magit--schedule-update - :hook ((magit-post-commit - git-commit-post-finish - magit-post-stage - magit-post-unstage) - . treemacs-magit--schedule-update)) +(use-package treemacs-magit + :straight t + :ensure t + :defer t + :after magit + :autoload treemacs-magit--schedule-update + :hook ((magit-post-commit + git-commit-post-finish + magit-post-stage + magit-post-unstage) + . treemacs-magit--schedule-update)) - (use-package treemacs-persp - :after persp-mode - :demand t - :functions treemacs-set-scope-type - :config (treemacs-set-scope-type 'Perspectives))) +(use-package treemacs-persp + :straight t + :ensure t + :defer t + :after persp-mode + :demand t + :functions treemacs-set-scope-type + :config (treemacs-set-scope-type 'Perspectives)) (provide 'init-treemacs) ;;; init-treemacs.el ends here diff --git a/.config/emacs/lisp/init-ui.el b/.config/emacs/lisp/init-ui.el index fe3f1b0..7da6178 100644 --- a/.config/emacs/lisp/init-ui.el +++ b/.config/emacs/lisp/init-ui.el @@ -17,8 +17,15 @@ ;; Make certain buffers grossly incandescent (use-package solaire-mode - :hook (after-load-theme . solaire-global-mode)) + :straight t + :ensure t + :demand t + :config + (solaire-global-mode +1)) + (use-package doom-themes + :straight t + :ensure t :init (if (display-graphic-p) (load-theme custom-theme-sel t) @@ -26,6 +33,8 @@ :config (doom-themes-visual-bell-config)) (use-package doom-modeline + :straight t + :ensure t :hook (after-init . doom-modeline-mode) :init (setq doom-modeline-window-width-limit 110 @@ -48,14 +57,19 @@ ;; A minor-mode menu for mode-line (use-package minions + :straight t + :ensure t :hook (doom-modeline-mode . minions-mode)) ;; Icons -(use-package nerd-icons) +(use-package nerd-icons + :straight t + :ensure t) ;;(use-package all-the-icons) (use-package display-line-numbers - :ensure nil + :straight t + :ensure t :hook ((prog-mode yaml-mode conf-mode) . display-line-numbers-mode) :init (setq display-line-numbers-width-start t)) @@ -76,7 +90,8 @@ (add-hook 'window-setup-hook #'window-divider-mode) (use-package time - :ensure nil + :straight t + :ensure t :init (setq display-time-24hr-format t display-time-day-and-date t)) @@ -96,22 +111,30 @@ (if (fboundp 'pixel-scroll-precision-mode) (pixel-scroll-precision-mode t) (use-package good-scroll - :diminish + :straight t + :ensure t :hook (after-init . good-scroll-mode) :bind (([remap next] . good-scroll-up-full-screen) ([remap prior] . good-scroll-down-full-screen)))) ;; Smooth scrolling over images (use-package iscroll - :diminish + :straight t + :ensure t + :defer t :hook (image-mode . iscroll-mode)) ;; Use fixed pitch where it's sensible (use-package mixed-pitch - :diminish) + :straight t + :ensure t + :defer t) ;; Display ugly ^L page breaks as tidy horizontal lines (use-package page-break-lines + :straight t + :ensure t + :defer t :diminish :hook (after-init . global-page-break-lines-mode) :config ;; display only half fix. @@ -120,15 +143,14 @@ (face-attribute 'default :family))) (use-package form-feed :disabled - :diminish :hook (after-init . global-form-feed-mode)) ;; emoji (use-package emojify + :straight t + :ensure t :defer t :init (global-emojify-mode 1)) - - (provide 'init-ui) ;;; init-ui.el ends here. diff --git a/.config/emacs/lisp/init-vertico.el b/.config/emacs/lisp/init-vertico.el index ca6bd3d..fff7c7b 100644 --- a/.config/emacs/lisp/init-vertico.el +++ b/.config/emacs/lisp/init-vertico.el @@ -3,6 +3,8 @@ (require 'init-funcs) (use-package vertico + :straight t + :ensure t :bind (:map vertico-map ("C-j" . vertico-next) ("C-k" . vertico-previous)) @@ -10,10 +12,14 @@ :custom (vertico-cycle t)) (use-package nerd-icons-completion + :straight t + :ensure t :hook (vertico-mode . nerd-icons-completion-mode)) (when (display-graphic-p) (use-package vertico-posframe + :straight t + :ensure t :when custom-vertico-posframe :after vertico :hook (vertico-mode . vertico-posframe-mode) @@ -25,12 +31,16 @@ ;; simple, but effective sorting and filtering for emacs. (use-package vertico-prescient + :straight t + :ensure t :defer t :config (vertico-prescient-mode)) ;; annotations placed at the margin of the minibuffer (use-package marginalia + :straight t + :ensure t :after vertico :defer t :custom @@ -39,6 +49,8 @@ (use-package consult + :straight t + :ensure t :demand t :bind (:map minibuffer-local-map ("C-r" . consult-history)) @@ -55,6 +67,8 @@ (global-set-key (kbd "C-M-j") #'my/consult-switch-to-buffer))) (use-package orderless + :straight t + :ensure t :defer t :custom (completion-styles '(orderless basic)) @@ -62,6 +76,8 @@ ;; Quick action in minibuffer (use-package embark + :straight t + :ensure t :defer t :bind (("C-." . embark-act)) :config @@ -72,11 +88,15 @@ (setq prefix-help-command #'embark-prefix-help-command)) (use-package embark-consult + :straight t + :ensure t :defer t :after embark) ;;; Corfu (use-package corfu + :straight t + :ensure t :custom (corfu-cycle t) ;; Enable cycling for `corfu-next/previous' (corfu-auto t) ;; Enable auto completion @@ -97,57 +117,60 @@ (eldoc-add-command #'corfu-insert) (define-key corfu-map (kbd "M-p") #'corfu-popupinfo-scroll-down) (define-key corfu-map (kbd "M-n") #'corfu-popupinfo-scroll-up) - (define-key corfu-map (kbd "M-d") #'corfu-popupinfo-toggle) + (define-key corfu-map (kbd "M-d") #'corfu-popupinfo-toggle)) - (use-package kind-icon - :defer nil - :custom - (kind-icon-default-face 'corfu-default) ; to compute blended backgrounds correctly - :config - (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter) - (when (icons-displayable-p) - (setq kind-icon-use-icons nil) - (setq kind-icon-mapping - `( - (array ,(nerd-icons-codicon "nf-cod-symbol_array") :face font-lock-type-face) - (boolean ,(nerd-icons-codicon "nf-cod-symbol_boolean") :face font-lock-builtin-face) - (class ,(nerd-icons-codicon "nf-cod-symbol_class") :face font-lock-type-face) - (color ,(nerd-icons-codicon "nf-cod-symbol_color") :face success) - (command ,(nerd-icons-codicon "nf-cod-terminal") :face default) - (constant ,(nerd-icons-codicon "nf-cod-symbol_constant") :face font-lock-constant-face) - (constructor ,(nerd-icons-codicon "nf-cod-triangle_right") :face font-lock-function-name-face) - (enummember ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) - (enum-member ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) - (enum ,(nerd-icons-codicon "nf-cod-symbol_enum") :face font-lock-builtin-face) - (event ,(nerd-icons-codicon "nf-cod-symbol_event") :face font-lock-warning-face) - (field ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-variable-name-face) - (file ,(nerd-icons-codicon "nf-cod-symbol_file") :face font-lock-string-face) - (folder ,(nerd-icons-codicon "nf-cod-folder") :face font-lock-doc-face) - (interface ,(nerd-icons-codicon "nf-cod-symbol_interface") :face font-lock-type-face) - (keyword ,(nerd-icons-codicon "nf-cod-symbol_keyword") :face font-lock-keyword-face) - (macro ,(nerd-icons-codicon "nf-cod-symbol_misc") :face font-lock-keyword-face) - (magic ,(nerd-icons-codicon "nf-cod-wand") :face font-lock-builtin-face) - (method ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) - (function ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) - (module ,(nerd-icons-codicon "nf-cod-file_submodule") :face font-lock-preprocessor-face) - (numeric ,(nerd-icons-codicon "nf-cod-symbol_numeric") :face font-lock-builtin-face) - (operator ,(nerd-icons-codicon "nf-cod-symbol_operator") :face font-lock-comment-delimiter-face) - (param ,(nerd-icons-codicon "nf-cod-symbol_parameter") :face default) - (property ,(nerd-icons-codicon "nf-cod-symbol_property") :face font-lock-variable-name-face) - (reference ,(nerd-icons-codicon "nf-cod-references") :face font-lock-variable-name-face) - (snippet ,(nerd-icons-codicon "nf-cod-symbol_snippet") :face font-lock-string-face) - (string ,(nerd-icons-codicon "nf-cod-symbol_string") :face font-lock-string-face) - (struct ,(nerd-icons-codicon "nf-cod-symbol_structure") :face font-lock-variable-name-face) - (text ,(nerd-icons-codicon "nf-cod-text_size") :face font-lock-doc-face) - (typeparameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) - (type-parameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) - (unit ,(nerd-icons-codicon "nf-cod-symbol_ruler") :face font-lock-constant-face) - (value ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-builtin-face) - (variable ,(nerd-icons-codicon "nf-cod-symbol_variable") :face font-lock-variable-name-face) - (t ,(nerd-icons-codicon "nf-cod-code") :face font-lock-warning-face)))))) +(use-package kind-icon + :straight t + :ensure t + :custom + (kind-icon-default-face 'corfu-default) ; to compute blended backgrounds correctly + :config + (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter) + (when (icons-displayable-p) + (setq kind-icon-use-icons nil) + (setq kind-icon-mapping + `( + (array ,(nerd-icons-codicon "nf-cod-symbol_array") :face font-lock-type-face) + (boolean ,(nerd-icons-codicon "nf-cod-symbol_boolean") :face font-lock-builtin-face) + (class ,(nerd-icons-codicon "nf-cod-symbol_class") :face font-lock-type-face) + (color ,(nerd-icons-codicon "nf-cod-symbol_color") :face success) + (command ,(nerd-icons-codicon "nf-cod-terminal") :face default) + (constant ,(nerd-icons-codicon "nf-cod-symbol_constant") :face font-lock-constant-face) + (constructor ,(nerd-icons-codicon "nf-cod-triangle_right") :face font-lock-function-name-face) + (enummember ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) + (enum-member ,(nerd-icons-codicon "nf-cod-symbol_enum_member") :face font-lock-builtin-face) + (enum ,(nerd-icons-codicon "nf-cod-symbol_enum") :face font-lock-builtin-face) + (event ,(nerd-icons-codicon "nf-cod-symbol_event") :face font-lock-warning-face) + (field ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-variable-name-face) + (file ,(nerd-icons-codicon "nf-cod-symbol_file") :face font-lock-string-face) + (folder ,(nerd-icons-codicon "nf-cod-folder") :face font-lock-doc-face) + (interface ,(nerd-icons-codicon "nf-cod-symbol_interface") :face font-lock-type-face) + (keyword ,(nerd-icons-codicon "nf-cod-symbol_keyword") :face font-lock-keyword-face) + (macro ,(nerd-icons-codicon "nf-cod-symbol_misc") :face font-lock-keyword-face) + (magic ,(nerd-icons-codicon "nf-cod-wand") :face font-lock-builtin-face) + (method ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) + (function ,(nerd-icons-codicon "nf-cod-symbol_method") :face font-lock-function-name-face) + (module ,(nerd-icons-codicon "nf-cod-file_submodule") :face font-lock-preprocessor-face) + (numeric ,(nerd-icons-codicon "nf-cod-symbol_numeric") :face font-lock-builtin-face) + (operator ,(nerd-icons-codicon "nf-cod-symbol_operator") :face font-lock-comment-delimiter-face) + (param ,(nerd-icons-codicon "nf-cod-symbol_parameter") :face default) + (property ,(nerd-icons-codicon "nf-cod-symbol_property") :face font-lock-variable-name-face) + (reference ,(nerd-icons-codicon "nf-cod-references") :face font-lock-variable-name-face) + (snippet ,(nerd-icons-codicon "nf-cod-symbol_snippet") :face font-lock-string-face) + (string ,(nerd-icons-codicon "nf-cod-symbol_string") :face font-lock-string-face) + (struct ,(nerd-icons-codicon "nf-cod-symbol_structure") :face font-lock-variable-name-face) + (text ,(nerd-icons-codicon "nf-cod-text_size") :face font-lock-doc-face) + (typeparameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) + (type-parameter ,(nerd-icons-codicon "nf-cod-list_unordered") :face font-lock-type-face) + (unit ,(nerd-icons-codicon "nf-cod-symbol_ruler") :face font-lock-constant-face) + (value ,(nerd-icons-codicon "nf-cod-symbol_field") :face font-lock-builtin-face) + (variable ,(nerd-icons-codicon "nf-cod-symbol_variable") :face font-lock-variable-name-face) + (t ,(nerd-icons-codicon "nf-cod-code") :face font-lock-warning-face))))) (use-package corfu-terminal + :straight t + :ensure t :config (unless (display-graphic-p) (corfu-terminal-mode))) @@ -155,6 +178,8 @@ ;;; Cape ;; Setup Cape for better completion-at-point support and more (use-package cape + :straight t + :ensure t :config ;; Add useful defaults completion sources from cape (add-to-list 'completion-at-point-functions #'cape-file) @@ -171,6 +196,5 @@ corfu-quit-no-match t corfu-auto nil) (corfu-mode)))) - (provide 'init-vertico) ;;; init-vertico.el ends here diff --git a/.config/emacs/lisp/init-yasnippet.el b/.config/emacs/lisp/init-yasnippet.el index 0efaf00..1f3ffeb 100644 --- a/.config/emacs/lisp/init-yasnippet.el +++ b/.config/emacs/lisp/init-yasnippet.el @@ -1,13 +1,18 @@ ;;; init-yasnippet.el -*- lexical-binding: t -*- ;; Yet another snippet extension (use-package yasnippet + :straight t + :ensure t + :defer t :diminish yas-minor-mode :hook (after-init . yas-global-mode) :config (setq yas-indent-line nil)) ;; indent does not work properly. ;; Collection of yasnippet snippets -(use-package yasnippet-snippets) +(use-package yasnippet-snippets + :straight t + :ensure t) (provide 'init-yasnippet) ;;; init-yasnippet.el ends here From b1c8ba04218b9908fe8c7b9e645faaa214919d38 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Tue, 3 Sep 2024 19:57:10 +0900 Subject: [PATCH 13/33] emacs : use-package to straight, bookmark gpt dashboard dired --- .config/emacs/init.el | 6 +- .config/emacs/lisp/init-bookmark.el | 2 +- .config/emacs/lisp/init-chatgpt.el | 6 ++ .config/emacs/lisp/init-dashboard.el | 2 + .config/emacs/lisp/init-dired.el | 106 +++++++++++++++------------ .config/emacs/lisp/init-package.el | 18 ++++- 6 files changed, 89 insertions(+), 51 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 8f4fc54..11d89c5 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -67,8 +67,8 @@ Otherwise the startup will be very slow. " (require 'init-yasnippet) -;;(require 'init-bookmark) -;;(require 'init-dashboard) +(require 'init-bookmark) +(require 'init-dashboard) ;;(require 'init-dired) ;;(require 'init-highlight) ;;(require 'init-ibuffer) @@ -113,7 +113,7 @@ Otherwise the startup will be very slow. " ;;(require 'init-debug) ;; ;;(require 'init-extra) -;;(require 'init-chatgpt) +(require 'init-chatgpt) ;; ;;(require 'init-copilot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/.config/emacs/lisp/init-bookmark.el b/.config/emacs/lisp/init-bookmark.el index 8c9d83b..e2bc4c9 100644 --- a/.config/emacs/lisp/init-bookmark.el +++ b/.config/emacs/lisp/init-bookmark.el @@ -1,7 +1,7 @@ ;;; init-bookmark.el -*- lexical-binding: t -*- ;; Bookmark (use-package bookmark - :ensure nil + :ensure nil ; emacs built-in :config (with-no-warnings ;; Display icons for bookmarks diff --git a/.config/emacs/lisp/init-chatgpt.el b/.config/emacs/lisp/init-chatgpt.el index 2197527..9ca964d 100644 --- a/.config/emacs/lisp/init-chatgpt.el +++ b/.config/emacs/lisp/init-chatgpt.el @@ -1,8 +1,14 @@ ;; init-chatgpt.el -*- lexical-binding: t -*- (use-package chatgpt-shell + :straight t + :ensure t + :defer t :config (setq chatgpt-shell-openai-key custom-chatgpt-my-key)) (use-package dall-e-shell + :straight t + :ensure t + :defer t :config (setq dall-e-shell-openai-key custom-chatgpt-my-key)) diff --git a/.config/emacs/lisp/init-dashboard.el b/.config/emacs/lisp/init-dashboard.el index 4792c98..88b6622 100644 --- a/.config/emacs/lisp/init-dashboard.el +++ b/.config/emacs/lisp/init-dashboard.el @@ -2,6 +2,8 @@ (require 'init-funcs) (use-package dashboard + :straight t + :ensure t :diminish dashboard-mode :functions (nerd-icons-faicon nerd-icons-mdicon diff --git a/.config/emacs/lisp/init-dired.el b/.config/emacs/lisp/init-dired.el index 133e261..a7916b5 100644 --- a/.config/emacs/lisp/init-dired.el +++ b/.config/emacs/lisp/init-dired.el @@ -4,7 +4,7 @@ ;; Directory operations (use-package dired - :ensure nil + :ensure nil ; built-in :general (:keymaps 'dired-mode-map "C-c C-p" 'wdired-change-to-wdired-mode) @@ -17,55 +17,69 @@ dired-recursive-copies 'always) ;; Show directory first - (setq dired-listing-switches "-alh --group-directories-first") + (setq dired-listing-switches "-alh --group-directories-first")) - ;; Quick sort dired buffers via hydra - (use-package dired-quick-sort - :hook (after-init . dired-quick-sort-setup) - :init - (setq dired-quick-sort-suppress-setup-warning t) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "s" 'hydra-dired-quick-sort/body)) - - ;; Show git info in dired - (use-package dired-git-info) - - ;; Allow rsync from dired buffers - (use-package dired-rsync - :bind (:map dired-mode-map - ("C-c C-r" . dired-rsync))) - - ;; Colorful dired - (use-package diredfl - :hook (dired-mode . diredfl-mode)) - - ;; Shows icons - (use-package nerd-icons-dired - :diminish - :commands nerd-icons-dired-mode - :custom-face - (nerd-icons-dired-dir-face ((t (:inherit nerd-icons-dsilver :foreground unspecified)))) - :hook (dired-mode . nerd-icons-dired-mode)) - - ;; Extra Dired functionality - (use-package dired-aux :ensure nil) - - (use-package dired-single - :commands (dired dired-jump)) - (use-package dired-hide-dotfiles - :hook (dired-mode) ;; hide default when dired-mode enabled. - :config - (evil-collection-define-key 'normal 'dired-mode-map - "H" 'dired-hide-dotfiles-mode)) +;; Quick sort dired buffers via hydra +(use-package dired-quick-sort + :straight t + :ensure t + :defer t + :hook (after-init . dired-quick-sort-setup) + :init + (setq dired-quick-sort-suppress-setup-warning t) + :config (evil-collection-define-key 'normal 'dired-mode-map - "h" 'dired-single-up-directory - "l" 'dired-single-buffer - ")" 'dired-git-info-mode)) + "s" 'hydra-dired-quick-sort/body)) + +;; Show git info in dired +(use-package dired-git-info + :straight t + :ensure t + :defer t) + +;; Allow rsync from dired buffers +(use-package dired-rsync + :straight t + :ensure t + :defer t + :bind (:map dired-mode-map + ("C-c C-r" . dired-rsync))) + +;; Colorful dired +(use-package diredfl + :straight t + :ensure t + :defer t + :hook (dired-mode . diredfl-mode)) + +;; Shows icons +(use-package nerd-icons-dired + :straight t + :ensure t + :diminish + :commands nerd-icons-dired-mode + :custom-face + (nerd-icons-dired-dir-face ((t (:inherit nerd-icons-dsilver :foreground unspecified)))) + :hook (dired-mode . nerd-icons-dired-mode)) + +;; Extra Dired functionality +(use-package dired-aux :ensure nil) + +(use-package dired-single + :commands (dired dired-jump)) +(use-package dired-hide-dotfiles + :hook (dired-mode) ;; hide default when dired-mode enabled. + :config + (evil-collection-define-key 'normal 'dired-mode-map + "H" 'dired-hide-dotfiles-mode)) +(evil-collection-define-key 'normal 'dired-mode-map + "h" 'dired-single-up-directory + "l" 'dired-single-buffer + ")" 'dired-git-info-mode) ;; `find-dired' alternative using `fd' -(when (executable-find "fd") - (use-package fd-dired)) +;; (when (executable-find "fd") +;; (use-package fd-dired)) (provide 'init-dired) ;;; init-dired.el ends here diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el index 1384554..f6de26f 100644 --- a/.config/emacs/lisp/init-package.el +++ b/.config/emacs/lisp/init-package.el @@ -8,6 +8,21 @@ (and (file-readable-p custom-file) (load custom-file)) + +; (when (version< emacs-version "28") +; (add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/"))) +; (add-to-list 'package-archives '("stable" . "https://stable.melpa.org/packages/")) +; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) + +; (customize-set-variable 'package-archive-priorities +; '(("gnu" . 99) ; prefer GNU packages +; ("nongnu" . 80) ; use non-gnu packages if +; ; not found in GNU elpa +; ("stable" . 70) ; prefer "released" versions +; ; from melpa +; ("melpa" . 0))) ; if all else fails, get it +; ; from melpa + (defvar bootstrap-version) (let ((bootstrap-file (expand-file-name @@ -29,7 +44,8 @@ ; hide info in modeline (use-package diminish - :straight t) + :straight t + :ensure t) (provide 'init-package) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; From e3b0754b0c163cf73fc79d34c8efb6b205626bcf Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 01:33:25 +0900 Subject: [PATCH 14/33] emacs : dired bindings fix. --- .config/emacs/init.el | 2 +- .config/emacs/lisp/init-dired.el | 46 ++++++++++++++++-------------- .config/emacs/lisp/init-edit.el | 2 +- .config/emacs/lisp/init-general.el | 2 +- .config/emacs/lisp/init-ui.el | 33 +++++++++++---------- .config/emacs/lisp/init-vertico.el | 24 ++++++---------- 6 files changed, 51 insertions(+), 58 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 11d89c5..22d121a 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -69,7 +69,7 @@ Otherwise the startup will be very slow. " (require 'init-bookmark) (require 'init-dashboard) -;;(require 'init-dired) +(require 'init-dired) ;;(require 'init-highlight) ;;(require 'init-ibuffer) ;;(require 'init-persp) diff --git a/.config/emacs/lisp/init-dired.el b/.config/emacs/lisp/init-dired.el index a7916b5..2bb2d8b 100644 --- a/.config/emacs/lisp/init-dired.el +++ b/.config/emacs/lisp/init-dired.el @@ -5,9 +5,12 @@ ;; Directory operations (use-package dired :ensure nil ; built-in + :hook (dired-mode . dired-omit-mode) :general (:keymaps 'dired-mode-map - "C-c C-p" 'wdired-change-to-wdired-mode) + "C-c C-p" 'wdired-change-to-wdired-mode + "C-c C-r" 'dired-rsync) + :custom (dired-omit-files (rx (seq bol "."))) :config ;; Guess a default target directory (setq dired-dwim-target t) @@ -17,7 +20,13 @@ dired-recursive-copies 'always) ;; Show directory first - (setq dired-listing-switches "-alh --group-directories-first")) + (setq dired-listing-switches "-alh --group-directories-first") + (evil-collection-define-key 'normal 'dired-mode-map + "." 'dired-omit-mode + "h" 'dired-single-up-directory + "l" 'dired-single-buffer + ")" 'dired-git-info-mode + "s" 'hydra-dired-quick-sort/body)) ;; Quick sort dired buffers via hydra (use-package dired-quick-sort @@ -26,10 +35,7 @@ :defer t :hook (after-init . dired-quick-sort-setup) :init - (setq dired-quick-sort-suppress-setup-warning t) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "s" 'hydra-dired-quick-sort/body)) + (setq dired-quick-sort-suppress-setup-warning t)) ;; Show git info in dired (use-package dired-git-info @@ -41,15 +47,12 @@ (use-package dired-rsync :straight t :ensure t - :defer t - :bind (:map dired-mode-map - ("C-c C-r" . dired-rsync))) + :defer t) ;; Colorful dired (use-package diredfl :straight t :ensure t - :defer t :hook (dired-mode . diredfl-mode)) ;; Shows icons @@ -63,23 +66,22 @@ :hook (dired-mode . nerd-icons-dired-mode)) ;; Extra Dired functionality -(use-package dired-aux :ensure nil) +(use-package dired-aux ; built-in package + :ensure nil) (use-package dired-single + :straight t + :ensure t + :defer t :commands (dired dired-jump)) -(use-package dired-hide-dotfiles - :hook (dired-mode) ;; hide default when dired-mode enabled. - :config - (evil-collection-define-key 'normal 'dired-mode-map - "H" 'dired-hide-dotfiles-mode)) -(evil-collection-define-key 'normal 'dired-mode-map - "h" 'dired-single-up-directory - "l" 'dired-single-buffer - ")" 'dired-git-info-mode) + ;; `find-dired' alternative using `fd' -;; (when (executable-find "fd") -;; (use-package fd-dired)) +(when (executable-find "fd") + (use-package fd-dired + :straight t + :ensure t + :defer t)) (provide 'init-dired) ;;; init-dired.el ends here diff --git a/.config/emacs/lisp/init-edit.el b/.config/emacs/lisp/init-edit.el index b593b54..6951a73 100644 --- a/.config/emacs/lisp/init-edit.el +++ b/.config/emacs/lisp/init-edit.el @@ -53,7 +53,7 @@ :diminish hs-minor-mode :pretty-hydra ((:title (pretty-hydra-title "HideShow" 'octicon "nf-oct-fold") - :color amaranth :quit-key ("q" "C-g")) + :color amaranth :quit-key ("q" "C-g")) ("Fold" (("t" hs-toggle-all "toggle all") ("a" hs-show-all "show all") diff --git a/.config/emacs/lisp/init-general.el b/.config/emacs/lisp/init-general.el index 5b42c38..87362f6 100644 --- a/.config/emacs/lisp/init-general.el +++ b/.config/emacs/lisp/init-general.el @@ -11,7 +11,7 @@ (global-set-key (kbd "C-=") 'text-scale-increase) (global-set-key (kbd "C--") 'text-scale-decrease) -; TODO move to hideshow + ; TODO move to hideshow (global-set-key (kbd "C-") 'hs-toggle-hiding) ;; When you begin a keybind, whichkey will show you all keybinds you can follow the first one with in order to form a full keywords. diff --git a/.config/emacs/lisp/init-ui.el b/.config/emacs/lisp/init-ui.el index 7da6178..a3904d7 100644 --- a/.config/emacs/lisp/init-ui.el +++ b/.config/emacs/lisp/init-ui.el @@ -46,14 +46,16 @@ doom-modeline-persp-icon t doom-modeline-display-default-persp-name t doom-modeline-indent-info t)) -;;(use-package hide-mode-line -;; :hook (((completion-list-mode -;; completion-in-region-mode -;; eshell-mode shell-mode -;; term-mode vterm-mode -;; treemacs-mode -;; lsp-ui-imenu-mode -;; pdf-annot-list-mode) . hide-mode-line-mode))) +(use-package hide-mode-line + :straight t + :ensure t + :hook (((completion-list-mode + completion-in-region-mode + eshell-mode shell-mode + term-mode vterm-mode + treemacs-mode + lsp-ui-imenu-mode + pdf-annot-list-mode) . hide-mode-line-mode))) ;; A minor-mode menu for mode-line (use-package minions @@ -110,12 +112,12 @@ ;; Good pixel line scrolling (if (fboundp 'pixel-scroll-precision-mode) (pixel-scroll-precision-mode t) - (use-package good-scroll - :straight t - :ensure t - :hook (after-init . good-scroll-mode) - :bind (([remap next] . good-scroll-up-full-screen) - ([remap prior] . good-scroll-down-full-screen)))) + (use-package good-scroll + :straight t + :ensure t + :hook (after-init . good-scroll-mode) + :bind (([remap next] . good-scroll-up-full-screen) + ([remap prior] . good-scroll-down-full-screen)))) ;; Smooth scrolling over images (use-package iscroll @@ -141,9 +143,6 @@ (set-fontset-font "fontset-default" (cons page-break-lines-char page-break-lines-char) (face-attribute 'default :family))) -(use-package form-feed - :disabled - :hook (after-init . global-form-feed-mode)) ;; emoji (use-package emojify diff --git a/.config/emacs/lisp/init-vertico.el b/.config/emacs/lisp/init-vertico.el index fff7c7b..8025ec9 100644 --- a/.config/emacs/lisp/init-vertico.el +++ b/.config/emacs/lisp/init-vertico.el @@ -16,15 +16,14 @@ :ensure t :hook (vertico-mode . nerd-icons-completion-mode)) -(when (display-graphic-p) - (use-package vertico-posframe - :straight t - :ensure t - :when custom-vertico-posframe - :after vertico - :hook (vertico-mode . vertico-posframe-mode) - :config - (setq vertico-posframe-border-width 5))) +(use-package vertico-posframe + :straight t + :ensure t + :when (and custom-vertico-posframe 'display-graphic-p) + :after vertico + :hook (vertico-mode . vertico-posframe-mode) + :config + (setq vertico-posframe-border-width 5)) ;; (setq vertico-posframe-parameters ;; '((left-fringe . 20) ;; (right-fringe . 20))))) @@ -168,13 +167,6 @@ (t ,(nerd-icons-codicon "nf-cod-code") :face font-lock-warning-face))))) -(use-package corfu-terminal - :straight t - :ensure t - :config - (unless (display-graphic-p) - (corfu-terminal-mode))) - ;;; Cape ;; Setup Cape for better completion-at-point support and more (use-package cape From a646bebbb592e49e94123ce0850b94d2df5b0c12 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 10:39:28 +0900 Subject: [PATCH 15/33] bspwm : add for login environment --- .config/bspwm/bspwmrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc index 1ef1521..d3ee641 100755 --- a/.config/bspwm/bspwmrc +++ b/.config/bspwm/bspwmrc @@ -1,5 +1,7 @@ #!/usr/bin/env bash +source ~/.profile + if [[ $JUPCID == "HOME-DESKTOP" ]]; then xrandr --output DP-4 --primary --mode 2560x1440 --rotate normal --output HDMI-0 --rotate right --right-of DP-4 elif [[ $JUPCID == "HWDEV" ]]; then From 518bc791265d654bc0b76be80814d7acca221bfa Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 10:41:46 +0900 Subject: [PATCH 16/33] emacs : fd-dired config --- .config/emacs/lisp/init-dired.el | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/.config/emacs/lisp/init-dired.el b/.config/emacs/lisp/init-dired.el index 2bb2d8b..90b5cfa 100644 --- a/.config/emacs/lisp/init-dired.el +++ b/.config/emacs/lisp/init-dired.el @@ -21,12 +21,17 @@ ;; Show directory first (setq dired-listing-switches "-alh --group-directories-first") + (if (executable-find "fd") + (evil-collection-define-key 'normal 'dired-mode-map + "f" 'fd-dired) + (evil-collection-define-key 'normal 'dired-mode-map + "f" 'find-dired)) (evil-collection-define-key 'normal 'dired-mode-map - "." 'dired-omit-mode - "h" 'dired-single-up-directory - "l" 'dired-single-buffer - ")" 'dired-git-info-mode - "s" 'hydra-dired-quick-sort/body)) + "." 'dired-omit-mode + "h" 'dired-single-up-directory + "l" 'dired-single-buffer + ")" 'dired-git-info-mode + "s" 'hydra-dired-quick-sort/body)) ;; Quick sort dired buffers via hydra (use-package dired-quick-sort @@ -67,12 +72,12 @@ ;; Extra Dired functionality (use-package dired-aux ; built-in package - :ensure nil) + :ensure nil) (use-package dired-single - :straight t - :ensure t - :defer t + :straight t + :ensure t + :defer t :commands (dired dired-jump)) From 95d87847643f09e8ee0e127eba21d0d6b2126e55 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 11:12:42 +0900 Subject: [PATCH 17/33] emacs : consult switch buffer --- .config/emacs/lisp/init-vertico.el | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.config/emacs/lisp/init-vertico.el b/.config/emacs/lisp/init-vertico.el index 8025ec9..1a21192 100644 --- a/.config/emacs/lisp/init-vertico.el +++ b/.config/emacs/lisp/init-vertico.el @@ -57,13 +57,16 @@ (completion-in-region-function #'consult-completion-in-region) :config (global-set-key (kbd "C-s") 'consult-line) - ;; HACK: https://github.com/Bad-ptr/persp-mode.el/issues/125 - (with-eval-after-load "persp-mode-autoloads" - (defun my/consult-switch-to-buffer () - "`consult-buffer' with buffers provided by persp." - (interactive) - (with-persp-buffer-list () (consult-buffer))) - (global-set-key (kbd "C-M-j") #'my/consult-switch-to-buffer))) + (defun my/consult-switch-to-buffer () + "`consult-buffer' with buffers provided by persp." + (interactive) + (with-persp-buffer-list () (consult-buffer))) + (defun my/consult-project-switch-to-buffer () + "`consult-project-buffer' with buffers provided by persp." + (interactive) + (with-persp-buffer-list () (consult-project-buffer))) + (global-set-key (kbd "C-M-j") #'my/consult-switch-to-buffer) + (global-set-key (kbd "C-M-h") #'my/consult-project-switch-to-buffer)) (use-package orderless :straight t From 3306707949df69ee082baffea06de160030e341e Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 11:13:14 +0900 Subject: [PATCH 18/33] emacs : Highlight ibuffer --- .config/emacs/init.el | 4 ++-- .config/emacs/lisp/init-highlight.el | 19 ++++++++++++++-- .config/emacs/lisp/init-ibuffer.el | 34 ++++++++++++++++++---------- 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 22d121a..d5c683c 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -70,9 +70,9 @@ Otherwise the startup will be very slow. " (require 'init-bookmark) (require 'init-dashboard) (require 'init-dired) -;;(require 'init-highlight) -;;(require 'init-ibuffer) ;;(require 'init-persp) +(require 'init-highlight) +(require 'init-ibuffer) ;;(require 'init-window) (require 'init-treemacs) ;; diff --git a/.config/emacs/lisp/init-highlight.el b/.config/emacs/lisp/init-highlight.el index 48e5aa3..da96df8 100644 --- a/.config/emacs/lisp/init-highlight.el +++ b/.config/emacs/lisp/init-highlight.el @@ -3,7 +3,7 @@ (require 'init-funcs) (use-package hl-line - :ensure nil + :ensure nil ;; built-in package :hook ((after-init . global-hl-line-mode) ((dashboard-mode eshell-mode shell-mode term-mode vterm-mode) . (lambda () (setq-local global-hl-line-mode nil)))) @@ -11,6 +11,9 @@ (set-face-background 'hl-line "gray8")) (use-package symbol-overlay + :straight t + :ensure t + :defer t :diminish :custom-face ;;(symbol-overlay-default-face ((t (:inherit region :background unspecified :foreground unspecified)))) @@ -49,6 +52,9 @@ ;; Colorize color names in buffers (use-package rainbow-mode + :straight t + :ensure t + :defer t :diminish :defines helpful-mode-map :bind (:map help-mode-map @@ -76,10 +82,16 @@ ;; Highlight brackets according to their depth (use-package rainbow-delimiters + :straight t + :ensure t + :defer t :hook (prog-mode . rainbow-delimiters-mode)) ;; keywords from doom-emacs (use-package hl-todo + :straight t + :ensure t + :defer t :custom-face (hl-todo ((t (:inherit default :height 0.9 :width condensed :weight bold :underline nil :inverse-video t)))) :hook (after-init . global-hl-todo-mode) @@ -112,6 +124,9 @@ (add-to-list 'hl-todo-keyword-faces `(,keyword . "#8d9eaf")))) (use-package diff-hl + :straight t + :ensure t + :defer t :hook ((after-init . global-diff-hl-mode) (magit-post-refresh . diff-hl-magit-post-refresh) (dired-mode . diff-hl-dired-mode-unless-remote)) @@ -145,7 +160,7 @@ (add-hook 'magit-post-refresh-hook #'diff-hl-magit-post-refresh)))) ;; Pulse current line (use-package pulse - :ensure nil + :ensure nil ;; built-in :custom-face (pulse-highlight-start-face ((t (:inherit region :background unspecified)))) (pulse-highlight-face ((t (:inherit region :background unspecified :extend t)))) diff --git a/.config/emacs/lisp/init-ibuffer.el b/.config/emacs/lisp/init-ibuffer.el index 8e3c520..ec91470 100644 --- a/.config/emacs/lisp/init-ibuffer.el +++ b/.config/emacs/lisp/init-ibuffer.el @@ -3,20 +3,30 @@ (require 'init-funcs) (use-package ibuffer - :ensure nil - :init (setq ibuffer-filter-group-name-face '(:inherit (font-lock-string-face bold))) - :config - ;; Display icons for buffers - (use-package nerd-icons-ibuffer - :hook (ibuffer-mode . nerd-icons-ibuffer-mode) - :init (setq nerd-icons-ibuffer-icon t))) + :ensure nil ; built-in + :init + (setq ibuffer-filter-group-name-face + '(:inherit (font-lock-string-face bold)))) +(use-package nerd-icons-ibuffer + :straight t + :ensure t + :defer t + :hook + (ibuffer-mode . nerd-icons-ibuffer-mode) + :init + (setq nerd-icons-ibuffer-icon t)) ;; Group ibuffer's list by project (use-package ibuffer-project - :hook (ibuffer . (lambda () - (setq ibuffer-filter-groups (ibuffer-project-generate-filter-groups)) - (unless (eq ibuffer-sorting-mode 'project-file-relative) - (ibuffer-do-sort-by-project-file-relative)))) - :init (setq ibuffer-project-use-cache t) + :straight t + :ensure t + :defer t + :hook + (ibuffer . (lambda () + (setq ibuffer-filter-groups (ibuffer-project-generate-filter-groups)) + (unless (eq ibuffer-sorting-mode 'project-file-relative) + (ibuffer-do-sort-by-project-file-relative)))) + :init + (setq ibuffer-project-use-cache t) :config (add-to-list 'ibuffer-project-root-functions '(file-remote-p . "Remote")) (add-to-list 'ibuffer-project-root-functions '("\\*.+\\*" . "Default"))) From e3541521dc8285204f8fae5bc160bf9b25813b70 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 11:23:30 +0900 Subject: [PATCH 19/33] emacs : disable for better UX --- .config/emacs/lisp/init-ui.el | 1 - 1 file changed, 1 deletion(-) diff --git a/.config/emacs/lisp/init-ui.el b/.config/emacs/lisp/init-ui.el index a3904d7..c803907 100644 --- a/.config/emacs/lisp/init-ui.el +++ b/.config/emacs/lisp/init-ui.el @@ -50,7 +50,6 @@ :straight t :ensure t :hook (((completion-list-mode - completion-in-region-mode eshell-mode shell-mode term-mode vterm-mode treemacs-mode From 1d9e083f7ba44c3733ae5463156202fac26b0549 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 14:19:42 +0900 Subject: [PATCH 20/33] emacs : init-dict will be removed. --- .config/emacs/init.el | 7 +-- .config/emacs/lisp/init-package.el | 14 ------ .config/emacs/lisp/init-persp.el | 78 ++++++++++++++++-------------- 3 files changed, 45 insertions(+), 54 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index d5c683c..305b323 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -70,10 +70,10 @@ Otherwise the startup will be very slow. " (require 'init-bookmark) (require 'init-dashboard) (require 'init-dired) -;;(require 'init-persp) (require 'init-highlight) (require 'init-ibuffer) -;;(require 'init-window) +(require 'init-persp) +;; (require 'init-window) ;; will be removed (require 'init-treemacs) ;; ;;;; shell @@ -93,7 +93,8 @@ Otherwise the startup will be very slow. " ;;;; utils ;;(require 'init-utils) ;; -;;;; Programming +;; (require 'init-dict) ;; will be removed + ;;(require 'init-vcs) ;;(require 'init-flycheck) ;;(require 'init-eglot) diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el index f6de26f..c300742 100644 --- a/.config/emacs/lisp/init-package.el +++ b/.config/emacs/lisp/init-package.el @@ -9,20 +9,6 @@ (and (file-readable-p custom-file) (load custom-file)) -; (when (version< emacs-version "28") -; (add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/"))) -; (add-to-list 'package-archives '("stable" . "https://stable.melpa.org/packages/")) -; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) - -; (customize-set-variable 'package-archive-priorities -; '(("gnu" . 99) ; prefer GNU packages -; ("nongnu" . 80) ; use non-gnu packages if -; ; not found in GNU elpa -; ("stable" . 70) ; prefer "released" versions -; ; from melpa -; ("melpa" . 0))) ; if all else fails, get it -; ; from melpa - (defvar bootstrap-version) (let ((bootstrap-file (expand-file-name diff --git a/.config/emacs/lisp/init-persp.el b/.config/emacs/lisp/init-persp.el index 3e8ae33..0672124 100644 --- a/.config/emacs/lisp/init-persp.el +++ b/.config/emacs/lisp/init-persp.el @@ -4,6 +4,9 @@ ;; Windows/buffers sets shared among frames + save/load. (use-package persp-mode + :straight t + :ensure t + :defer t :diminish :autoload (get-current-persp persp-contain-buffer-p) :hook (after-init . persp-mode) @@ -13,7 +16,6 @@ persp-kill-foreign-buffer-behaviour 'kill persp-auto-resume-time 0) :config - (with-no-warnings ;; Don't save if the state is not loaded (defvar persp-state-loaded nil @@ -66,43 +68,45 @@ :save-vars '(major-mode default-directory))) ;; Project integration +(use-package persp-mode-project-bridge + :straight t + :ensure t + :defer t + :autoload (persp-mode-project-bridge-find-perspectives-for-all-buffers + persp-mode-project-bridge-kill-perspectives) + :hook + (persp-mode-project-bridge-mode . (lambda () + (if persp-mode-project-bridge-mode + (persp-mode-project-bridge-find-perspectives-for-all-buffers) + (persp-mode-project-bridge-kill-perspectives)))) + (persp-mode . persp-mode-project-bridge-mode) + :init (when (icons-displayable-p) + (setq persp-mode-project-bridge-persp-name-prefix "")) + :config + (with-no-warnings + ;; HACK: Allow saving to files + (defun my-persp-mode-project-bridge-add-new-persp (name) + (let ((persp (persp-get-by-name name *persp-hash* :nil))) + (if (eq :nil persp) + (prog1 + (setq persp (persp-add-new name)) + (when persp + (set-persp-parameter 'persp-mode-project-bridge t persp) + (persp-add-buffer (cl-remove-if-not #'get-file-buffer (project-files (project-current))) + persp nil nil))) + persp))) + (advice-add #'persp-mode-project-bridge-add-new-persp + :override #'my-persp-mode-project-bridge-add-new-persp) - (use-package persp-mode-project-bridge - :autoload (persp-mode-project-bridge-find-perspectives-for-all-buffers - persp-mode-project-bridge-kill-perspectives) - :hook - (persp-mode-project-bridge-mode . (lambda () - (if persp-mode-project-bridge-mode - (persp-mode-project-bridge-find-perspectives-for-all-buffers) - (persp-mode-project-bridge-kill-perspectives)))) - (persp-mode . persp-mode-project-bridge-mode) - :init (when (icons-displayable-p) - (setq persp-mode-project-bridge-persp-name-prefix "")) - :config - (with-no-warnings - ;; HACK: Allow saving to files - (defun my-persp-mode-project-bridge-add-new-persp (name) - (let ((persp (persp-get-by-name name *persp-hash* :nil))) - (if (eq :nil persp) - (prog1 - (setq persp (persp-add-new name)) - (when persp - (set-persp-parameter 'persp-mode-project-bridge t persp) - (persp-add-buffer (cl-remove-if-not #'get-file-buffer (project-files (project-current))) - persp nil nil))) - persp))) - (advice-add #'persp-mode-project-bridge-add-new-persp - :override #'my-persp-mode-project-bridge-add-new-persp) - - ;; HACK: Switch to buffer after switching perspective - (defun my-persp-mode-project-bridge-hook-switch (fn &rest _args) - "Switch to a perspective when hook is activated." - (let ((buf (current-buffer))) - (funcall fn) - (when (buffer-live-p buf) - (switch-to-buffer buf)))) - (advice-add #'persp-mode-project-bridge-hook-switch - :around #'my-persp-mode-project-bridge-hook-switch))) + ;; HACK: Switch to buffer after switching perspective + (defun my-persp-mode-project-bridge-hook-switch (fn &rest _args) + "Switch to a perspective when hook is activated." + (let ((buf (current-buffer))) + (funcall fn) + (when (buffer-live-p buf) + (switch-to-buffer buf)))) + (advice-add #'persp-mode-project-bridge-hook-switch + :around #'my-persp-mode-project-bridge-hook-switch))) (provide 'init-persp) ;;; init-persp.el ends here From 45bdf5fa0d63796b26e3d727033fe4725d5c5c52 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 14:20:28 +0900 Subject: [PATCH 21/33] emacs : eshell --- .config/emacs/init.el | 8 ++-- .config/emacs/lisp/init-eshell.el | 75 +++++++++++++++++-------------- 2 files changed, 46 insertions(+), 37 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 305b323..bacbab1 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -75,10 +75,10 @@ Otherwise the startup will be very slow. " (require 'init-persp) ;; (require 'init-window) ;; will be removed (require 'init-treemacs) -;; -;;;; shell -;;(require 'init-eshell) -;; + +;; shell +(require 'init-eshell) + ;;;; markdown ;;(require 'init-markdown) ;;(require 'init-org) diff --git a/.config/emacs/lisp/init-eshell.el b/.config/emacs/lisp/init-eshell.el index f4267de..9fb8cfd 100644 --- a/.config/emacs/lisp/init-eshell.el +++ b/.config/emacs/lisp/init-eshell.el @@ -1,7 +1,7 @@ ;;; init-eshell.el -*- lexical-binding: t -*- ;; Emacs command shell (use-package eshell - :ensure nil + :ensure nil ; built-in :defines eshell-prompt-function :bind (:map eshell-mode-map ([remap recenter-top-bottom] . eshell/clear)) @@ -72,43 +72,52 @@ (eshell-view-file (pop args))))) (defalias 'eshell/more #'eshell/less)) - ;;(defun ju/eshell-prompt () - ;; (let ((current-branch (magit-get-current-branch))) - ;; (concat - ;; "\n" - ;; (propertize (system-name) 'face `(:foreground "#62aeed")) - ;; (propertize " ॐ " 'face `(:foreground "white")) - ;; (propertize (ju/get-prompt-path) 'face `(:foreground "#82cfd3")) - ;; (when current-branch - ;; (concat - ;; (propertize " • " 'face `(:foreground "white")) - ;; (propertize (concat " " current-branch) 'face `(:foreground "#c475f0")))) - ;; (propertize " • " 'face `(:foreground "white")) - ;; (propertize (format-time-string "%I:%M:%S %p") 'face `(:foreground "#5a5b7f")) - ;; (if (= (user-uid) 0) - ;; (propertize "\n#" 'face `(:foreground "red2")) - ;; (propertize "\nλ" 'face `(:foreground "#aece4a"))) - ;; (propertize " " 'face `(:foreground "white"))))) + (defun ju/eshell-prompt () + (let ((current-branch (magit-get-current-branch))) + (concat + "\n" + (propertize (system-name) 'face `(:foreground "#62aeed")) + (propertize " ॐ " 'face `(:foreground "white")) + (propertize (ju/get-prompt-path) 'face `(:foreground "#82cfd3")) + (when current-branch + (concat + (propertize " • " 'face `(:foreground "white")) + (propertize (concat " " current-branch) 'face `(:foreground "#c475f0")))) + (propertize " • " 'face `(:foreground "white")) + (propertize (format-time-string "%I:%M:%S %p") 'face `(:foreground "#5a5b7f")) + (if (= (user-uid) 0) + (propertize "\n#" 'face `(:foreground "red2")) + (propertize "\nλ" 'face `(:foreground "#aece4a"))) + (propertize " " 'face `(:foreground "white")))))) - ;;(setq eshell-prompt-function 'ju/eshell-prompt - ;; eshell-prompt-regexp "^λ ") + ;; (setq eshell-prompt-function 'ju/eshell-prompt + ;; eshell-prompt-regexp "^λ ")) - ;; Display extra information for prompt - (use-package eshell-prompt-extras - :after esh-opt - :defines eshell-highlight-prompt - :autoload (epe-theme-lambda epe-theme-dakrone epe-theme-pipeline) - :init (setq eshell-highlight-prompt t - eshell-prompt-function #'epe-theme-lambda)) +;; Display extra information for prompt +(use-package eshell-prompt-extras + :straight t + :ensure t + :defer t + :after esh-opt + :defines eshell-highlight-prompt + :autoload (epe-theme-lambda epe-theme-dakrone epe-theme-pipeline) + :init (setq eshell-highlight-prompt t + eshell-prompt-function #'epe-theme-lambda)) - ;; `eldoc' support - (use-package esh-help - :init (setup-esh-help-eldoc)) +;; `eldoc' support +(use-package esh-help + :straight t + :ensure t + :defer t + :init (setup-esh-help-eldoc)) - ;; `cd' to frequent directory in `eshell' - (use-package eshell-z - :hook (eshell-mode . (lambda () (require 'eshell-z))))) +;; `cd' to frequent directory in `eshell' +(use-package eshell-z + :straight t + :ensure t + :defer t + :hook (eshell-mode . (lambda () (require 'eshell-z)))) (provide 'init-eshell) From 08caaa60421c38b089bbebb749ce9c2acd4a0b13 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 14:21:39 +0900 Subject: [PATCH 22/33] emacs : markdown, reader, docker, utils --- .config/emacs/init.el | 21 +++++---- .config/emacs/lisp/init-docker.el | 10 ++++- .config/emacs/lisp/init-markdown.el | 12 +++++ .config/emacs/lisp/init-persp.el | 2 +- .config/emacs/lisp/init-reader.el | 70 +++++++++++++++++++---------- .config/emacs/lisp/init-utils.el | 23 +++++----- 6 files changed, 90 insertions(+), 48 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index bacbab1..7494e26 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -80,21 +80,20 @@ Otherwise the startup will be very slow. " (require 'init-eshell) ;;;; markdown -;;(require 'init-markdown) +(require 'init-markdown) ;;(require 'init-org) -;;(require 'init-reader) -;; -;;;; -;;(require 'init-dict) -;; -;;;; docker -;;(when ON-LINUX -;; (require 'init-docker)) -;;;; utils -;;(require 'init-utils) +(require 'init-reader) + ;; ;; (require 'init-dict) ;; will be removed +;; docker +(when ON-LINUX + (require 'init-docker)) +;; utils +(require 'init-utils) + +;; Programming ;;(require 'init-vcs) ;;(require 'init-flycheck) ;;(require 'init-eglot) diff --git a/.config/emacs/lisp/init-docker.el b/.config/emacs/lisp/init-docker.el index 0f1d4bc..7b30730 100644 --- a/.config/emacs/lisp/init-docker.el +++ b/.config/emacs/lisp/init-docker.el @@ -1,11 +1,17 @@ ;;; init-docker.el -*- lexical-binding: t -*- ;; Docker (use-package docker + :straight t + :ensure t + :defer t :defines docker-image-run-arguments :init (setq docker-image-run-arguments '("-i" "-t" "--rm") docker-container-shell-file-name "/bin/bash")) -;;(use-package docker-tramp) -(use-package dockerfile-mode) + +(use-package dockerfile-mode + :straight t + :ensure t + :defer t) (provide 'init-docker) ;;; init-docker.el ends here diff --git a/.config/emacs/lisp/init-markdown.el b/.config/emacs/lisp/init-markdown.el index ef0e8b2..03db165 100644 --- a/.config/emacs/lisp/init-markdown.el +++ b/.config/emacs/lisp/init-markdown.el @@ -1,6 +1,9 @@ ;;; init-markdown.el -*- lexical-binding: t -*- ;; using multimarkdown compiler, could be found at AUR (use-package markdown-mode + :straight t + :ensure t + :defer t :mode ("README\\.md\\'" . gfm-mode) :init (setq markdown-command "multimarkdown") (setq markdown-enable-wiki-links t @@ -9,6 +12,15 @@ markdown-make-gfm-checkboxes-buttons t markdown-gfm-uppercase-checkbox t markdown-fontify-code-blocks-natively t)) + +(use-package grip-mode + :straight t + :ensure t + :defer t + ;; :config (setq grip-use-mdopen t) ;; to use `mdopen` instead of `grip` + :bind (:map markdown-mode-command-map + ("g" . grip-mode))) + (provide 'init-markdown) ;;; init-markdown.el ends here diff --git a/.config/emacs/lisp/init-persp.el b/.config/emacs/lisp/init-persp.el index 0672124..ef78ed2 100644 --- a/.config/emacs/lisp/init-persp.el +++ b/.config/emacs/lisp/init-persp.el @@ -67,7 +67,7 @@ :mode-restore-function (lambda (_) (shell)) :save-vars '(major-mode default-directory))) -;; Project integration +;; Project.el integration (use-package persp-mode-project-bridge :straight t :ensure t diff --git a/.config/emacs/lisp/init-reader.el b/.config/emacs/lisp/init-reader.el index a493633..d687999 100644 --- a/.config/emacs/lisp/init-reader.el +++ b/.config/emacs/lisp/init-reader.el @@ -1,9 +1,20 @@ ;;; init-reader.el -*- lexical-binding: t -*- -(use-package pdf-view - :ensure pdf-tools - :diminish (pdf-view-themed-minor-mode - pdf-view-midnight-minor-mode - pdf-view-printer-minor-mode) + +;; Nice reading / writing +(use-package olivetti + :straight t + :ensure t + :defer t + :diminish + :bind ("" . olivetti-mode) + :hook ((markdown-mode . olivetti-mode) + (org-mode . olivetti-mode)) + :init (setq olivetti-body-width 0.62)) + +(use-package pdf-tools + :straight t + :ensure t + :defer t :defines pdf-annot-activate-created-annotations :hook ((pdf-tools-enabled . pdf-view-auto-slice-minor-mode) (pdf-tools-enabled . pdf-isearch-minor-mode) @@ -11,15 +22,12 @@ :mode ("\\.[pP][dD][fF]\\'" . pdf-view-mode) :magic ("%PDF" . pdf-view-mode) :bind (:map pdf-view-mode-map - ("C-s" . isearch-forward)) - :init (setq pdf-view-use-scaling t - pdf-view-use-imagemagick nil - pdf-annot-activate-created-annotations t - pdf-view-display-size 'fit-page) + ("C-s" . isearch-forward)) + :init + (pdf-tools-install) :config - ;; install manually - ;;(pdf-tools-install t nil t nil) - ;; my funtion + (setq-default pdf-view-display-size 'fit-page) + (setq-default pdf-view-resize-factor 1.1) ;; zoom in/out setting (defun my/pdf-view-open-in-zathura () (interactive) (save-window-excursion @@ -27,18 +35,23 @@ (current-page (number-to-string (pdf-view-current-page)))) (async-shell-command (format "zathura -P %s \"%s\"" current-page current-file)))) - (message "Sent to zathura")) - ;; Recover last viewed position - (use-package pdf-view-restore - :defer t - :hook (pdf-view-mode . pdf-view-restore-mode) - :config - (setq pdf-view-restore-filename - (expand-file-name "pdf-view-restore" user-emacs-directory)))) + (message "Sent to zathura"))) +;; Recover last viewed position +(use-package pdf-view-restore + :straight t + :ensure t + :defer t + :hook (pdf-view-mode . pdf-view-restore-mode) + :config + (setq pdf-view-restore-filename + (expand-file-name "pdf-view-restore" user-emacs-directory))) ;; Epub reader (use-package nov + :straight t + :ensure t + :defer t :mode ("\\.epub\\'" . nov-mode) :hook (nov-mode . my-nov-setup) :init @@ -66,9 +79,12 @@ process-coding-system-alist)))) ;; Atom/RSS reader (use-package elfeed + :straight t + :ensure t + :defer t :pretty-hydra ((:title (pretty-hydra-title "Elfeed" 'faicon "nf-fa-rss_square" :face 'nerd-icons-orange) - :color amaranth :quit-key ("q" "C-g")) + :color amaranth :quit-key ("q" "C-g")) ("Search" (("c" elfeed-db-compact "compact db") ("g" elfeed-search-update--force "refresh") @@ -99,11 +115,17 @@ (push elfeed-db-directory recentf-exclude)) (use-package elfeed-goodies + :straight t + :ensure t + :defer t :hook (after-init . elfeed-goodies/setup)) (use-package elfeed-org - :hook (after-init . elfeed-org) + :straight t + :ensure t + :after elfeed :config - (setq rmh-elfeed-org-files (list (expand-file-name "elfeed.org" org-directory)))) + (setq rmh-elfeed-org-files (list (expand-file-name "elfeed.org" org-directory))) + (elfeed-org)) (provide 'init-reader) ;;; init-reader.el ends here diff --git a/.config/emacs/lisp/init-utils.el b/.config/emacs/lisp/init-utils.el index b35ed0c..1b02bf5 100644 --- a/.config/emacs/lisp/init-utils.el +++ b/.config/emacs/lisp/init-utils.el @@ -1,14 +1,14 @@ ;;; init-utils.el -*- lexical-binding: t -*- -(use-package rg) -;; Nice writing -(use-package olivetti - :diminish - :bind ("" . olivetti-mode) - :hook (org-mode markdown-mode) - :init (setq olivetti-body-width 0.62)) +(use-package rg + :straight t + :ensure t + :defer t) ;; text mode directory tree (use-package ztree + :straight t + :ensure t + :defer t :custom-face (ztreep-header-face ((t (:inherit diff-header)))) (ztreep-arrow-face ((t (:inherit font-lock-comment-face)))) @@ -46,6 +46,9 @@ ztree-show-number-of-children t)) (use-package list-environment + :straight t + :ensure t + :defer t :hook (list-environment-mode . (lambda () (setq tabulated-list-format (vconcat `(("" ,(if (icons-displayable-p) 2 0))) @@ -69,9 +72,9 @@ process-environment)) (advice-add #'list-environment-entries :override #'my-list-environment-entries))) -(unless ON-WINDOWS - (use-package daemons) ; system services/daemons - (use-package tldr)) +;; (unless ON-WINDOWS +;; (use-package daemons) ; system services/daemons +;; (use-package tldr)) (provide 'init-utils) From a8e4e2a39474dfc940d2d8892c377119504f284b Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 14:33:29 +0900 Subject: [PATCH 23/33] emacs : eshell, prompt improvement --- .config/emacs/lisp/init-eshell.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.config/emacs/lisp/init-eshell.el b/.config/emacs/lisp/init-eshell.el index 9fb8cfd..8d7948c 100644 --- a/.config/emacs/lisp/init-eshell.el +++ b/.config/emacs/lisp/init-eshell.el @@ -71,7 +71,13 @@ (forward-line line)) (eshell-view-file (pop args))))) (defalias 'eshell/more #'eshell/less)) - + (defun ju/get-prompt-path () + (let* ((current-path (eshell/pwd)) + (git-output (shell-command-to-string "git rev-parse --show-toplevel")) + (has-path (not (string-match "^fatal" git-output)))) + (if (not has-path) + (abbreviate-file-name current-path) + (string-remove-prefix (file-name-directory git-output) current-path)))) (defun ju/eshell-prompt () (let ((current-branch (magit-get-current-branch))) (concat @@ -79,6 +85,7 @@ (propertize (system-name) 'face `(:foreground "#62aeed")) (propertize " ॐ " 'face `(:foreground "white")) (propertize (ju/get-prompt-path) 'face `(:foreground "#82cfd3")) + (when current-branch (concat (propertize " • " 'face `(:foreground "white")) @@ -88,10 +95,10 @@ (if (= (user-uid) 0) (propertize "\n#" 'face `(:foreground "red2")) (propertize "\nλ" 'face `(:foreground "#aece4a"))) - (propertize " " 'face `(:foreground "white")))))) + (propertize " " 'face `(:foreground "white"))))) - ;; (setq eshell-prompt-function 'ju/eshell-prompt - ;; eshell-prompt-regexp "^λ ")) + (setq eshell-prompt-function 'ju/eshell-prompt + eshell-prompt-regexp "^λ ")) ;; Display extra information for prompt From 16d23ca7da334fe61d0c198c3c7d91ef30e83c56 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 14:36:13 +0900 Subject: [PATCH 24/33] emacs : magit --- .config/emacs/init.el | 2 +- .config/emacs/lisp/init-vcs.el | 77 ++++++++++++++++++++-------------- 2 files changed, 47 insertions(+), 32 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 7494e26..f9dc785 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -94,7 +94,7 @@ Otherwise the startup will be very slow. " (require 'init-utils) ;; Programming -;;(require 'init-vcs) +(require 'init-vcs) ;;(require 'init-flycheck) ;;(require 'init-eglot) ;;(require 'init-ctags) diff --git a/.config/emacs/lisp/init-vcs.el b/.config/emacs/lisp/init-vcs.el index 3022fb0..f8d004e 100644 --- a/.config/emacs/lisp/init-vcs.el +++ b/.config/emacs/lisp/init-vcs.el @@ -5,6 +5,7 @@ ;; Git ;; See `magit-maybe-define-global-key-bindings' (use-package magit + :ensure nil :commands (magit-status magit-get-current-branch) :init (setq magit-diff-refine-hunk t) :config @@ -27,50 +28,58 @@ (bury-buffer buf) (kill-buffer buf)))) buffers)))) - (setq magit-bury-buffer-function #'my-magit-kill-buffers)) + (setq magit-bury-buffer-function #'my-magit-kill-buffers))) - ;; Show TODOs in magit - (use-package magit-todos - :defines magit-todos-nice - :commands magit-todos--scan-with-git-grep - :init - (setq magit-todos-nice (if (executable-find "nice") t nil)) - (setq magit-todos-scanner #'magit-todos--scan-with-git-grep) - (setq magit-todos-exclude-globs '(".git/" "*.json" "*.js")) - (let ((inhibit-message t)) - (magit-todos-mode 1)))) +;; Show TODOs in magit +(use-package magit-todos + :straight t + :ensure t + :defines magit-todos-nice + :commands magit-todos--scan-with-git-grep + :init + (setq magit-todos-nice (if (executable-find "nice") t nil)) + (setq magit-todos-scanner #'magit-todos--scan-with-git-grep) + (setq magit-todos-exclude-globs '(".git/" "*.json" "*.js")) + (let ((inhibit-message t)) + (magit-todos-mode 1))) ;; Walk through git revisions of a file (use-package git-timemachine + :straight t + :ensure t + :defer t :custom-face (git-timemachine-minibuffer-author-face ((t (:inherit success :foreground unspecified)))) (git-timemachine-minibuffer-detail-face ((t (:inherit warning :foreground unspecified)))) - :hook ((git-timemachine-mode . (lambda () - "Improve `git-timemachine' buffers." - ;; Display different colors in mode-line - (if (facep 'mode-line-active) - (face-remap-add-relative 'mode-line-active 'custom-state) - (face-remap-add-relative 'mode-line 'custom-state)) + :hook ((git-timemachine-mode + . (lambda () + "Improve `git-timemachine' buffers." + ;; Display different colors in mode-line + (if (facep 'mode-line-active) + (face-remap-add-relative 'mode-line-active 'custom-state) + (face-remap-add-relative 'mode-line 'custom-state)) - ;; Highlight symbols in elisp - (and (derived-mode-p 'emacs-lisp-mode) - (fboundp 'highlight-defined-mode) - (highlight-defined-mode t)) + ;; Highlight symbols in elisp + (and (derived-mode-p 'emacs-lisp-mode) + (fboundp 'highlight-defined-mode) + (highlight-defined-mode t)) - ;; Display line numbers - (and (derived-mode-p 'prog-mode 'yaml-mode) - (fboundp 'display-line-numbers-mode) - (display-line-numbers-mode t)))) + ;; Display line numbers + (and (derived-mode-p 'prog-mode 'yaml-mode) + (fboundp 'display-line-numbers-mode) + (display-line-numbers-mode t)))) (before-revert . (lambda () (when (bound-and-true-p git-timemachine-mode) (user-error "Cannot revert the timemachine buffer")))))) ;; Resolve diff3 conflicts (use-package smerge-mode - :ensure nil + :straight t + :ensure t + :defer t :diminish :pretty-hydra ((:title (pretty-hydra-title "Smerge" 'octicon "nf-oct-diff") - :color pink :quit-key ("q" "C-g")) + :color pink :quit-key ("q" "C-g")) ("Move" (("n" smerge-next "next") ("p" smerge-prev "previous")) @@ -97,7 +106,7 @@ (bury-buffer)) "Save and bury buffer" :exit t)))) :bind (:map smerge-mode-map - ("C-c m" . smerge-mode-hydra/body)) + ("C-c m" . smerge-mode-hydra/body)) :hook ((find-file . (lambda () (save-excursion (goto-char (point-min)) @@ -108,11 +117,17 @@ (smerge-mode-hydra/body)))))) ;; Open github/gitlab/bitbucket page (use-package browse-at-remote + :straight t + :ensure t + :defer t :bind (:map vc-prefix-map - ("B" . browse-at-remote))) + ("B" . browse-at-remote))) -;; Git configuration modes -(use-package git-modes) +;; Git configuration modes (ex: gitignore gitattributes gitconfig) +(use-package git-modes + :straight t + :ensure t + :defer t) (provide 'init-vcs) From fa3447452447d4cc42203b6395017574b67d4ff9 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 16:11:18 +0900 Subject: [PATCH 25/33] emacs : org-mode, rust --- .config/emacs/init.el | 4 +- .config/emacs/lisp/init-org.el | 358 +++++++++++++++++--------------- .config/emacs/lisp/init-rust.el | 17 +- 3 files changed, 209 insertions(+), 170 deletions(-) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index f9dc785..6fb8e1a 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -81,7 +81,7 @@ Otherwise the startup will be very slow. " ;;;; markdown (require 'init-markdown) -;;(require 'init-org) +(require 'init-org) (require 'init-reader) ;; @@ -102,7 +102,7 @@ Otherwise the startup will be very slow. " ;; ;;(require 'init-elisp) ;;(require 'init-c) -;;(require 'init-rust) +(require 'init-rust) ;;(require 'init-python) ;;(require 'init-ruby) ;;(require 'init-shell) diff --git a/.config/emacs/lisp/init-org.el b/.config/emacs/lisp/init-org.el index 1c42952..5e23d91 100644 --- a/.config/emacs/lisp/init-org.el +++ b/.config/emacs/lisp/init-org.el @@ -4,12 +4,12 @@ (require 'init-custom) (use-package org - :ensure nil + :ensure nil ; built-in :custom-face (org-ellipsis ((t (:foreground unspecified)))) :pretty-hydra ;; See `org-structure-template-alist' ((:title (pretty-hydra-title "Org Template" 'sucicon "nf-custom-orgmode" :face 'nerd-icons-green) - :color blue :quit-key ("q" "C-g")) + :color blue :quit-key ("q" "C-g")) ("Basic" (("a" (hot-expand "" . org-tree-slide-mode)) - :hook ((org-tree-slide-play . (lambda () - (text-scale-increase 4) - (org-display-inline-images) - (read-only-mode 1))) - (org-tree-slide-stop . (lambda () - (text-scale-increase 0) - (org-remove-inline-images) - (read-only-mode -1)))) - :init (setq org-tree-slide-header nil - org-tree-slide-slide-in-effect t - org-tree-slide-heading-emphasis nil - org-tree-slide-cursor-init t - org-tree-slide-modeline-display 'outside - org-tree-slide-skip-done nil - org-tree-slide-skip-comments t - org-tree-slide-skip-outline-level 3)) - ;; support drawio - (use-package org-drawio - :commands (org-drawio-add - org-drawio-open) - :custom ((org-drawio-input-dir "./draws") - (org-drawio-output-dir "./images") - (org-drawio-output-page "0") - ;; set to t, if you want to crop the image. - (org-drawio-crop t))) -; attachment ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (use-package org-contrib ;; to use org-screenshot-take - :defer t) - (use-package org-attach-screenshot - :defer t) - (use-package org-download - :defer t) - (use-package ob-latex-as-png - :ensure t) +; useful functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun my/org-remove-link-and-trash-linked-file () "Remove `org-mode' link at point and trash linked file." (interactive) @@ -303,40 +225,119 @@ prepended to the element after the #+HEADER: tag." (user-error "Error pasting the image, make sure you have an image in the clipboard!")))) (defun org-time-stamp-with-time() - "Insert org mode timestamp at point with current date and time" - (interactive) - (org-insert-time-stamp (current-time) t)) -; org-roam ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (use-package org-roam - :demand t ;; ensure org-roam is loaded by default - :custom - (org-roam-directory custom-org-roam-directory) - (org-roam-node-display-template (concat "${title:*} " (propertize "${tags:*}" 'face 'org-tag))) - ;;(org-roam-completion-everywhere t) - :config - (setq org-roam-capture-templates - '(("d" "default" plain "%?" - :target - (file+head - "%<%Y%m%d%H%M%S>-${slug}.org" - "#+title: ${title}\n") - :unnarrowed t) - ("p" "project" plain "* TODO %?" - :target - (file+head+olp - "%<%Y%m%d%H%M%S>-${slug}.org" - "#+title: ${title}\n#+category: ${title}\n#+filetags: Project" - ("Tasks")) - :unnarrowed t))) - (org-roam-db-autosync-mode)) - ;; Org roam ui - (use-package org-roam-ui - :defer t - :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)) + "Insert org mode timestamp at point with current date and time" + (interactive) + (org-insert-time-stamp (current-time) t))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Org mode improvement ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package org-journal + :straight t + :ensure t + :defer t + :config + (setq org-journal-dir (expand-file-name "journal/" org-directory)) + (setq org-journal-file-type 'weekly)) + +(use-package org-modern + :straight t + :ensure t + :defer t + :hook ((org-mode . org-modern-mode) + (org-agenda-finalize . org-modern-agenda)) + :config + (setq org-modern-table nil)) + +(use-package valign + :straight t + :ensure t + :defer t + :hook (org-mode . valign-mode) + :custom + (valign-fancy-bar t)) + + +;; Auto-toggle Org LaTeX fragments +(use-package org-fragtog + :straight t + :ensure t + :defer t + :diminish + :hook (org-mode . org-fragtog-mode)) +;; Make invisible parts of Org elements appear visible. +(use-package org-appear + :straight t + :ensure t + :defer t + :hook (org-mode . org-appear-mode) + :config + (setq org-appear-autoemphasis t + org-appear-autolinks t + org-appear-autoentities t + org-appear-autosubmarkers t)) +;; support drawio +(use-package org-drawio + :straight t + :ensure t + :defer t + :commands (org-drawio-add + org-drawio-open) + :custom ((org-drawio-input-dir "./draws") + (org-drawio-output-dir "./images") + (org-drawio-output-page "0") + ;; set to t, if you want to crop the image. + (org-drawio-crop t))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Org mode attachment ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package org-contrib ;; to use org-screenshot-take + :straight t + :ensure t + :defer t + :defer t) +(use-package org-attach-screenshot + :straight t + :ensure t + :defer t + :defer t) +(use-package org-download + :straight t + :ensure t + :defer t + :defer t) +(use-package ob-latex-as-png + :straight t + :ensure t + :defer t + :ensure t) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Org roam ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package org-roam + :straight t + :ensure t + :defer t + :demand t ;; ensure org-roam is loaded by default + :custom + (org-roam-directory custom-org-roam-directory) + (org-roam-node-display-template (concat "${title:*} " (propertize "${tags:*}" 'face 'org-tag))) + ;;(org-roam-completion-everywhere t) + :config + (setq org-roam-capture-templates + '(("d" "default" plain "%?" + :target + (file+head + "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n") + :unnarrowed t) + ("p" "project" plain "* TODO %?" + :target + (file+head+olp + "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n#+category: ${title}\n#+filetags: Project" + ("Tasks")) + :unnarrowed t))) ;; functions (defun my/org-roam-rg-search () "Search org-roam directory using consult-ripgrep. With live-preview." @@ -365,33 +366,45 @@ prepended to the element after the #+HEADER: tag." (unless org-note-abort (with-current-buffer (org-capture-get :buffer) (add-to-list 'org-agenda-files (buffer-file-name))))) -; Tools ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (use-package ob-async - :config - (setq ob-async-no-async-languages-alist '("ipython"))) - (unless ON-WINDOWS - (use-package org-pdftools - :hook (org-mode . org-pdftools-setup-link))) -; Exporter ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (use-package ox-hugo - :defer t - :after ox) - (setq org-latex-minted-options '(("breaklines" "true") - ("tabsize" "4") - ("autogobble") - ("breakanywhere" "true") - ("bgcolor" "gray!40") - ("frame" "single") - ("numbers" "left"))) - (setq org-latex-listings 'minted - org-latex-packages-alist '(("" "minted")) - org-latex-pdf-process - '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" - "pdflatex -interaction nonstopmode -output-directory %o %f")) - (with-eval-after-load 'ox-latex - (add-to-list 'org-latex-classes - '("article" - "\\documentclass[11pt,a4paper]{article} + + ; database sync + (org-roam-db-autosync-mode)) +;; Org roam ui +(use-package org-roam-ui + :straight t + :ensure t + :defer t + :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 exporter ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package ox-hugo + :straight t + :ensure t + :defer t + :after ox) + +(setq org-latex-minted-options + '(("breaklines" "true") + ("tabsize" "4") + ("autogobble") + ("breakanywhere" "true") + ("bgcolor" "gray!40") + ("frame" "single") + ("numbers" "left"))) +(setq org-latex-listings 'minted + org-latex-packages-alist '(("" "minted")) + org-latex-pdf-process + '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" + "pdflatex -interaction nonstopmode -output-directory %o %f")) +(with-eval-after-load 'ox-latex + (add-to-list 'org-latex-classes + '("article" + "\\documentclass[11pt,a4paper]{article} \\usepackage[left=2.5cm,right=2.5cm,top=3cm,bottom=3cm,a4paper]{geometry} [DEFAULT-PACKAGES] \\usepackage{kotex} @@ -399,13 +412,13 @@ prepended to the element after the #+HEADER: tag." [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 - '("org-plain-latex" - "\\documentclass[a4paper,11pt,titlepage]{memoir} + ("\\section{%s}" . "\\section*{%s}") + ("\\subsection{%s}" . "\\subsection*{%s}") + ("\\subsubsection{%s}" . "\\subsubsection*{%s}") + ("\\paragraph{%s}" . "\\paragraph*{%s}"))) + (add-to-list 'org-latex-classes + '("org-plain-latex" + "\\documentclass[a4paper,11pt,titlepage]{memoir} \\usepackage[left=2.5cm,right=2.5cm,top=3cm,bottom=3cm,a4paper]{geometry} [DEFAULT-PACKAGES] \\usepackage{kotex} @@ -413,16 +426,29 @@ prepended to the element after the #+HEADER: tag." [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}"))))) + ("\\chapter{%s}" . "\\chapter*{%s}") + ("\\section{%s}" . "\\section*{%s}") + ("\\subsection{%s}" . "\\subsection*{%s}") + ("\\subsubsection{%s}" . "\\subsubsection*{%s}") + ("\\paragraph{%s}" . "\\paragraph*{%s}") + ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))) -;; support calendar -(use-package calfw) -(use-package calfw-org - :after calfw) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Org babel related ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package ob-async + :straight t + :ensure t + :config + (setq ob-async-no-async-languages-alist '("ipython"))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Tools ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(unless ON-WINDOWS + (use-package org-pdftools + :straight t + :ensure t + :defer t + :hook (org-mode . org-pdftools-setup-link))) (provide 'init-org) ;;; init-org.el ends here diff --git a/.config/emacs/lisp/init-rust.el b/.config/emacs/lisp/init-rust.el index fe46bde..185f82d 100644 --- a/.config/emacs/lisp/init-rust.el +++ b/.config/emacs/lisp/init-rust.el @@ -32,18 +32,31 @@ ;; Rust (use-package rustic + :straight t + :ensure t + :defer t :init (if ON-LINUX (setq rustic-analyzer-command '("~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rust-analyzer")) (setq rustic-analyzer-command '("~/.rustup/toolchains/stable-x86_64-pc-windows-msvc/bin/rust-analyzer.exe"))) (setq rustic-lsp-client 'eglot)) -(use-package rust-playground) +(use-package rust-playground + :straight t + :ensure t + :defer t) (use-package toml-mode + :straight t + :ensure t :defer t :config (add-to-list 'auto-mode-alist '("/\\(Cargo.lock\\|\\.cargo/config\\)\\'" . toml-mode))) -(provide 'init-rust) +; org-babel integration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package ob-rust + :straight t + :ensure t + :defer t) +(provide 'init-rust) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-rust.el ends here From 4388b5cad5a53e899b82b442c314d9409b9e08b0 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 17:25:57 +0900 Subject: [PATCH 26/33] emacs : move to straight done. --- .config/emacs/init.el | 39 +++++------- .config/emacs/lisp/init-c.el | 6 +- .config/emacs/lisp/init-copilot.el | 7 ++- .config/emacs/lisp/init-ctags.el | 3 + .config/emacs/lisp/init-debug.el | 3 + .config/emacs/lisp/init-dict.el | 45 -------------- .config/emacs/lisp/init-eglot.el | 13 ---- .config/emacs/lisp/init-elisp.el | 13 +++- .config/emacs/lisp/init-extra.el | 10 ++- .config/emacs/lisp/init-flycheck.el | 96 ++++++++++++++++------------- .config/emacs/lisp/init-latex.el | 2 + .config/emacs/lisp/init-org.el | 1 - .config/emacs/lisp/init-prog.el | 84 +++++++++++++------------ .config/emacs/lisp/init-python.el | 14 +++-- .config/emacs/lisp/init-ruby.el | 23 ++++++- .config/emacs/lisp/init-rust.el | 3 +- .config/emacs/lisp/init-shell.el | 7 --- .config/emacs/lisp/init-verilog.el | 5 +- 18 files changed, 185 insertions(+), 189 deletions(-) delete mode 100644 .config/emacs/lisp/init-dict.el delete mode 100644 .config/emacs/lisp/init-eglot.el delete mode 100644 .config/emacs/lisp/init-shell.el diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 6fb8e1a..5a4cf3a 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -84,9 +84,6 @@ Otherwise the startup will be very slow. " (require 'init-org) (require 'init-reader) -;; -;; (require 'init-dict) ;; will be removed - ;; docker (when ON-LINUX (require 'init-docker)) @@ -95,26 +92,24 @@ Otherwise the startup will be very slow. " ;; Programming (require 'init-vcs) -;;(require 'init-flycheck) -;;(require 'init-eglot) -;;(require 'init-ctags) -;;(require 'init-prog) -;; -;;(require 'init-elisp) -;;(require 'init-c) +(require 'init-flycheck) +(require 'init-ctags) +(require 'init-prog) + +(require 'init-elisp) +(require 'init-c) (require 'init-rust) -;;(require 'init-python) -;;(require 'init-ruby) -;;(require 'init-shell) -;; -;;(require 'init-latex) -;;(require 'init-verilog) -;; -;;(require 'init-debug) -;; -;;(require 'init-extra) +(require 'init-python) +(require 'init-ruby) + +(require 'init-latex) +(require 'init-verilog) + +(require 'init-debug) + +(require 'init-extra) (require 'init-chatgpt) -;; -;;(require 'init-copilot) + +(require 'init-copilot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init.el ends here diff --git a/.config/emacs/lisp/init-c.el b/.config/emacs/lisp/init-c.el index 38badb9..1f380fc 100644 --- a/.config/emacs/lisp/init-c.el +++ b/.config/emacs/lisp/init-c.el @@ -39,9 +39,9 @@ ("" . compile)) :init (setq-default c-basic-offset 4)) -(use-package c-ts-mode - :ensure nil - :init (setq c-ts-mode-indent-offset 4)) +;; (use-package c-ts-mode +;; :ensure nil +;; :init (setq c-ts-mode-indent-offset 4)) (provide 'init-c) diff --git a/.config/emacs/lisp/init-copilot.el b/.config/emacs/lisp/init-copilot.el index 74dfabe..34f9c7b 100644 --- a/.config/emacs/lisp/init-copilot.el +++ b/.config/emacs/lisp/init-copilot.el @@ -1,8 +1,9 @@ ;; init-copilot.el -*- lexical-binding: t -*- -(add-to-list 'load-path "~/.config/emacs/copilot.el") -(require 'copilot) -(add-hook 'prog-mode-hook 'copilot-mode) +(use-package copilot + :straight (:host github :repo "copilot-emacs/copilot.el" :files ("*.el")) + :ensure t) + ;; :hook (prog-mode . copilot-mode)) (provide 'init-copilot) ;;; init-copilot.el ends here diff --git a/.config/emacs/lisp/init-ctags.el b/.config/emacs/lisp/init-ctags.el index dd299e2..f78d01a 100644 --- a/.config/emacs/lisp/init-ctags.el +++ b/.config/emacs/lisp/init-ctags.el @@ -5,6 +5,9 @@ ;; Ctags IDE on the True Editor ;; @see https://github.com/universal-ctags/citre#quick-start (use-package citre + :straight t + :ensure t + :defer t :diminish :commands citre-jump-back :functions xref-go-back diff --git a/.config/emacs/lisp/init-debug.el b/.config/emacs/lisp/init-debug.el index d6e39ba..9f8f912 100644 --- a/.config/emacs/lisp/init-debug.el +++ b/.config/emacs/lisp/init-debug.el @@ -28,6 +28,9 @@ ;; (dap-auto-configure-mode +1))) (use-package dap-mode + :straight t + :ensure t + :defer t :config ;; Enabling only some features (setq dap-auto-configure-features '(sessions locals controls tooltip)) diff --git a/.config/emacs/lisp/init-dict.el b/.config/emacs/lisp/init-dict.el deleted file mode 100644 index eb758af..0000000 --- a/.config/emacs/lisp/init-dict.el +++ /dev/null @@ -1,45 +0,0 @@ -;;; init-dict.el -*- lexical-binding: t -*- -(require 'init-const) -(use-package go-translate - :init (setq gts-translate-list '(("en" "ko") ("ko" "en"))) - :config - ;; config the default translator, it will be used by command gts-do-translate - (setq gts-default-translator - (gts-translator - :picker ; used to pick source text, from, to. choose one. - - ;;(gts-noprompt-picker) - ;;(gts-noprompt-picker :texter (gts-whole-buffer-texter)) - (gts-prompt-picker) - ;;(gts-prompt-picker :single t) - ;;(gts-prompt-picker :texter (gts-current-or-selection-texter) :single t) - - :engines ; engines, one or more. Provide a parser to give different output. - - (list - (gts-bing-engine) - (gts-google-engine) - ;;(gts-google-rpc-engine) - ;;(gts-deepl-engine :auth-key [YOUR_AUTH_KEY] :pro nil) - ;;(gts-google-engine :parser (gts-google-summary-parser)) - ;;(gts-google-engine :parser (gts-google-parser)) - ;;(gts-google-rpc-engine :parser (gts-google-rpc-summary-parser) :url "https://translate.google.com") - ;;(gts-google-rpc-engine :parser (gts-google-rpc-parser) :url "https://translate.google.com") - ) - - :render ; render, only one, used to consumer the output result. Install posframe yourself when use gts-posframe-xxx - - (gts-buffer-render) - ;;(gts-posframe-pop-render) - ;;(gts-posframe-pop-render :backcolor "#333333" :forecolor "#ffffff") - ;;(gts-posframe-pin-render) - ;;(gts-posframe-pin-render :position (cons 1200 20)) - ;;(gts-posframe-pin-render :width 80 :height 25 :position (cons 1000 20) :forecolor "#ffffff" :backcolor "#111111") - ;;(gts-kill-ring-render) - - :splitter ; optional, used to split text into several parts, and the translation result will be a list. - - (gts-paragraph-splitter)))) - -(provide 'init-dict) -;;; init-dict.el ends here diff --git a/.config/emacs/lisp/init-eglot.el b/.config/emacs/lisp/init-eglot.el deleted file mode 100644 index e979853..0000000 --- a/.config/emacs/lisp/init-eglot.el +++ /dev/null @@ -1,13 +0,0 @@ -;;; init-eglot.el -*- lexical-binding: t -*- -;;(use-package eglot -;; :hook -;; ((prog-mode . (lambda () -;; (unless (derived-mode-p -;; 'emacs-lisp-mode -;; 'lisp-mode -;; 'makefile-mode -;; 'snippet-mode) -;; (eglot-ensure)))) -;; ((markdown-mode yaml-mode yaml-ts-mode) . eglot-ensure))) -(provide 'init-eglot) -;;; init-eglot.el ends here diff --git a/.config/emacs/lisp/init-elisp.el b/.config/emacs/lisp/init-elisp.el index 638a4b1..30e1911 100644 --- a/.config/emacs/lisp/init-elisp.el +++ b/.config/emacs/lisp/init-elisp.el @@ -18,9 +18,6 @@ (when (boundp 'elisp-flymake-byte-compile-load-path) (add-to-list 'elisp-flymake-byte-compile-load-path load-path)) - ;; Syntax highlighting of known Elisp symbols - (use-package highlight-defined - :hook ((emacs-lisp-mode inferior-emacs-lisp-mode) . highlight-defined-mode)) (with-no-warnings ;; Align indent keywords @@ -183,6 +180,13 @@ Lisp function does not specify a special indentation." (revert-buffer nil t))))))) (bind-key "r" #'remove-hook-at-point help-mode-map))) +;; Syntax highlighting of known Elisp symbols +(use-package highlight-defined + :straight t + :ensure t + :defer t + :hook ((emacs-lisp-mode inferior-emacs-lisp-mode) . highlight-defined-mode)) + ;; Show function arglist or variable docstring ;; `global-eldoc-mode' is enabled by default. (use-package eldoc @@ -191,6 +195,9 @@ Lisp function does not specify a special indentation." ;; A better *Help* buffer (use-package helpful + :straight t + :ensure t + :defer t :bind (([remap describe-function] . helpful-callable) ([remap describe-command] . helpful-command) ([remap describe-variable] . helpful-variable) diff --git a/.config/emacs/lisp/init-extra.el b/.config/emacs/lisp/init-extra.el index 91f3775..8663c0c 100644 --- a/.config/emacs/lisp/init-extra.el +++ b/.config/emacs/lisp/init-extra.el @@ -1,6 +1,12 @@ ;; init-extra.el -*- lexical-binding: t -*- -(use-package gnuplot) -(use-package graphviz-dot-mode) +(use-package gnuplot + :straight t + :ensure t + :defer t) +(use-package graphviz-dot-mode + :straight t + :ensure t + :defer t) (provide 'init-extra) ;;; init-extra.el ends here diff --git a/.config/emacs/lisp/init-flycheck.el b/.config/emacs/lisp/init-flycheck.el index 3859051..e5c54b7 100644 --- a/.config/emacs/lisp/init-flycheck.el +++ b/.config/emacs/lisp/init-flycheck.el @@ -3,6 +3,9 @@ (require 'init-funcs) (use-package flycheck + :straight t + :ensure t + :defer t :diminish :autoload flycheck-redefine-standard-error-levels :hook (after-init . global-flycheck-mode) @@ -20,51 +23,56 @@ (when (fboundp 'define-fringe-bitmap) (define-fringe-bitmap 'flycheck-fringe-bitmap-arrow [16 48 112 240 112 48 16] nil nil 'center)) - (flycheck-redefine-standard-error-levels "⏴" 'flycheck-fringe-bitmap-arrow) - - ;; Display Flycheck errors - (if (childframe-workable-p) - (use-package flycheck-posframe - :custom-face - (flycheck-posframe-face ((t (:foreground ,(face-foreground 'success))))) - (flycheck-posframe-info-face ((t (:foreground ,(face-foreground 'success))))) - (flycheck-posframe-background-face ((t (:inherit tooltip)))) - (flycheck-posframe-border-face ((t (:inherit posframe-border)))) - :hook (flycheck-mode . flycheck-posframe-mode) - :init - (setq flycheck-posframe-border-width 1) - (add-hook 'flycheck-posframe-inhibit-functions - (lambda (&rest _) (bound-and-true-p company-backend))) - :config - (with-no-warnings - ;; FIXME: Prettify the child frame. - ;; @see https://github.com/alexmurray/flycheck-posframe/issues/28 - (defun my-flycheck-posframe-show-posframe (errors) - "Display ERRORS, using posframe.el library." - (posframe-hide flycheck-posframe-buffer) - (when (and errors - (not (run-hook-with-args-until-success 'flycheck-posframe-inhibit-functions))) - (let ((poshandler (intern (format "posframe-poshandler-%s" flycheck-posframe-position)))) - (unless (functionp poshandler) - (setq poshandler nil)) - (flycheck-posframe-check-position) - (posframe-show - flycheck-posframe-buffer - :string (flycheck-posframe-format-errors errors) - :background-color (face-background 'flycheck-posframe-background-face nil t) - :position (point) - :left-fringe 4 - :right-fringe 4 - :max-width (round (* (frame-width) 0.62)) - :max-height (round (* (frame-height) 0.62)) - :internal-border-width flycheck-posframe-border-width - :internal-border-color (face-background 'flycheck-posframe-border-face nil t) - :poshandler poshandler - :hidehandler #'flycheck-posframe-hidehandler)))) - (advice-add #'flycheck-posframe-show-posframe :override #'my-flycheck-posframe-show-posframe))) - (use-package flycheck-popup-tip - :hook (flycheck-mode . flycheck-popup-tip-mode)))) + (flycheck-redefine-standard-error-levels "⏴" 'flycheck-fringe-bitmap-arrow)) +;; Display Flycheck errors +(if (childframe-workable-p) + (use-package flycheck-posframe + :straight t + :ensure t + :defer t + :custom-face + (flycheck-posframe-face ((t (:foreground ,(face-foreground 'success))))) + (flycheck-posframe-info-face ((t (:foreground ,(face-foreground 'success))))) + (flycheck-posframe-background-face ((t (:inherit tooltip)))) + (flycheck-posframe-border-face ((t (:inherit posframe-border)))) + :hook (flycheck-mode . flycheck-posframe-mode) + :init + (setq flycheck-posframe-border-width 1) + (add-hook 'flycheck-posframe-inhibit-functions + (lambda (&rest _) (bound-and-true-p company-backend))) + :config + (with-no-warnings + ;; FIXME: Prettify the child frame. + ;; @see https://github.com/alexmurray/flycheck-posframe/issues/28 + (defun my-flycheck-posframe-show-posframe (errors) + "Display ERRORS, using posframe.el library." + (posframe-hide flycheck-posframe-buffer) + (when (and errors + (not (run-hook-with-args-until-success 'flycheck-posframe-inhibit-functions))) + (let ((poshandler (intern (format "posframe-poshandler-%s" flycheck-posframe-position)))) + (unless (functionp poshandler) + (setq poshandler nil)) + (flycheck-posframe-check-position) + (posframe-show + flycheck-posframe-buffer + :string (flycheck-posframe-format-errors errors) + :background-color (face-background 'flycheck-posframe-background-face nil t) + :position (point) + :left-fringe 4 + :right-fringe 4 + :max-width (round (* (frame-width) 0.62)) + :max-height (round (* (frame-height) 0.62)) + :internal-border-width flycheck-posframe-border-width + :internal-border-color (face-background 'flycheck-posframe-border-face nil t) + :poshandler poshandler + :hidehandler #'flycheck-posframe-hidehandler)))) + (advice-add #'flycheck-posframe-show-posframe :override #'my-flycheck-posframe-show-posframe))) + (use-package flycheck-popup-tip + :straight t + :ensure t + :defer t + :hook (flycheck-mode . flycheck-popup-tip-mode))) (provide 'init-flycheck) ;;; init-flycheck.el ends here diff --git a/.config/emacs/lisp/init-latex.el b/.config/emacs/lisp/init-latex.el index 04dec4f..4ae5615 100644 --- a/.config/emacs/lisp/init-latex.el +++ b/.config/emacs/lisp/init-latex.el @@ -1,5 +1,7 @@ ;;; init-latex.el -*- lexical-binding: t -*- (use-package auctex + :straight t + :ensure t :defer t :custom (TeX-auto-save t) diff --git a/.config/emacs/lisp/init-org.el b/.config/emacs/lisp/init-org.el index 5e23d91..678252b 100644 --- a/.config/emacs/lisp/init-org.el +++ b/.config/emacs/lisp/init-org.el @@ -155,7 +155,6 @@ prepended to the element after the #+HEADER: tag." '((emacs-lisp . t) (python . t) (ruby . t) - (rust . t) (C . t) (shell . t)) "Alist of org ob languages.") diff --git a/.config/emacs/lisp/init-prog.el b/.config/emacs/lisp/init-prog.el index a8d7b60..a0d3b28 100644 --- a/.config/emacs/lisp/init-prog.el +++ b/.config/emacs/lisp/init-prog.el @@ -10,7 +10,7 @@ ;; Search tool (use-package grep - :ensure nil + :ensure nil ; built-in :autoload grep-apply-setting :config (cond @@ -35,7 +35,7 @@ ;;;; Cross-referencing commands (use-package xref - :ensure nil + :ensure nil ; built-in :config (with-no-warnings ;; Use faster search tool @@ -53,6 +53,9 @@ ;;;; Jump to definition (use-package dumb-jump + :straight t + :ensure t + :defer t :pretty-hydra ((:title (pretty-hydra-title "Dump Jump" 'faicon "nf-fa-anchor") :color blue :quit-key ("q" "C-g")) @@ -77,17 +80,26 @@ dumb-jump-selector 'ivy)) ;; Code styles -(use-package editorconfig - :diminish - :hook (after-init . editorconfig-mode)) +;; (use-package editorconfig +;; :straight t +;; :ensure t +;; :defer t +;; :diminish +;; :hook (after-init . editorconfig-mode)) ;; Run commands quickly (use-package quickrun + :straight t + :ensure t + :defer t :bind (("C-" . quickrun) ("C-c X" . quickrun))) ;; Browse devdocs.io documents using EWW (use-package devdocs + :straight t + :ensure t + :defer t :autoload (devdocs--installed-docs devdocs--available-docs) :bind (:map prog-mode-map ("M-" . devdocs-dwim) @@ -140,45 +152,41 @@ Install the doc if it's not installed." (devdocs-lookup nil (thing-at-point 'symbol t)))) ;;;; Misc. programming modes -(use-package csv-mode) -(use-package csharp-mode) -;;(use-package cask-mode) -(use-package cmake-mode) -;;(use-package dart-mode) -;;(use-package groovy-mode) -;;(use-package julia-mode) -(use-package lua-mode) -;;(use-package mermaid-mode) -;;(use-package plantuml-mode) -(use-package rmsbolt) ; A compiler output viewer -;;(use-package scala-mode) -;;(use-package swift-mode) -;;(use-package v-mode) -;;(use-package vimrc-mode) +(use-package csv-mode + :straight t + :ensure t + :defer t) +(use-package csharp-mode + :straight t + :ensure t + :defer t) +(use-package cmake-mode + :straight t + :ensure t + :defer t) +(use-package lua-mode + :straight t + :ensure t + :defer t) -;;(use-package protobuf-mode -;; :hook (protobuf-mode . (lambda () -;; (setq imenu-generic-expression -;; '((nil "^[[:space:]]*\\(message\\|service\\|enum\\)[[:space:]]+\\([[:alnum:]]+\\)" 2)))))) - -;;(use-package nxml-mode -;; :ensure nil -;; :mode (("\\.xaml$" . xml-mode))) - -;; Batch Mode eXtras +;; Windows Batch Mode eXtras (use-package bmx-mode + :straight t + :ensure t + :defer t :after company :diminish :hook (after-init . bmx-mode-setup-defaults)) -;; Fish shell -(use-package fish-mode - :hook (fish-mode . (lambda () - (add-hook 'before-save-hook - #'fish_indent-before-save)))) - -(use-package pkgbuild-mode) -(use-package systemd) +; arch PKGBUILD +(use-package pkgbuild-mode + :straight t + :ensure t + :defer t) +(use-package systemd + :straight t + :ensure t + :defer t) (provide 'init-prog) diff --git a/.config/emacs/lisp/init-python.el b/.config/emacs/lisp/init-python.el index e7cdffc..90fa762 100644 --- a/.config/emacs/lisp/init-python.el +++ b/.config/emacs/lisp/init-python.el @@ -49,13 +49,19 @@ ;; Env vars (with-eval-after-load 'exec-path-from-shell - (exec-path-from-shell-copy-env "PYTHONPATH")) + (exec-path-from-shell-copy-env "PYTHONPATH"))) - ;; Live Coding in Python - (use-package live-py-mode)) +;; Live Coding in Python +(use-package live-py-mode + :straight t + :ensure t + :defer t) (when ON-LINUX - (use-package jupyter)) + (use-package jupyter + :straight t + :ensure t + :defer t)) (provide 'init-python) diff --git a/.config/emacs/lisp/init-ruby.el b/.config/emacs/lisp/init-ruby.el index 5e29df3..ef8f179 100644 --- a/.config/emacs/lisp/init-ruby.el +++ b/.config/emacs/lisp/init-ruby.el @@ -32,33 +32,54 @@ ;; Integrate rbenv (use-package rbenv + :straight t + :ensure t + :defer t :hook (after-init . global-rbenv-mode) :init (setq rbenv-show-active-ruby-in-modeline nil)) ;; YAML mode -(use-package yaml-mode) +(use-package yaml-mode + :straight t + :ensure t + :defer t) ;; Run a Ruby process in a buffer (use-package inf-ruby + :straight t + :ensure t + :defer t :hook ((ruby-mode . inf-ruby-minor-mode) (compilation-filter . inf-ruby-auto-enter))) ;; Ruby YARD comments (use-package yard-mode + :straight t + :ensure t + :defer t :diminish :hook (ruby-mode . yard-mode)) ;; Ruby refactoring helpers (use-package ruby-refactor + :straight t + :ensure t + :defer t :diminish :hook (ruby-mode . ruby-refactor-mode-launch)) ;; Yet Another RI interface for Emacs (use-package yari + :straight t + :ensure t + :defer t :bind (:map ruby-mode-map ([f1] . yari))) ;; RSpec (use-package rspec-mode + :straight t + :ensure t + :defer t :diminish :autoload rspec-install-snippets :hook (dired-mode . rspec-dired-mode) diff --git a/.config/emacs/lisp/init-rust.el b/.config/emacs/lisp/init-rust.el index 185f82d..3b05a41 100644 --- a/.config/emacs/lisp/init-rust.el +++ b/.config/emacs/lisp/init-rust.el @@ -54,8 +54,7 @@ ; org-babel integration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (use-package ob-rust :straight t - :ensure t - :defer t) + :ensure t) (provide 'init-rust) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/.config/emacs/lisp/init-shell.el b/.config/emacs/lisp/init-shell.el deleted file mode 100644 index d6d08e3..0000000 --- a/.config/emacs/lisp/init-shell.el +++ /dev/null @@ -1,7 +0,0 @@ -;;; init-eshell.el -*- lexical-binding: t -*- -;; Emacs command shell - -(use-package nushell-mode) - -(provide 'init-shell) -;;; init-eshell.el ends here diff --git a/.config/emacs/lisp/init-verilog.el b/.config/emacs/lisp/init-verilog.el index f80b26f..34fc61b 100644 --- a/.config/emacs/lisp/init-verilog.el +++ b/.config/emacs/lisp/init-verilog.el @@ -1,7 +1,7 @@ ;; init-verilog.el -*- lexical-binding: t -*- (use-package verilog-mode - :ensure nil + :ensure nil ; built-in :init (setq verilog-indent-level 4) (setq verilog-indent-level-module 0) @@ -13,6 +13,9 @@ (setq verilog-case-indent 4) (setq verilog-auto-newline nil)) (use-package verilog-ext + :straight t + :ensure t + :defer t :hook ((verilog-mode . verilog-ext-mode)) :init ;; Can also be set through `M-x RET customize-group RET verilog-ext': From 8e2da70b0421f0251f9a2abfebf27b763fe7d166 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 17:29:07 +0900 Subject: [PATCH 27/33] emacs : readme add. --- .config/emacs/.gitignore | 1 + .config/emacs/readme.org | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 .config/emacs/readme.org diff --git a/.config/emacs/.gitignore b/.config/emacs/.gitignore index 19b7bb5..824f07b 100644 --- a/.config/emacs/.gitignore +++ b/.config/emacs/.gitignore @@ -1,5 +1,6 @@ * */ +!readme.org !early-init.el !init.el !custom-default.el diff --git a/.config/emacs/readme.org b/.config/emacs/readme.org new file mode 100644 index 0000000..b081c7b --- /dev/null +++ b/.config/emacs/readme.org @@ -0,0 +1,12 @@ +* Need program list +** DIRED +*** DIRED-RSYNC +RSYNC +*** DIRED-FD +FD ++ Ubuntu : fd-find +** Org +*** OB-RUST +rust script ++ Cargo install rust-script + From 30107eeb1e5765c999f5a82a98ba03a11afa1fb7 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 18:08:39 +0900 Subject: [PATCH 28/33] emacs : rustic to rust-mode --- .config/emacs/lisp/init-rust.el | 51 +++++++++------------------------ 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/.config/emacs/lisp/init-rust.el b/.config/emacs/lisp/init-rust.el index 3b05a41..0204915 100644 --- a/.config/emacs/lisp/init-rust.el +++ b/.config/emacs/lisp/init-rust.el @@ -1,49 +1,24 @@ ;; init-rust.el --- Initialize Rust configurations. -*- lexical-binding: t -*- -;; Copyright (C) 2019-2022 Vincent Zhang - -;; Author: Vincent Zhang -;; URL: https://github.com/seagle0128/.emacs.d - -;; This file is not part of GNU Emacs. -;; -;; 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, 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; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth -;; Floor, Boston, MA 02110-1301, USA. -;; - -;;; Commentary: -;; -;; Rust configurations. -;; - -;;; Code: - ;; Rust -(use-package rustic + +(use-package rust-mode :straight t :ensure t :defer t - :init - (if ON-LINUX - (setq rustic-analyzer-command '("~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rust-analyzer")) - (setq rustic-analyzer-command '("~/.rustup/toolchains/stable-x86_64-pc-windows-msvc/bin/rust-analyzer.exe"))) - (setq rustic-lsp-client 'eglot)) -(use-package rust-playground + :config + (flycheck-rust-setup)) +(use-package cargo :straight t :ensure t - :defer t) + :defer t + :after rust-mode) +(use-package flycheck-rust + :straight t + :ensure t + :after (flycheck rust-mode) + :config + (add-hook 'flycheck-mode-hook #'flycheck-rust-setup)) (use-package toml-mode :straight t :ensure t From d3fcca34319f5563a26bdfd8a38f900813d8b828 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 22:48:19 +0900 Subject: [PATCH 29/33] vscode : export import scripts --- scripts/vscode-settings-export.sh | 11 +++++++++++ scripts/vscode-settings-import.sh | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100755 scripts/vscode-settings-export.sh create mode 100755 scripts/vscode-settings-import.sh diff --git a/scripts/vscode-settings-export.sh b/scripts/vscode-settings-export.sh new file mode 100755 index 0000000..3ad9e1d --- /dev/null +++ b/scripts/vscode-settings-export.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# export settings +# cp ~/.config/Code/User/settings.json ~/.dotfiles/scripts/vscode/ +# export keybindings +# cp ~/.config/Code/User/keybindings.json ~/.dotfiles/scripts/vscode/ + + +# export extensions +code --list-extensions > ~/.dotfiles/.config/Code/User/extensions.txt + diff --git a/scripts/vscode-settings-import.sh b/scripts/vscode-settings-import.sh new file mode 100755 index 0000000..48c744a --- /dev/null +++ b/scripts/vscode-settings-import.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# import extensions +while read extension; do + #code --install-extension "$extension" + echo $extension +done < ~/.dotfiles/scripts/vscode/extensions.txt From 84fce0014694d2c2abcef64d4bb5e5a254762f6f Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 4 Sep 2024 22:50:57 +0900 Subject: [PATCH 30/33] vscode : configuration --- .config/Code/User/extensions.txt | 5 +++++ .config/Code/User/keybindings.json | 3 +++ .config/Code/User/settings.json | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 .config/Code/User/extensions.txt create mode 100644 .config/Code/User/keybindings.json create mode 100644 .config/Code/User/settings.json diff --git a/.config/Code/User/extensions.txt b/.config/Code/User/extensions.txt new file mode 100644 index 0000000..261df18 --- /dev/null +++ b/.config/Code/User/extensions.txt @@ -0,0 +1,5 @@ +github.copilot +github.copilot-chat +mshr-h.veriloghdl +nonylene.dark-molokai-theme +vscodevim.vim diff --git a/.config/Code/User/keybindings.json b/.config/Code/User/keybindings.json new file mode 100644 index 0000000..0db3279 --- /dev/null +++ b/.config/Code/User/keybindings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/.config/Code/User/settings.json b/.config/Code/User/settings.json new file mode 100644 index 0000000..1f7d44e --- /dev/null +++ b/.config/Code/User/settings.json @@ -0,0 +1,3 @@ +{ + "workbench.colorTheme": "Dark (Molokai)" +} From 5415fbc30f2a3dba3a7eac5663382254b3c669b6 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Thu, 5 Sep 2024 14:21:01 +0900 Subject: [PATCH 31/33] emacs : chatgpt -> gptel --- .config/emacs/lisp/init-chatgpt.el | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.config/emacs/lisp/init-chatgpt.el b/.config/emacs/lisp/init-chatgpt.el index 9ca964d..fb75b77 100644 --- a/.config/emacs/lisp/init-chatgpt.el +++ b/.config/emacs/lisp/init-chatgpt.el @@ -1,16 +1,12 @@ ;; init-chatgpt.el -*- lexical-binding: t -*- -(use-package chatgpt-shell +(use-package gptel :straight t :ensure t :defer t :config - (setq chatgpt-shell-openai-key custom-chatgpt-my-key)) -(use-package dall-e-shell - :straight t - :ensure t - :defer t - :config - (setq dall-e-shell-openai-key custom-chatgpt-my-key)) + (setq gptel-model "gpt-4o-mini") + (setq gptel-api-key custom-chatgpt-my-key)) + (provide 'init-chatgpt) ;;; init-chatgpt.el ends here From a5096ef3a1e504e20e81293fa4b198955b94d5ba Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Thu, 5 Sep 2024 14:21:15 +0900 Subject: [PATCH 32/33] emacs : org-modern keywords color settings --- .config/emacs/lisp/init-org.el | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.config/emacs/lisp/init-org.el b/.config/emacs/lisp/init-org.el index 678252b..53d0a9d 100644 --- a/.config/emacs/lisp/init-org.el +++ b/.config/emacs/lisp/init-org.el @@ -246,7 +246,16 @@ prepended to the element after the #+HEADER: tag." :hook ((org-mode . org-modern-mode) (org-agenda-finalize . org-modern-agenda)) :config - (setq org-modern-table nil)) + (setq org-modern-table nil) + (setq org-modern-todo-faces + (quote (("TODO" :background "#E6DA73" :foreground "black") + ("PROJ" :background "#50B7D9" :foreground "black") + ("STRT" :background "#A1DC2D" :foreground "black") + ("WAIT" :background "#9E54FD" :foreground "black") + ("HOLD" :background "#9E54FD" :foreground "black") + ("IDEA" :background "#FF7F00" :foreground "black") + ("DONE" :background "#C7C7C7" :foreground "black") + ("KILL" :background "#C7C7C7" :foreground "black"))))) (use-package valign :straight t From 4199b6571f37e03f62af85d39b01e05cd9c2825b Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Thu, 5 Sep 2024 14:25:16 +0900 Subject: [PATCH 33/33] emacs : org-modern foreground color to gray --- .config/emacs/lisp/init-org.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.config/emacs/lisp/init-org.el b/.config/emacs/lisp/init-org.el index 53d0a9d..c88d957 100644 --- a/.config/emacs/lisp/init-org.el +++ b/.config/emacs/lisp/init-org.el @@ -248,14 +248,14 @@ prepended to the element after the #+HEADER: tag." :config (setq org-modern-table nil) (setq org-modern-todo-faces - (quote (("TODO" :background "#E6DA73" :foreground "black") - ("PROJ" :background "#50B7D9" :foreground "black") - ("STRT" :background "#A1DC2D" :foreground "black") - ("WAIT" :background "#9E54FD" :foreground "black") - ("HOLD" :background "#9E54FD" :foreground "black") - ("IDEA" :background "#FF7F00" :foreground "black") - ("DONE" :background "#C7C7C7" :foreground "black") - ("KILL" :background "#C7C7C7" :foreground "black"))))) + (quote (("TODO" :background "#E6DA73" :foreground "#666666") + ("PROJ" :background "#50B7D9" :foreground "#666666") + ("STRT" :background "#A1DC2D" :foreground "#666666") + ("WAIT" :background "#9E54FD" :foreground "#666666") + ("HOLD" :background "#9E54FD" :foreground "#666666") + ("IDEA" :background "#FF7F00" :foreground "#666666") + ("DONE" :background "#C7C7C7" :foreground "#666666") + ("KILL" :background "#C7C7C7" :foreground "#666666"))))) (use-package valign :straight t