updated
This commit is contained in:
24
.mbsyncrc
Normal file
24
.mbsyncrc
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
IMAPAccount personal
|
||||||
|
Host mailu.apps.sukany.cz
|
||||||
|
User martin@sukany.cz
|
||||||
|
Pass treasure-Hunter
|
||||||
|
TLSType IMAPS
|
||||||
|
Port 993
|
||||||
|
|
||||||
|
IMAPStore personal-remote
|
||||||
|
Account personal
|
||||||
|
|
||||||
|
MaildirStore personal-local
|
||||||
|
SubFolders Verbatim
|
||||||
|
Path ~/.mail/personal/
|
||||||
|
Inbox ~/.mail/personal/INBOX
|
||||||
|
|
||||||
|
Channel personal
|
||||||
|
Far :personal-remote:
|
||||||
|
Near :personal-local:
|
||||||
|
Patterns *
|
||||||
|
Create Near
|
||||||
|
SyncState *
|
||||||
|
Expunge Both
|
||||||
|
Sync All
|
||||||
|
|
||||||
15
.msmtprc
Normal file
15
.msmtprc
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
defaults
|
||||||
|
auth on
|
||||||
|
tls on
|
||||||
|
tls_starttls off
|
||||||
|
logfile ~/.msmtp.log
|
||||||
|
|
||||||
|
account personal
|
||||||
|
host mailu.apps.sukany.cz
|
||||||
|
port 465
|
||||||
|
from martin@sukany.cz
|
||||||
|
user martin@sukany.cz
|
||||||
|
password treasure-Hunter
|
||||||
|
|
||||||
|
account default : personal
|
||||||
|
|
||||||
8
README
Normal file
8
README
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# instalace mailu:
|
||||||
|
brew install mu isync msmtp
|
||||||
|
|
||||||
|
pak mbsync personal (musi existovat .mbsyncrc)
|
||||||
|
|
||||||
|
pak
|
||||||
|
mu init --maildir=~/.mail --my-address=martin@sukany.cz
|
||||||
|
mu index
|
||||||
141
config.el
141
config.el
@@ -69,6 +69,7 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
|||||||
;; --------------------------------------------------
|
;; --------------------------------------------------
|
||||||
;; Org
|
;; Org
|
||||||
;; --------------------------------------------------
|
;; --------------------------------------------------
|
||||||
|
|
||||||
(setq org-directory "~/org/")
|
(setq org-directory "~/org/")
|
||||||
|
|
||||||
(after! org
|
(after! org
|
||||||
@@ -402,3 +403,143 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
|||||||
(when (executable-find "fd")
|
(when (executable-find "fd")
|
||||||
(setq projectile-generic-command
|
(setq projectile-generic-command
|
||||||
"fd . -0 --type f --hidden --follow --exclude .git --color=never")))
|
"fd . -0 --type f --hidden --follow --exclude .git --color=never")))
|
||||||
|
|
||||||
|
;; mu4e
|
||||||
|
(add-to-list 'load-path (expand-file-name "/opt/homebrew/opt/mu/share/emacs/site-lisp/mu/mu4e"))
|
||||||
|
(after! mu4e
|
||||||
|
(setq mu4e-maildir "~/.mail"
|
||||||
|
mu4e-get-mail-command "mbsync personal"
|
||||||
|
mu4e-update-interval 300
|
||||||
|
mu4e-change-filenames-when-moving t
|
||||||
|
mu4e-view-show-images t))
|
||||||
|
(after! mu4e
|
||||||
|
(setq mu4e-maildir (expand-file-name "~/.mail")
|
||||||
|
mu4e-get-mail-command "mbsync personal"
|
||||||
|
mu4e-update-interval 300
|
||||||
|
mu4e-change-filenames-when-moving t
|
||||||
|
mu4e-view-show-images t
|
||||||
|
|
||||||
|
;; TADY je to důležité:
|
||||||
|
mu4e-sent-folder "/personal/Sent"
|
||||||
|
mu4e-drafts-folder "/personal/Drafts"
|
||||||
|
mu4e-trash-folder "/personal/Trash"
|
||||||
|
mu4e-refile-folder "/personal/Archive"))
|
||||||
|
(after! mu4e
|
||||||
|
(setq sendmail-program "msmtp"
|
||||||
|
message-send-mail-function #'message-send-mail-with-sendmail
|
||||||
|
mail-specify-envelope-from t
|
||||||
|
message-sendmail-envelope-from 'header))
|
||||||
|
|
||||||
|
(setq user-mail-address "martin@sukany.cz"
|
||||||
|
user-full-name "Martin Sukany")
|
||||||
|
|
||||||
|
(map! :map mu4e-view-mode-map
|
||||||
|
:localleader
|
||||||
|
"l l" #'org-store-link
|
||||||
|
"l i" #'org-insert-link)
|
||||||
|
|
||||||
|
(map! :map mu4e-headers-mode-map
|
||||||
|
:localleader
|
||||||
|
"l l" #'org-store-link
|
||||||
|
"l i" #'org-insert-link)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;; ================================
|
||||||
|
;;; Emacspeak robust ON/OFF for Doom
|
||||||
|
;;; Default: OFF (won't auto-restart)
|
||||||
|
;;; Keys:
|
||||||
|
;;; SPC t s -> Speech ON
|
||||||
|
;;; SPC t S -> Speech OFF
|
||||||
|
;;; ================================
|
||||||
|
|
||||||
|
(defconst my/emacspeak-dir (expand-file-name "~/.emacspeak"))
|
||||||
|
(defconst my/emacspeak-wrapper (expand-file-name "~/.local/bin/emacspeak-mac"))
|
||||||
|
|
||||||
|
;; Emacspeak uses this to start the speech server.
|
||||||
|
(setq dtk-program my/emacspeak-wrapper)
|
||||||
|
|
||||||
|
;; State flags
|
||||||
|
(defvar my/emacspeak-loaded nil)
|
||||||
|
(defvar my/emacspeak-enabled nil)
|
||||||
|
|
||||||
|
;; Hard inhibit: when non-nil, Emacspeak is NOT allowed to start/restart the server.
|
||||||
|
(defvar my/emacspeak-inhibit-server t)
|
||||||
|
|
||||||
|
(defun my/emacspeak--ensure-loaded ()
|
||||||
|
"Load Emacspeak once, safely, without breaking Doom startup."
|
||||||
|
(unless my/emacspeak-loaded
|
||||||
|
(setq my/emacspeak-loaded t)
|
||||||
|
(setq emacspeak-directory my/emacspeak-dir)
|
||||||
|
;; Load late-ish (but still inside the command that enables it)
|
||||||
|
(load-file (expand-file-name "lisp/emacspeak-setup.el" emacspeak-directory))
|
||||||
|
|
||||||
|
;; After Emacspeak is present, install inhibition advices.
|
||||||
|
;; These prevent the common 'it restarts by itself' problem.
|
||||||
|
(with-eval-after-load 'dtk-speak
|
||||||
|
(dolist (fn '(dtk-initialize dtk-start-process dtk-speak))
|
||||||
|
(when (fboundp fn)
|
||||||
|
(advice-add
|
||||||
|
fn :around
|
||||||
|
(lambda (orig &rest args)
|
||||||
|
(if my/emacspeak-inhibit-server
|
||||||
|
;; OFF mode: do nothing (and crucially: don't restart speaker)
|
||||||
|
nil
|
||||||
|
(apply orig args)))))))))
|
||||||
|
|
||||||
|
(defun my/emacspeak-on ()
|
||||||
|
"Enable speech (and allow server start)."
|
||||||
|
(interactive)
|
||||||
|
(setq my/emacspeak-inhibit-server nil)
|
||||||
|
(my/emacspeak--ensure-loaded)
|
||||||
|
(setq my/emacspeak-enabled t)
|
||||||
|
(when (fboundp 'dtk-restart)
|
||||||
|
(ignore-errors (dtk-restart)))
|
||||||
|
(when (fboundp 'dtk-speak)
|
||||||
|
(ignore-errors (dtk-speak "Emacspeak on.")))
|
||||||
|
(message "Emacspeak ON"))
|
||||||
|
|
||||||
|
(defun my/emacspeak-off ()
|
||||||
|
"Disable speech robustly (stop + prevent auto-restart)."
|
||||||
|
(interactive)
|
||||||
|
;; First: inhibit any future attempts to start/restart.
|
||||||
|
(setq my/emacspeak-enabled nil)
|
||||||
|
(setq my/emacspeak-inhibit-server t)
|
||||||
|
|
||||||
|
;; Stop current speech if any.
|
||||||
|
(when (fboundp 'dtk-stop)
|
||||||
|
(ignore-errors (dtk-stop)))
|
||||||
|
|
||||||
|
;; Kill the server process hard (if it exists).
|
||||||
|
(when (boundp 'dtk-speaker-process)
|
||||||
|
(let ((p dtk-speaker-process))
|
||||||
|
(when (processp p)
|
||||||
|
(ignore-errors (set-process-sentinel p nil))
|
||||||
|
(ignore-errors (delete-process p))))
|
||||||
|
(setq dtk-speaker-process nil))
|
||||||
|
|
||||||
|
(message "Emacspeak OFF (server restart inhibited)"))
|
||||||
|
|
||||||
|
;; Doom leader keys
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("t" . "toggle")
|
||||||
|
:desc "Speech ON" "s" #'my/emacspeak-on
|
||||||
|
:desc "Speech OFF" "S" #'my/emacspeak-off))
|
||||||
|
(setq dtk-speech-rate 300)
|
||||||
|
|
||||||
|
|
||||||
|
;; emacspeak additional settings
|
||||||
|
;;(setq emacspeak-speak-messages nil)
|
||||||
|
;;(setq emacspeak-audio-indentation nil)
|
||||||
|
(setq emacspeak-speak-echo nil)
|
||||||
|
(setq emacspeak-character-echo nil)
|
||||||
|
;;(setq emacspeak-word-echo nil)
|
||||||
|
(setq emacspeak-line-echo t)
|
||||||
|
;;(setq emacspeak-speak-messages nil)
|
||||||
|
(global-set-key (kbd "C-c SPC") #'emacspeak-speak-buffer)
|
||||||
|
(add-hook 'transient-post-exit-hook #'ignore)
|
||||||
|
|
||||||
|
(advice-add 'transient--show :after
|
||||||
|
(lambda (&rest _)
|
||||||
|
(dtk-speak (buffer-string))))
|
||||||
|
|
||||||
|
|||||||
14
custom.el
Normal file
14
custom.el
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
;;; -*- lexical-binding: t -*-
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(smtpmail-smtp-server "mailu.apps.sukany.cz")
|
||||||
|
'(smtpmail-smtp-service 465))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user