diff --git a/common/agenda-view.el b/common/agenda-view.el new file mode 100644 index 0000000..cf8adaa --- /dev/null +++ b/common/agenda-view.el @@ -0,0 +1,3 @@ + +(setq org-directory "~/OrgFiles/") +(setq org-agenda-files (list (concat org-directory "tasks/"))) diff --git a/common/vimrc b/common/vimrc index 6402a0a..d4234d7 100644 --- a/common/vimrc +++ b/common/vimrc @@ -61,3 +61,8 @@ set directory=$XDG_STATE_HOME/vim/swap set undodir=$XDG_STATE_HOME/vim/undo set viewdir=$XDG_STATE_HOME/vim/view " set shada+=n$XDG_STATE_HOME/vim/shada +" Leader +let mapleader = "\" +nnoremap :FZF +" Misc +syntax on diff --git a/tools/KMonad/kmonad.kbd b/tools/KMonad/kmonad.kbd index 0e7c9cd..78921c0 100644 --- a/tools/KMonad/kmonad.kbd +++ b/tools/KMonad/kmonad.kbd @@ -1,4 +1,3 @@ -;; vim:ft=kmonad ;; Linux kmonad.kbd (defcfg diff --git a/tools/bash/bash_aliases b/tools/bash/bash_aliases index 3be32d3..eb8956b 100644 --- a/tools/bash/bash_aliases +++ b/tools/bash/bash_aliases @@ -3,20 +3,20 @@ # ~/.bash_aliases # or in if antidots and wheel # ~/.config/bash/bash_aliases -if command -v zoxide > /dev/null ; then +if command -v zoxide >/dev/null; then eval "$(zoxide init bash)" -# Relative navigation # + # Relative navigation # alias ..="z .." alias ...="z ../.." alias ....="z ../../.." alias .....="z ../../../.." alias ......="z ../../../../.." -# Use `-` to jump to the previous directory -# Oh-My-Zsh defines a similar one - -(){ + # Use `-` to jump to the previous directory + # Oh-My-Zsh defines a similar one + -() { z - } - zls(){ + zls() { cd $1 && ls } else @@ -30,7 +30,6 @@ else } fi - alias ni=touch alias cls=clear alias ii=open @@ -45,7 +44,7 @@ alias sn="sudo nvim -u ~/.config/nvim/init.lua" # Dev # alias gpp='g++ -std=c++2b' # Set the default C++ standard to C++20 -alias gcc='gcc -std=c99' # Set the default C standard to C99 +alias gcc='gcc -std=c99' # Set the default C standard to C99 alias cl='clang -std=c99' alias clpp='clang++ -std=c++2b' alias python=python3 # Set the default Python version to Python 3 @@ -54,9 +53,10 @@ alias ipy=ipython alias g=lazygit +alias doomd="emacsclient -t ~/.config/doom/" # lsd - modern ls -if command -v lsd > /dev/null; then +if command -v lsd >/dev/null; then alias ls='lsd' alias l='lsd -lah' alias ll='lsd -l' @@ -68,46 +68,44 @@ else alias ll='ls -l' fi - # Functions # mkcd() { - mkdir -p $1 && cd $1 + mkdir -p $1 && cd $1 } -cdls(){ - cd $1 && ls +cdls() { + cd $1 && ls } -tc(){ - touch $1 && code $1 +tc() { + touch $1 && code $1 } -tv(){ - touch $1 && nvim $1 +tv() { + touch $1 && nvim $1 } -mt(){ +mt() { mkdir -p $(dirname $1) && touch $1 } -mtv(){ +mtv() { mkdir -p $(dirname $1) && touch $1 && nvim $1 } - alias update="source $DOTFILES/scripts/update.zsh" -if command -v pacman > /dev/null; then +if command -v pacman >/dev/null; then alias pac="sudo pacman" alias paci="sudo pacman -S" alias pacr="sudo pacman -R" alias pacu="sudo pacman -Syu" alias pacl="pacman -Q" - if command -v paru > /dev/null; then + if command -v paru >/dev/null; then alias pacs="paru -Ss" - elif command -v yay > /dev/null; then + elif command -v yay >/dev/null; then alias pacs="yay -Ss" else alias pacs="pacman -Ss" fi fi -if command -v apt > /dev/null; then +if command -v apt >/dev/null; then alias apt="sudo apt" alias apti="sudo apt install" alias aptr="sudo apt remove" @@ -116,7 +114,7 @@ if command -v apt > /dev/null; then alias aptl="apt list --installed" fi -if command -v brew > /dev/null; then +if command -v brew >/dev/null; then alias brewi="brew install" alias brewr="brew uninstall" alias brewu="brew update && brew upgrade" @@ -124,8 +122,6 @@ if command -v brew > /dev/null; then alias brewl="brew list" fi - - # TODO: Does not work if [ "$TERM" = "xterm-ghostty" ] || [ "$TERM" = "xterm-kitty" ]; then alias icat="kitten icat" diff --git a/tools/doom/config.el b/tools/doom/config.el index 43aeab4..7770251 100644 --- a/tools/doom/config.el +++ b/tools/doom/config.el @@ -121,3 +121,6 @@ ) (load! "calendar.el") + + +(load! "telega.el") diff --git a/tools/doom/org.el b/tools/doom/org.el index 7849347..10f75b4 100644 --- a/tools/doom/org.el +++ b/tools/doom/org.el @@ -72,12 +72,13 @@ ) ) +;;; org-agenda + (after! org-agenda ;; (setq org-agenda-files (directory-files-recursively "~/OrgFiles/tasks/" "\\.org$")) (setq org-agenda-files (list (concat org-directory "tasks/"))) ) -(map! :leader :desc "Org Agenda" "A" #'org-agenda) (map! :after org-agenda :map evil-org-agenda-mode-map @@ -87,8 +88,16 @@ :m "ge" #'org-agenda-previous-item :m "N" #'org-agenda-priority-up :m "E" #'org-agenda-priority-down - :m "i" #'evil-forward-char) + :m "i" #'evil-forward-char + :leader :desc "Org Agenda" "A" #'org-agenda) +;; org-agenda-clockreport + +(setq org-agenda-clockreport-parameter-plist '(:link t :maxlevel 3 :fileskip0 t :compact t :narrow 80)) + +;;; org-clock + +;; org-pomodoro (after! org-pomodoro (setq org-pomodoro-format "🍅~%s") @@ -96,9 +105,18 @@ (setq org-pomodoro-long-break-format "猛摸~%s") ) -;; Org-Babel + +;;; org-babel (if (bound-and-true-p ISMAC) (setq org-babel-C-compiler "clang")) (load! "+pomodoro-telegram.el") + +;;; org-export + +;; icalendar + +(setq org-icalendar-use-scheduled '(event-if-todo event-if-not-todo)) +(setq org-icalendar-use-deadline '(event-if-todo event-if-not-todo)) +(setq org-icalendar-combined-agenda-file "~/Dropbox/org.ics") diff --git a/tools/doom/packages.el b/tools/doom/packages.el index 8a85b34..d9073dd 100644 --- a/tools/doom/packages.el +++ b/tools/doom/packages.el @@ -55,3 +55,7 @@ (package! rime) (package! ox-typst) (package! cal-china-x) + +(package! telega :recipe (:files (:defaults "contrib/*.el" "etc" "server" "Makefile"))) + +(package! org-super-agenda) diff --git a/tools/doom/telega.el b/tools/doom/telega.el new file mode 100644 index 0000000..82a18cc --- /dev/null +++ b/tools/doom/telega.el @@ -0,0 +1,72 @@ +;; -*- lexical-binding: t; -*- +;; telegram client for emacs +(use-package! telega + :init + (setq telega-server-libs-prefix "/usr") + (setq telega-directory (expand-file-name "~/.local/share/telega")) + + + (prefix-key global-map (kbd "C-c t") telega-prefix-map) + (unless (display-graphic-p) (setq telega-use-images nil)) + (when (modulep! :editor evil) + (cl-pushnew 'telega +evil-collection-disabled-list :test #'equal) + (setq evil-collection-mode-list (remove 'telega evil-collection-mode-list)) + (set-evil-initial-state! '(telega-root-mode telega-chat-mode) 'emacs)) + + :hook + (telega-load . telega-mode-line-mode) + (telega-load . global-telega-url-shorten-mode) + (telega-load . global-telega-mnz-mode) + (telega-load . telega-autoplay-mode) + (telega-load . telega-transient-mode) + (telega-load . telega-adblock-mode) + (telega-chat-mode . (lambda () + (setq-local visual-fill-column-extra-text-width + '(0 . 2)))) + + :config + (add-hook 'telega-msg-ignore-predicates + (telega-match-gen-predicate 'msg '(sender is-blocked))) + (setq telega-chat-show-deleted-messages-for '(me-is-owner OR-ADMIN) + ;; telega-use-tracking-for '(or mention (and unread unmuted)) + telega-open-file-function 'org-open-file + ;; telega-open-message-as-file '(video video-note) + telega-translate-to-language-by-default "zh" + telega-avatar-workaround-gaps-for `(return t) + telega-mode-line-string-format (remove + '(:eval (telega-mode-line-icon)) + telega-mode-line-string-format)) + + (map! (:prefix "C-c" + :desc "Telega all chats" + "c" #'telega-chat-with + :desc "Telega important chats" + "v" #'telega-switch-important-chat + :desc "Telega next important chat" + "SPC" (cmd! (let ((current-prefix-arg '(4))) + (call-interactively #'telega-switch-important-chat)))) + (:map telega-chat-mode-map + (:prefix ("C-t" . "Telega chat topic") + :desc "Telega filter by chat topic" + "C-t" #'telega-chatbuf-filter-by-topic + :desc "Telega clear chat topic" + "C-c" #'telega-chatbuf-thread-cancel))) + + ; (load! "+telega-auto-input-method") + + (set-popup-rule! (regexp-quote telega-root-buffer-name) + :slot 10 :vslot 10 :side 'right :size 90 :ttl nil :quit 'current :modeline t) + (set-popup-rule! "^◀[^◀\[]*[\[({<].+[\])}>]" + :slot 10 :vslot 10 :side 'right :size 90 :ttl 10 :quit 'current :modeline t) + (set-popup-rule! (regexp-quote "*Telega User*") + :slot 20 :vslot 10 :side 'right :height .5 :ttl 10 :quit t :modeline nil :select t) + (set-popup-rule! (regexp-quote "*Telegram Chat Info*") + :slot 20 :vslot 10 :side 'right :height .5 :ttl 10 :quit t :modeline nil :select t)) + +;; (load! "+telega-addition") + +(use-package! telega-dired-dwim + :after telega dired) + +(use-package! telega-bridge-bot + :after telega) diff --git a/tools/fish/conf.d/alias.fish b/tools/fish/conf.d/alias.fish index c9eb61c..1a505b3 100644 --- a/tools/fish/conf.d/alias.fish +++ b/tools/fish/conf.d/alias.fish @@ -60,6 +60,9 @@ abbr --add ipy ipython abbr --add g lazygit + +abbr --add doomrc "emacsclient -t ~/.config/doom/" + # lsd - modern ls if command -v lsd > /dev/null alias ls='lsd' diff --git a/tools/nvim/lua/plugins/fileutils.lua b/tools/nvim/lua/plugins/fileutils.lua index 0d88b3d..b9e4232 100644 --- a/tools/nvim/lua/plugins/fileutils.lua +++ b/tools/nvim/lua/plugins/fileutils.lua @@ -9,6 +9,7 @@ return { }, { import = "plugins.mod.nvim-tree" }, { import = "plugins.mod.telescope" }, + -- { import = "plugins.mod.fzf" }, { "ahmedkhalf/project.nvim", opts = { diff --git a/tools/nvim/lua/plugins/misc.lua b/tools/nvim/lua/plugins/misc.lua index b193994..c880a4e 100644 --- a/tools/nvim/lua/plugins/misc.lua +++ b/tools/nvim/lua/plugins/misc.lua @@ -33,4 +33,21 @@ return { { import = "plugins.mod.which-keys-nvim" }, { import = "plugins.mod.copilot-lua" }, { import = "plugins.mod.avante-nvim" }, + { + "kawre/leetcode.nvim", + build = ":TSUpdate html", -- if you have `nvim-treesitter` installed + dependencies = { + "nvim-telescope/telescope.nvim", + -- "ibhagwan/fzf-lua", + "nvim-lua/plenary.nvim", + "MunifTanjim/nui.nvim", + }, + opts = { + -- configuration goes here + }, + }, + { + "3rd/image.nvim", + opts = {}, + }, } diff --git a/tools/nvim/lua/plugins/mod/avante-nvim.lua b/tools/nvim/lua/plugins/mod/avante-nvim.lua index 8171617..1aceef1 100644 --- a/tools/nvim/lua/plugins/mod/avante-nvim.lua +++ b/tools/nvim/lua/plugins/mod/avante-nvim.lua @@ -2,16 +2,16 @@ return { "yetone/avante.nvim", event = "VeryLazy", lazy = false, - version = false, -- Set this to "*" to always pull the latest release version, or set it to false to update to the latest code changes. + version = false, -- Set this to "*" to always pull the latest release version, or set it to false to update to the latest code changes. opts = { -- add any opts here -- for example provider = "openai", openai = { endpoint = "https://yunwu.ai/v1", - model = "claude-3-5-sonnet-latest", -- your desired model (or use gpt-4o, etc.) - timeout = 30000, -- timeout in milliseconds - temperature = 0, -- adjust if needed + model = "claude-3-7-sonnet-20250219", -- your desired model (or use gpt-4o, etc.) + timeout = 30000, -- timeout in milliseconds + temperature = 0, -- adjust if needed max_tokens = 4096, -- reasoning_effort = "high" -- only supported for "o" models }, @@ -25,10 +25,10 @@ return { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", --- The below dependencies are optional, - "nvim-telescope/telescope.nvim", -- for file_selector provider telescope - "hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions - "nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons - "zbirenbaum/copilot.lua", -- for providers='copilot' + "nvim-telescope/telescope.nvim", -- for file_selector provider telescope + "hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions + "nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons + "zbirenbaum/copilot.lua", -- for providers='copilot' { -- support for image pasting "HakonHarnes/img-clip.nvim", diff --git a/tools/nvim/lua/plugins/mod/fzf.lua b/tools/nvim/lua/plugins/mod/fzf.lua new file mode 100644 index 0000000..dc149e3 --- /dev/null +++ b/tools/nvim/lua/plugins/mod/fzf.lua @@ -0,0 +1,6 @@ +return { + "ibhagwan/fzf-lua", + -- optional for icon support + dependencies = { "nvim-tree/nvim-web-devicons" }, + opts = {}, +} diff --git a/tools/nvim/lua/plugins/mod/render-markdown.lua b/tools/nvim/lua/plugins/mod/render-markdown.lua index 97573ef..1eda692 100644 --- a/tools/nvim/lua/plugins/mod/render-markdown.lua +++ b/tools/nvim/lua/plugins/mod/render-markdown.lua @@ -7,7 +7,8 @@ return { file_types = { "markdown", "Avante" }, render_modes = { "n", "c", "t" }, latex = { - enabled = true, + -- enabled = true, + enabled = false, converter = "latex2text", highlight = "RenderMarkdownMath", top_pad = 0, diff --git a/tools/nvim/lua/plugins/mod/which-keys-nvim.lua b/tools/nvim/lua/plugins/mod/which-keys-nvim.lua index eb228f6..54bba67 100644 --- a/tools/nvim/lua/plugins/mod/which-keys-nvim.lua +++ b/tools/nvim/lua/plugins/mod/which-keys-nvim.lua @@ -1,18 +1,16 @@ return { - "folke/which-key.nvim", - event = "VeryLazy", - opts = { - -- your configuration comes here - -- or leave it empty to use the default settings - -- refer to the configuration section below - }, - keys = { - { - "?", - function() - require("which-key").show({ global = false }) - end, - desc = "Buffer Local Keymaps (which-key)", - }, + "folke/which-key.nvim", + event = "VeryLazy", + opts = { + preset = "modern", + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Local Keymaps (which-key)", }, + }, } diff --git a/tools/zsh/mod/alias.zsh b/tools/zsh/mod/alias.zsh index f4442c1..3c00b80 100644 --- a/tools/zsh/mod/alias.zsh +++ b/tools/zsh/mod/alias.zsh @@ -27,6 +27,8 @@ alias ipy=ipython alias g=lazygit +alias doomrc="emacsclient -t ~/.config/doom/" + # lsd - modern ls if command -v lsd >/dev/null 2>&1; then alias ls='lsd'