Compare commits
No commits in common. "bf95ce02e75116a0b3c84e0a1fbb2134e22b11f2" and "d535478afe2d959e950cf50ecad5c060e7ed49b4" have entirely different histories.
bf95ce02e7
...
d535478afe
141
init.el
141
init.el
|
@ -3,24 +3,6 @@
|
||||||
;; restore after startup
|
;; restore after startup
|
||||||
(setq gc-cons-threshold 800000)))
|
(setq gc-cons-threshold 800000)))
|
||||||
|
|
||||||
(defun my/copy-buffer-file-path ()
|
|
||||||
"Copy the current buffer's file path to kill ring.
|
|
||||||
For regular files, copies the full path.
|
|
||||||
For Dired buffers, copies the directory path.
|
|
||||||
Shows a message if no path is available."
|
|
||||||
(interactive)
|
|
||||||
(let ((path (cond
|
|
||||||
(buffer-file-truename
|
|
||||||
buffer-file-truename)
|
|
||||||
(dired-directory
|
|
||||||
dired-directory)
|
|
||||||
(t nil))))
|
|
||||||
(if path
|
|
||||||
(progn
|
|
||||||
(kill-new path)
|
|
||||||
(message "Copied: %s" path))
|
|
||||||
(message "No file path available"))))
|
|
||||||
|
|
||||||
(defun my/dired-open-current-file-directory ()
|
(defun my/dired-open-current-file-directory ()
|
||||||
"Open the current file's directory in Dired, if possible."
|
"Open the current file's directory in Dired, if possible."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
@ -51,12 +33,6 @@ Shows a message if no path is available."
|
||||||
('nil (sgml-skip-tag-forward 1))
|
('nil (sgml-skip-tag-forward 1))
|
||||||
(submode (forward-sexp))))
|
(submode (forward-sexp))))
|
||||||
|
|
||||||
(defun my/create-new-file ()
|
|
||||||
"Create a new file with prompt for filename using :>."
|
|
||||||
(interactive)
|
|
||||||
(let ((filename (read-string "Filename: ")))
|
|
||||||
(shell-command (concat ":> " filename))
|
|
||||||
(find-file filename)))
|
|
||||||
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
;; custom-set-variables was added by Custom.
|
||||||
|
@ -67,7 +43,7 @@ Shows a message if no path is available."
|
||||||
'("b99e334a4019a2caa71e1d6445fc346c6f074a05fcbb989800ecbe54474ae1b0" default))
|
'("b99e334a4019a2caa71e1d6445fc346c6f074a05fcbb989800ecbe54474ae1b0" default))
|
||||||
'(initial-frame-alist '((fullscreen . maximized)))
|
'(initial-frame-alist '((fullscreen . maximized)))
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
'(vue-mode verb realgud json-mode orderless prettier-js magit docker-compose-mode zig-mode treesit ef-themes dockerfile-mode dap-mode julia-ts-mode lsp-julia julia-mode marginalia vertico tide which-key use-package pyenv-mode flycheck exec-path-from-shell elpy doom-themes doom-modeline all-the-icons)))
|
'(json-mode orderless prettier-js magit docker-compose-mode zig-mode treesit ef-themes dockerfile-mode dap-mode julia-ts-mode lsp-julia julia-mode marginalia vertico tide which-key use-package pyenv-mode flycheck exec-path-from-shell elpy doom-themes doom-modeline all-the-icons)))
|
||||||
|
|
||||||
(require 'package)
|
(require 'package)
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
||||||
|
@ -128,7 +104,7 @@ Shows a message if no path is available."
|
||||||
;; EnvyCodeR Nerd Font
|
;; EnvyCodeR Nerd Font
|
||||||
;; Binchotan_Sharp
|
;; Binchotan_Sharp
|
||||||
;; Ubuntu Mono
|
;; Ubuntu Mono
|
||||||
(set-face-attribute 'default nil :font "Binchotan_Sharp" :height 140)
|
(set-face-attribute 'default nil :font "Binchotan_Sharp" :height 130)
|
||||||
|
|
||||||
;;(set-fontset-font t nil (font-spec :size 20 :name "VictorMono Nerd Font Mono"))
|
;;(set-fontset-font t nil (font-spec :size 20 :name "VictorMono Nerd Font Mono"))
|
||||||
;;(set-face-attribute 'default nil :font "VictorMono Nerd Font Mono" :height 110)
|
;;(set-face-attribute 'default nil :font "VictorMono Nerd Font Mono" :height 110)
|
||||||
|
@ -173,13 +149,18 @@ Shows a message if no path is available."
|
||||||
:config
|
:config
|
||||||
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules)))
|
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules)))
|
||||||
|
|
||||||
;; (setq elpy-rpc-virtualenv-path 'current)
|
;; (use-package exec-path-from-shell
|
||||||
|
;; :ensure t)
|
||||||
|
;; (exec-path-from-shell-copy-env "PATH")
|
||||||
|
|
||||||
(use-package exec-path-from-shell
|
;; black or standard (flake8 ?) code formatter:
|
||||||
:ensure t
|
;; (add-hook 'elpy-mode-hook (lambda ()
|
||||||
:config
|
;; (add-hook 'before-save-hook
|
||||||
(when (memq window-system '(mac ns x))
|
;; 'elpy-format-code nil t)))
|
||||||
(exec-path-from-shell-initialize)))
|
|
||||||
|
(add-hook 'elpy-mode-hook (lambda ()
|
||||||
|
(add-hook 'before-save-hook
|
||||||
|
'elpy-black-fix-code nil t)))
|
||||||
|
|
||||||
(add-hook 'python-mode-hook
|
(add-hook 'python-mode-hook
|
||||||
(lambda () (setq gud-pdb-command-name "python3 -m pdb")))
|
(lambda () (setq gud-pdb-command-name "python3 -m pdb")))
|
||||||
|
@ -190,36 +171,6 @@ Shows a message if no path is available."
|
||||||
(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
|
(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
|
||||||
(yas-reload-all))
|
(yas-reload-all))
|
||||||
|
|
||||||
|
|
||||||
(use-package meson-mode
|
|
||||||
:ensure t)
|
|
||||||
|
|
||||||
(use-package vala-mode
|
|
||||||
:ensure t
|
|
||||||
:defer t
|
|
||||||
:mode (("\\.vala\\'" . vala-mode)
|
|
||||||
("\\.vapi\\'" . vala-mode))
|
|
||||||
:config
|
|
||||||
(add-to-list 'file-coding-system-alist '("\\.vala\\'" . utf-8))
|
|
||||||
(add-to-list 'file-coding-system-alist '("\\.vapi\\'" . utf-8)))
|
|
||||||
|
|
||||||
(use-package lsp-dart
|
|
||||||
:ensure t
|
|
||||||
:defer t
|
|
||||||
:after lsp-mode)
|
|
||||||
|
|
||||||
(use-package dart-mode
|
|
||||||
:ensure t
|
|
||||||
:defer t)
|
|
||||||
|
|
||||||
(use-package verb
|
|
||||||
:ensure t
|
|
||||||
:defer t)
|
|
||||||
|
|
||||||
(use-package org
|
|
||||||
:mode ("\\.org\\'" . org-mode)
|
|
||||||
:config (define-key org-mode-map (kbd "C-c C-r") verb-command-map))
|
|
||||||
|
|
||||||
(use-package org-superstar
|
(use-package org-superstar
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t
|
:defer t
|
||||||
|
@ -270,10 +221,9 @@ Shows a message if no path is available."
|
||||||
(global-set-key (kbd "<f5>") 'revert-buffer-no-confirm)
|
(global-set-key (kbd "<f5>") 'revert-buffer-no-confirm)
|
||||||
(global-set-key (kbd "<f12>") 'kill-buffer-no-confirm)
|
(global-set-key (kbd "<f12>") 'kill-buffer-no-confirm)
|
||||||
(global-set-key (kbd "C-b") 'list-buffers-please)
|
(global-set-key (kbd "C-b") 'list-buffers-please)
|
||||||
(global-set-key (kbd "C-n") 'my/create-new-file)
|
(global-set-key (kbd "C-n") 'dired-create-empty-file)
|
||||||
(global-set-key (kbd "C-d") 'my/duplicate-line-or-region)
|
(global-set-key (kbd "C-d") 'my/duplicate-line-or-region)
|
||||||
(global-set-key (kbd "C-x d") 'my/dired-open-current-file-directory)
|
(global-set-key (kbd "C-x d") 'my/dired-open-current-file-directory)
|
||||||
(global-set-key (kbd "C-p") 'my/copy-buffer-file-path)
|
|
||||||
|
|
||||||
(add-hook 'elpy-mode-hook
|
(add-hook 'elpy-mode-hook
|
||||||
(lambda () (local-set-key [f2] 'elpy-refactor-rename)))
|
(lambda () (local-set-key [f2] 'elpy-refactor-rename)))
|
||||||
|
@ -302,9 +252,6 @@ Shows a message if no path is available."
|
||||||
(add-hook 'lsp-mode-hook
|
(add-hook 'lsp-mode-hook
|
||||||
(lambda () (local-set-key (kbd "C-f") 'lsp-format-buffer)))
|
(lambda () (local-set-key (kbd "C-f") 'lsp-format-buffer)))
|
||||||
|
|
||||||
(add-hook 'elpy-mode-hook
|
|
||||||
(lambda () (local-set-key (kbd "C-f") 'elpy-black-fix-code))) ;elpy-format-code
|
|
||||||
|
|
||||||
;; (add-hook 'prog-mode-hook
|
;; (add-hook 'prog-mode-hook
|
||||||
;; (lambda () (local-set-key (kbd "C-;") 'comment-or-uncomment-region)))
|
;; (lambda () (local-set-key (kbd "C-;") 'comment-or-uncomment-region)))
|
||||||
|
|
||||||
|
@ -323,11 +270,25 @@ Shows a message if no path is available."
|
||||||
|
|
||||||
(add-hook 'prog-mode-hook 'hs-minor-mode)
|
(add-hook 'prog-mode-hook 'hs-minor-mode)
|
||||||
|
|
||||||
;; theming starts here:
|
(require 'display-line-numbers)
|
||||||
|
|
||||||
(use-package doom-modeline
|
(defcustom display-line-numbers-exempt-modes
|
||||||
:ensure t
|
'(gud-mode inferior-python-mode dired-mode vterm-mode eshell-mode shell-mode term-mode ansi-tern-mode treemacs-mode)
|
||||||
:hook (after-init . doom-modeline-mode))
|
"Major modes on which to disable line numbers."
|
||||||
|
:group 'display-line-numbers
|
||||||
|
:type 'list
|
||||||
|
:version "green")
|
||||||
|
|
||||||
|
(defun display-line-numbers--turn-on ()
|
||||||
|
"Turn on line numbers except for certain modes.
|
||||||
|
Exempt major modes are defined in `display-line-numbers-exempt-modes'."
|
||||||
|
(unless (or (minibufferp)
|
||||||
|
(member major-mode display-line-numbers-exempt-modes))
|
||||||
|
(display-line-numbers-mode)))
|
||||||
|
|
||||||
|
;; (global-display-line-numbers-mode)
|
||||||
|
|
||||||
|
;; theming starts here:
|
||||||
|
|
||||||
;; (use-package doom-themes
|
;; (use-package doom-themes
|
||||||
;; :ensure t
|
;; :ensure t
|
||||||
|
@ -346,7 +307,7 @@ Shows a message if no path is available."
|
||||||
(use-package ef-themes
|
(use-package ef-themes
|
||||||
:ensure t)
|
:ensure t)
|
||||||
|
|
||||||
(setq ef-themes-to-toggle '(ef-elea-light ef-elea-dark))
|
(setq ef-themes-to-toggle '(ef-day ef-autumn))
|
||||||
|
|
||||||
(setq ef-themes-headings ; read the manual's entry or the doc string
|
(setq ef-themes-headings ; read the manual's entry or the doc string
|
||||||
'((0 . (variable-pitch light 1.9))
|
'((0 . (variable-pitch light 1.9))
|
||||||
|
@ -384,13 +345,20 @@ ef-themes-variable-pitch-ui t)
|
||||||
:config
|
:config
|
||||||
(setq magit-auto-revert-mode nil))
|
(setq magit-auto-revert-mode nil))
|
||||||
|
|
||||||
|
(use-package doom-modeline
|
||||||
|
:ensure t
|
||||||
|
:hook (after-init . doom-modeline-mode))
|
||||||
|
|
||||||
;; M-x nerd-icons-install-fonts
|
;; M-x nerd-icons-install-fonts
|
||||||
(use-package nerd-icons
|
(use-package nerd-icons
|
||||||
:ensure t)
|
:ensure t)
|
||||||
|
|
||||||
|
;; prettier setup goes here
|
||||||
(use-package prettier-js
|
(use-package prettier-js
|
||||||
:ensure t)
|
:ensure t)
|
||||||
|
|
||||||
|
;; __________________________________________________
|
||||||
|
|
||||||
(use-package orderless
|
(use-package orderless
|
||||||
:ensure t
|
:ensure t
|
||||||
:custom
|
:custom
|
||||||
|
@ -403,20 +371,6 @@ ef-themes-variable-pitch-ui t)
|
||||||
:defer t
|
:defer t
|
||||||
:commands json-mode)
|
:commands json-mode)
|
||||||
|
|
||||||
(use-package lsp-mode
|
|
||||||
:ensure t)
|
|
||||||
|
|
||||||
(use-package dap-mode
|
|
||||||
:ensure t
|
|
||||||
;;:custom (lsp-enable-dap-auto-configure nil)
|
|
||||||
:commands dap-debug)
|
|
||||||
|
|
||||||
(use-package vue-mode
|
|
||||||
:ensure t
|
|
||||||
:defer t
|
|
||||||
:mode "\\.vue\\'"
|
|
||||||
:hook (vue-mode . lsp-deferred))
|
|
||||||
|
|
||||||
;; __________________________________________________
|
;; __________________________________________________
|
||||||
;; typescript setup starts here
|
;; typescript setup starts here
|
||||||
(defun setup-tide-mode ()
|
(defun setup-tide-mode ()
|
||||||
|
@ -433,13 +387,20 @@ ef-themes-variable-pitch-ui t)
|
||||||
:hook ((typescript-ts-mode . setup-tide-mode)
|
:hook ((typescript-ts-mode . setup-tide-mode)
|
||||||
(tsx-ts-mode . setup-tide-mode)
|
(tsx-ts-mode . setup-tide-mode)
|
||||||
(typescript-ts-mode . tide-hl-identifier-mode)
|
(typescript-ts-mode . tide-hl-identifier-mode)
|
||||||
(before-save . tide-format-before-save))
|
(before-save . tide-format-before-save)))
|
||||||
:config
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
|
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
|
||||||
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . tsx-ts-mode)))
|
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . tsx-ts-mode))
|
||||||
|
|
||||||
;;----------------------------------------
|
;;----------------------------------------
|
||||||
;; dotnet starts here
|
;; dotnet starts here
|
||||||
|
(use-package lsp-mode
|
||||||
|
:commands (lsp lsp-deferred))
|
||||||
|
|
||||||
|
(use-package dap-mode
|
||||||
|
:ensure t
|
||||||
|
;;:custom (lsp-enable-dap-auto-configure nil)
|
||||||
|
:commands dap-debug)
|
||||||
|
|
||||||
(use-package dap-netcore
|
(use-package dap-netcore
|
||||||
:after dap-mode
|
:after dap-mode
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
# -*- mode: python -*-
|
|
||||||
# name: first-only
|
|
||||||
# key: fo
|
|
||||||
# --
|
|
||||||
$0 = next(filter(lambda x: x.__name__ == name, values), None)
|
|
|
@ -1,16 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:add-section
|
|
||||||
# key:adds
|
|
||||||
# --
|
|
||||||
#############################################################
|
|
||||||
# 1 - STEP NAME
|
|
||||||
#############################################################
|
|
||||||
${3:my_func}() {
|
|
||||||
local step_name='STEP ${1:1} ${2:STEP NAME}'
|
|
||||||
warn "Press enter to proceed with $step_name"; read
|
|
||||||
info "$step_name"
|
|
||||||
|
|
||||||
$0
|
|
||||||
|
|
||||||
info "done"
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:cat-heredoc
|
|
||||||
# key:cat
|
|
||||||
# --
|
|
||||||
cat <<EOF | tee ${1:file-name.conf}
|
|
||||||
$0
|
|
||||||
EOF
|
|
|
@ -1,9 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:read
|
|
||||||
# key:read
|
|
||||||
# --
|
|
||||||
read -p "Enter ${1:name}: " ${2:input}
|
|
||||||
if [[ -z $$2 ]]; then
|
|
||||||
echo "Error: $1 cannot be empty"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
|
@ -1,9 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:root-check
|
|
||||||
# key:root
|
|
||||||
# --
|
|
||||||
user=$(whoami)
|
|
||||||
if [ $user == root ]; then
|
|
||||||
error "You should NOT be using a root account"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
|
@ -1,72 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:script
|
|
||||||
# key:script
|
|
||||||
# --
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
#############################################################
|
|
||||||
# Author: Taryel Hlontsi, 2025
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>
|
|
||||||
#############################################################
|
|
||||||
|
|
||||||
doc=$(cat <<'EOF'
|
|
||||||
NOTES:
|
|
||||||
|
|
||||||
EOF
|
|
||||||
)
|
|
||||||
|
|
||||||
#############################################################
|
|
||||||
# SETUP SECTION
|
|
||||||
#############################################################
|
|
||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
#############################################################
|
|
||||||
# HELPER FUNCTIONS
|
|
||||||
#############################################################
|
|
||||||
info() {
|
|
||||||
GREEN='\033[1;32m'
|
|
||||||
NC='\033[0m'
|
|
||||||
echo -e "\${GREEN}\${1}\${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
trace() {
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
NC='\033[0m'
|
|
||||||
echo -e "\${YELLOW}\${1}\${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
warn() {
|
|
||||||
PURPLE='\033[1;35m'
|
|
||||||
NC='\033[0m'
|
|
||||||
echo -e "\${PURPLE}\${1}\${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
error() {
|
|
||||||
RED='\033[1;31m'
|
|
||||||
NC='\033[0m'
|
|
||||||
echo -e "\${RED}\${1}\${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
$0
|
|
||||||
|
|
||||||
#############################################################
|
|
||||||
# RUN SECTION
|
|
||||||
#############################################################
|
|
||||||
echo $(date +'%Y-%m-%d %H:%M')
|
|
||||||
info "$doc"
|
|
||||||
|
|
||||||
info "Bye!"
|
|
||||||
|
|
||||||
exit 0
|
|
|
@ -1,8 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:sourced-check
|
|
||||||
# key:sourced
|
|
||||||
# --
|
|
||||||
if [ \$0 == $BASH_SOURCE ]; then
|
|
||||||
error "Do not run the script in a subshell via ./ Instead you should 'source' it!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
|
@ -1,23 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:systemd
|
|
||||||
# key:systemd
|
|
||||||
# --
|
|
||||||
[Unit]
|
|
||||||
Description=Description goes here
|
|
||||||
Wants=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Environment="VAR_NAME=value"
|
|
||||||
EnvironmentFile=-/etc/environment
|
|
||||||
ExecStart=/usr/bin/bash /home/myuser/myscript.sh${1}
|
|
||||||
SyslogIdentifier=my.service
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=5
|
|
||||||
# Should exist!
|
|
||||||
WorkingDirectory=/var/my.service${2}
|
|
||||||
TimeoutStopSec=30
|
|
||||||
Type=simple
|
|
||||||
User=root
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,5 +0,0 @@
|
||||||
# -*- mode: Shell-script -*-
|
|
||||||
# name:wget
|
|
||||||
# key:wget
|
|
||||||
# --
|
|
||||||
wget --continue ${1:link} --output-document ${2:file}
|
|
Loading…
Reference in New Issue