summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-30vterm: add a convenient function to run btmJSDurand
* vterm-conf.el (btm): This convenient function runs the command "btm --battery -m" in a vterm buffer. This is my main usage for vterm, so it is worth a dedicated function in my opinion.
2023-07-30init: run outline even at the first timeJSDurand
* init.el (durand-maybe-enable-outline): Previously when we enable outline-minor-mode for the first time, it would not be turned on. Now this is fixed. And the same thing for vterm.
2023-07-30text: `make-center-block`JSDurand
* text-conf.el (make-center-block): Make a "centered" block surrounding the selected region or line. This seems similar to the so-called source blocks in "Org-mode" , at least in my eyes. (find-max-nonblank-len-in-region): A helper function to calculate the maximal length of non-blank lines within a region. Here the length refers to the length of the non-blank portions of the lines.
2023-07-29Add vterm configurationJSDurand
I find vterm very useful when combined with the command 'btm'. I can use this combination to monitor many computer states conveniently, which I did not find a way to accomplish with the built-in terminal emulator 'term' in Emacs. * init.el (vterm): Load vterm if necessary. * vterm-conf.el: Thin configurations.
2023-07-29modeline: `mode-line-window-selected-p`JSDurand
* modeline.el: (modeline-get-active-window, modeline-active-window, modeline-active-window-p, modeline-set-active-window, modeline-unset-active-window, modeline-refresh-modeline, window-configuration-change-hook, buffer-list-update-hook, after-make-frame-functions, delete-frame-functions, handle-switch-frame): Emacs 29 adds a convenient function `mode-line-window-selected-p` that makes my old manual implementation here obsolete now.
2023-07-29add 'btm' as a visual commandJSDurand
I recently found this tool, which offers better experience than 'htop' in my opinion.
2023-07-27desktop: disable auto-savingJSDurand
* desktop-conf.el (desktop-auto-save-timeout): Auto-saving causes some trouble for me.
2023-07-22eshell: gv is now async and reports progressJSDurand
* eshell-conf.el (eshell-gv): Now gv uses `make-process` to asynchronously compile GraphViz files to image files. Moreover, it reports the progress in the echo area as well, as a quality-of-life improvement.
2023-07-20dashboard: set the dashboard buffer to be non-modifiedJSDurand
* dashboard.el (dashboard): Set the dashboard buffer as not modified. This is a minor issue, but I like it. :D
2023-07-17dashboard: Add a binding for switching projectsJSDurand
* dashboard.el (dashboard-mode-map): This command becomes more and more indispensable for me.
2023-07-17basic: use entire map when switching projectsJSDurand
* basic.el (project-switch-use-entire-map): This is quite convenient.
2023-06-19common: add a binding to store bookmarks in registersJSDurand
* common.el (durand-bookmark-to-register): Add an anonymous bookmark to a register. (ctl-x-r-map): Bind the function to 'C-x r B'. (bookmark-make-record): Automatically loads the bookmark if the required functionality is not loaded yet.
2023-06-19desktop: fix the previous issue of a variable not bound.JSDurand
* desktop-conf.el (desktop-also-save-bookmarks): Check if the variable `durand-saving-bookmarks` is bound, before checking its value.
2023-06-19desktop: inhibit message when saving bookmarksJSDurand
* desktop-conf.el (desktop-also-save-bookmarks): Inhibit message when saving bookmarks as a consequence of saving the desktop file.
2023-06-18desktop and bookmark: proper save mechanismJSDurand
* bookmark-conf.el (durand-saving-bookmarks): This variable indicates whether or not we are saving bookmarks already. (#'bookmark-write-file): Just a formating change. (durand-save-bookmark-or-desktop): Save bookmarks and/or the desktop file, depending on its argument. (ctl-x-r-map): Bind 'C-x r s' to `durand-save-bookmark-or-desktop`. * desktop-conf.el (durand-saving-bookmarks): In case this variable is not defined, silence the errors. (desktop-also-save-bookmarks): If we are not already saving bookmarks, save the bookmarks as well. (desktop-save-hook): Add `desktop-also-save-bookmarks` to this hook, so that when saving desktop and not already saving bookmarks, Emacs can automatically save bookmarks as well.
2023-06-18desktop: Do not save bookmarks in the hookJSDurand
* desktop-conf.el (durand-bookmark-save): I do not want to save bookmarks as a consequence of saving the desktop file now. (desktop-save-hook): Remove the previous function from the hook. (ctl-x-r-map): And remove the binding to save desktop files. Basically my plan is to have a keybinding that saves the bookmarks only, by default. When I want to save the desktop file as well, I pass an interactive universal prefix argument to the responsible function. I think this works better than to save both by default: it is kind of a waste of computing power, from my point of view. But of course I still want to save bookmarks if Emacs accidentally crashes and it saves the desktop file because of that. Thus we shall use a variable to control this behaviour, in order not to cause infinite recursion.
2023-06-18gnus: Add gmail group backJSDurand
* gnus-conf.el (gnus-secondary-select-methods): I finally figured out how to manage gmail within Gnus again, so this group is added back. (gnus-topic-alist): I am not sure if this is needed. I removed the gmail group in the hope that I can replace my usage of gmail by my own mail server, but it turned out that my mail server is too unreliable: too oft did my mails get rejected for one reason or another, so I have to use gmail still.
2023-06-18mail: update gmail as wellJSDurand
* mail.el (durand-mail-update-command): Also update the gmail account. (durand-mail-update): Remove an outdated hello string.
2023-06-18desktop + bookmark: bind C-x r s to save desktop.JSDurand
* bookmark-conf.el (ctl-x-r-map): Remove the original binding. * desktop-conf.el (durand-desktop-save-a): Do not ask questions when saving. (ctl-x-r-map): Bind 'C-x r s' to save the desktop file, as well as the bookmarks. Saving bookmarks does not run a hook, whereas saving the desktop file runs a hook, so it is easier to call `desktop-save` which also saves bookmarks than the other way around.
2023-06-17common: Bind point-to-register to a more convenient keyJSDurand
* common.el (register-val-jump-to): Do not ask for confirmation to visit files again. This was enabled to send to others, and I forgot to modify that back. (ctl-x-r-map): Bind point-to-register to a more convenient key. I am tired of typing 'C-x r C-x @ c @' to add a point to a register. Another binding involves the space key, and I would like to have an alternative convenient key-binding that does not involve the space key, as I find that the space key is pressed way too oft. Haha!
2023-06-15dashboard: bind 'L' to list registers.JSDurand
* dashboard.el (dashboard-mode-map): Bind 'L' to `rlist-list-registers`. This is quite convenient.
2023-06-15common: support bookmarks in registersJSDurand
* common.el (register-val-jump-to, register-val-describe): Support bookmarks in registers via these two methods.
2023-06-15org: use new syntax for org-capture-templatesJSDurand
* org-conf.el (org-capture-templates): Use the form '(function org-determine-link-file)' instead of #'org-determine-link-file alone.
2023-06-12basic: `find-function-on-key`JSDurand
* basic.el (help-map): Bind `find-function-on-key` to 'M-f' in the help-mode so that I can access this helpful functionality easily.
2023-06-12wgsl: major mode for WGSL files.JSDurand
* init.el (wgsl-mode, auto-mode-alist): Add support for WebGpu Shader Language files. * wgsl-conf.el ("wgsl-mode"): Use a package for syntax-highlighting and basic stuff.
2023-06-09gnus: bind 'e' to expire articles in group modeJSDurand
* gnus-conf.el (durand-gnus-expire): Just call `gnus-agent-expire` with parameters t, nil, and t respectively. (gnus-group-mode-map): Bind `durand-gnus-expire` to 'e' to conveniently expire articles.
2023-06-03dired: add -v to the listing switchesJSDurand
* dired-conf.el (dired-listing-switches): Add '-v' here. It has the effect of sorting the file names by treating the numbers as version numbers, so that "10" is sorted after "2", as an example.
2023-06-03dashboard: bind 'c' to `dashboard-clear`JSDurand
* dashboard.el (dashboard-mode-map, dashboard-clear): This function runs `ibuffer` and then runs `durand-ibuffer-clear`. Its effect is to clear every buffer and then stays in the dashboard. This can be used as a final key before leaving the computer.
2023-06-03view: Bind 'J' to `jump-to-register`JSDurand
It is quite convenient.
2023-05-30TeX: add a hiero-processing functionJSDurand
* tex-conf.el (durand-tex-hiero): Send the region to the executable that translates it to the LaTeX commands that produce the corresponding hieroglyphs. This makes it convenient to obtain the correct LaTeX codes to use.
2023-05-30TeX: bind 'H-t' to `durand-tex-do-all`.JSDurand
Add a binding to run the commands.
2023-05-30TeX: If the pdf is already displayed, reuse that window.JSDurand
Sometimes I want to display the pdf side-by-side with the source file, in which case it would be natural and convenient to reuse the same window for displaying the pdf file, instead of switching to the pdf file in the window that was displaying the source file.
2023-05-30dashboard: bind 't' to show temps info and 'T' to toggle.JSDurand
* dashboard.el (dashboard-mode-map): Now 't' is bound to `durand-view-timers-or-temps` and 'T' is bound to `modeline-toggle`. The ability to view interesting information is much more important than that of toggling the modeline, in my opinion.
2023-05-29dashboard: delete unused bind that shadowsJSDurand
* dashboard.el (dashboard-mode-map): `org-store-link` is useless in the dashboard buffer, and it shadows the useful key 'l'.
2023-05-29dashboard: bind `durand-open-object`JSDurand
* dashboard.el (dashboard-mode-map): Bind `durand-open-object` so as to easily open things.
2023-05-28dashboard: bind gnusJSDurand
* dashboard.el (dashboard-mode-map): Bind `gnus` to 'g' for conveniently accessing mails.
2023-05-28dashboard: bind `modeline-toggle`.JSDurand
* dashboard.el (dashboard-mode-map): Bind `modeline-toggle` to 't' to conveniently toggle the mode line.
2023-05-28modeline: toggle mode-lineJSDurand
* modeline.el (modeline-toggle): A function to toggle the display of the mode line. (modeline-alt-format): This is used to store the mode line so that we can toggle back. (global-map): Add a global binding: 'C-c T'.
2023-05-28dashboard: convenient functionsJSDurand
* dashboard.el (dashboard-mode): A dedicated mode with convenient access functions. (dashboard-preload): A macro to define convenient functions easily.
2023-05-07bookmark: modify the bookmark listJSDurand
* bookmark-conf.el: Add an external bookmark.
2023-02-28bookmark: bind `bookmark-save` to C-x r s.JSDurand
The original function for that key-binding has another associated key-binding, so it is save to replace that one.
2023-02-28eshell: add two definitions of variables to avoid errorsJSDurand
* eshell-conf.el (dereference-links, dired-flag): Eshell uses locally bound variables for some reason, so we need to provide definitions for those variables in order to avoid errors.
2023-02-26eshell: Add completion support for the gv commandJSDurand
* eshell-conf.el (pcomplete/gv): This function will be called by pcomplete to provide completions for the gv command, in Eshell. (gv-complete-switches): This function provides completions for the switches of the gv command. (gv-complete-files): This function provides completions for source files that are valid for the gv command.
2023-02-25eshell: Fix typo and change section headingsJSDurand
* eshell-conf.el: Fix a typo in the documentation string of the function eshell/dl, and add some more sections for better structures.
2023-02-25eshell: Call "dl" after cd.JSDurand
* eshell-conf.el (eshell-list-files-after-cd): I used to set this variable to call ls after cd. But I want to use my dl command now. (eshell-directory-ls, eshell-directory-change-hook): Call "dl --group-directories-first" after cd.
2023-02-25eshell: improve the method to group directories firstJSDurand
* eshell-conf.el (em-term, dir-literal, show-recursive, sort-method) (show-all, show-almost-all, listing-style, human-readable) (numeric-uid-gid, block-size, reverse-list, show-size, insert-func) (flush-func, error-func): Just variables that are needed by Eshell implementation of ls. (eshell/l): Equivalent with calling `eshell/dl` with "-glah" in front of arguments. (durand-eshell-group-entries-by-directory): Obsolete function. (durand-eshell-ls-dirs-first): A variable that controls whether to group directories first. (durand-eshell-ls-sort-entries, eshell-ls-sort-entries): An advice around the original sorting function, which groups directories into a separate list, to be sorted before the rest. This approach respects the original sorting method, and performs no extra sorting, as opposed to the previous approach.
2023-02-24eshell: group directories first in lsJSDurand
* eshell-conf.el: Add an advice to `eshell-ls-sort-entries` so that directories always come before non-directories.
2023-02-23mail: Add the option of only running hooks without updatingJSDurand
* mail.el (durand-mail-update): Now if we run the update command with the argument of `0', then it only runs the hook `durand-mail-update-hook`, which currently contains only the function `notmuch-poll`. This allows the user to index mails without fetching mails, which is useful since the timer that fetches mails in the background does not index mails, intentionally.
2023-02-22eshell: Add wildcard expansion support in GraphViz command.JSDurand
* eshell-conf.el (eshell/gv, eshell-gv): Now a star in the filename will trigger the wildcard expansion. This is much more flexible and convenient when dealing with many files.
2023-02-21eshell: Allow setting directory in the gv commandJSDurand
* eshell-conf.el (eshell/gv, eshell-gv): Now we can set the directory that contains the output directory explicitly in the command line. It used to be hard-coded to be the root of the project. It is more flexible now.