This document serves as a means to create a centralized location for all my system depedent configurations.
Install Emacs via package manager and create an Emaclient service with Systemd like so:
- Create
systemd
service file at this location./.config/systemd/user/default.target.wants/emacs.service
- Add these configurations
[Unit]
Description=Emacs: the extensible, self-documenting text editor
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Restart=always
[Install]
WantedBy=default.target
- To enable and start
systemd
service:systemctl --user enable emacs && systemctl --user start emacs
- To restart and quickly stop emacs service:
systemctl --user restart emacs
- Launch Emacs with:
emacsclient -t
oremacsclient -c -a
[Desktop Entry]
Name=Emacs Client
GenericName=Text Editor
Comment=A flexible platform for end-user applications
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacsclient -create-frame --alternate-editor="" --no-wait %F
Icon=/home/erobles/Pictures/tacosandlinux.png
Type=Application
Terminal=false
Categories=TextEditor;Utility;
StartupWMClass=Emacs
Keywords=Text;Editor;
X-KDE-StartupNotify=false
startup_message off
caption always "%{= ..}%-w%{= gW}%n %t%{-}%+w %-= @%H - %D %M %d - %C%a"
backtick 2 300 0 whoami
hardstatus on
hardstatus string '%2`@%H<%t>'
shell bash
vbell off
bell_msg "Bell in %n-%t at <%c> ^G"
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I"
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo rxvt*|xterm* 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# erase background with current bg color
defbce "on"
# huge scrollback buffer
defscrollback 5000
noblock 5
# mouse tracking allows to switch region focus by clicking
mousetrack on
# navigating regions with Ctrl-arrows
bindkey "^[[1;5D" focus left
bindkey "^[[1;5C" focus right
bindkey "^[[1;5A" focus up
bindkey "^[[1;5B" focus down
screen -t Home 1 bash
screen -t emt 2 emacsclient -t -c
bind R screen -t '% |rpi:' 3 ssh rpi-dev-srv
bind P screen -t '% |proxmox:' 4 ssh proxmox
#screen -t Downloads 5 cd /home/erobles/Downloads/
select 1
bind c screen 1 # window numbering starts at 1 not 0
bind 0 select 10
# Set crtl-t to Modify Key
unbind C-b
set -g prefix C-t
# Force 256 Colors
set -g default-terminal "screen-256color"
# Move between panes withs t and +
unbind ^T
bind ^T select-pane -t :.+
# emacs key bindings in tmux command prompt (prefix + :) are better than
# vi keys, even for vim users
set -g status-keys emacs
# System Clipboard
set -g set-clipboard on
# Split panes with V and H
bind h split-window -v
bind v split-window -h
# Pane Navigation
bind l select-pane -L
bind k select-pane -D
bind i select-pane -U
bind j select-pane -R
# More scroll back
set-option -g history-limit 10000
# Turn on Mouse Mode
set -g mouse on
# Positon Status at Top
set -g status-position top
# - - - - - - - - - - - - - - - - - - - - - - - -
#TMUX Plugins https://github.com/tmux-plugins/tpm
# - - - - - - - - - - - - - - - - - - - - - - - -
set -g @plugin 'tmux-plugins/tpm'
# Sensible plugins
set -g @plguin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-open'
set -g @plugin 'tmux-plugins/tmux-yank'
run '~/.tmux/plugins/tpm/tpm'
[user]
email = [email protected]
name = Eduardo Robles
signingkey = ENTERKEYHERE
alias emt="emacsclient -t"
alias emc="emacsclient -c -a emacs"
alias semacs="systemctl status --user emacs.service"
alias remacs="systemctl restart --user emacs.service"
# Editor settings
export ALTERNATE_EDITOR="emacs -nw"
export EDITOR="emacsclient -t" #$EDITOR opens in terminal
export VISUAL="emacsclient -c -a emacs" #$VISUAL opens in GUI mode
# Unified Bash History
shopt -s histappend
PROMPT_COMMAND="$PROMPT_COMMAND; history -a; history -n"
# Start SSH Agent unless already running
#if [ -z "$SSH_AUTH_SOCK" ] ; then
# eval `ssh-agent`
# ssh-add
#fi
Borrowed/Inspired by: https://github.com/dieggsy/dotfiles/blob/master/emacs/.emacs.d/init.org
;;; -*- lexical-binding: t -*-
(require 'package)
(setq byte-compile-warnings '(cl-functions))
;; Set package archives
;;(setq package-check-signature nil) ; because GNU ELPA keeps choking on the sigs
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
;;(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
(with-eval-after-load 'package (add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/")))
(setq package-enable-at-startup nil)
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
;;Use-package
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(setq use-package-verbose t)
(setq use-package-always-ensure t)
(eval-when-compile (require 'use-package))
(use-package auto-compile
:config (auto-compile-on-load-mode))
(setq load-prefer-newer t)
(unless (package-installed-p 'quelpa)
(with-temp-buffer
(url-insert-file-contents "https://raw.githubusercontent.com/quelpa/quelpa/master/quelpa.el")
(eval-buffer)
(quelpa-self-upgrade)))
(quelpa
'(quelpa-use-package
:fetcher git
:url "https://github.com/quelpa/quelpa-use-package.git"))
(require 'quelpa-use-package)
;;From lambda.cx blog
;;https://blog.lambda.cx/posts/eamacs-improved-frame-title/
(setq frame-title-format '("%b@" (:eval (or (file-remote-p default-directory 'host) system-name)) " — Emacs"))
(scroll-bar-mode -1)
(tool-bar-mode -1)
(show-paren-mode t)
(set-charset-priority 'unicode)
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
(global-auto-revert-mode t)
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(global-visual-line-mode t)
(global-prettify-symbols-mode t)
(require 'org)
(org-babel-load-file (expand-file-name "~/.emacs.d/emacs.org"))
(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.
)
(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.
)
(setq confirm-kill-emacs 'y-or-n-p
confirm-nonexistent-file-or-buffer t
require-final-newline t
visible-bell nil
ring-bell-function 'ignore
minibuffer-prompt-properties
'(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt)
;; Disable non selected window highlight
cursor-in-non-selected-windows nil
highlight-nonselected-windows nil
;; PATH
exec-path (append exec-path '("/usr/local/bin/"))
indent-tabs-mode nil
inhibit-startup-message t
fringes-outside-margins t
x-select-enable-clipboard t
create-lockfiles nil
)
To find environment variables simply:
M-x: $SHELL
for shellM-x: $GPG_AGENT_INFO
for gpgM-x: $SSH_AUTH_SOCK
for ssh
(setenv "SHELL" "/bin/bash")
;;(setenv "GPG_AGENT_INFO" "/run/user/1000/gnupg/S.gpg-agent:0:1")
(setenv "SSH_AUTH_SOCK" "/run/user/1000/keyring/.ssh")
Disable backups. Creates ugly junk on filesystem.
(setq backup-inhibited t
make-backup-files nil
auto-save-default nil)
(setq user-full-name "Eduardo Robles"
user-mail-address "[email protected]")
(setq epg-gpg-program "gpg2")
(require 'auth-source)
(setq
epa-file-encrypt-to user-mail-address
auth-sources (list (expand-file-name "~/.authinfo.gpg")))
;; Enlarge/Shrink Window
(global-set-key (kbd "C-x J") 'shrink-window-horizontally)
(global-set-key (kbd "C-x K") 'enlarge-window-horizontally)
;; if gui do something in whatver type of emacs instance we are using
(defun apply-if-gui (&rest action)
"Do specified ACTION if we're in a gui regardless of daemon or not."
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(select-frame frame)
(if (display-graphic-p frame)
(apply action))))
(if (display-graphic-p)
(apply action))))
;; Default font (cant be font with hyphen in the name like Inconsolata-g)
(setq initial-frame-alist '((font . "IBM Plex Mono")))
(setq default-frame-alist '((font . "IBM Plex Mono")))
(use-package all-the-icons)
(use-package all-the-icons-dired
:config
:hook (dired-mode . (lambda ()
(interactive)
(unless (file-remote-p default-directory)
(all-the-icons-dired-mode)))))
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1))
;; If non-nil, cause imenu to see `doom-modeline' declarations.
;; This is done by adjusting `lisp-imenu-generic-expression' to
;; include support for finding `doom-modeline-def-*' forms.
;; Must be set before loading doom-modeline.
(setq doom-modeline-support-imenu t)
;; How tall the mode-line should be. It's only respected in GUI.
;; If the actual char height is larger, it respects the actual height.
(setq doom-modeline-height 25)
;; How wide the mode-line bar should be. It's only respected in GUI.
(setq doom-modeline-bar-width 4)
;; Whether to use hud instead of default bar. It's only respected in GUI.
(setq doom-modeline-hud nil)
;; The limit of the window width.
;; If `window-width' is smaller than the limit, some information won't be
;; displayed. It can be an integer or a float number. `nil' means no limit."
(setq doom-modeline-window-width-limit 85)
;; How to detect the project root.
;; nil means to use `default-directory'.
;; The project management packages have some issues on detecting project root.
;; e.g. `projectile' doesn't handle symlink folders well, while `project' is unable
;; to hanle sub-projects.
;; You can specify one if you encounter the issue.
(setq doom-modeline-project-detection 'auto)
;; Determines the style used by `doom-modeline-buffer-file-name'.
;;
;; Given ~/Projects/FOSS/emacs/lisp/comint.el
;; auto => emacs/l/comint.el (in a project) or comint.el
;; truncate-upto-project => ~/P/F/emacs/lisp/comint.el
;; truncate-from-project => ~/Projects/FOSS/emacs/l/comint.el
;; truncate-with-project => emacs/l/comint.el
;; truncate-except-project => ~/P/F/emacs/l/comint.el
;; truncate-upto-root => ~/P/F/e/lisp/comint.el
;; truncate-all => ~/P/F/e/l/comint.el
;; truncate-nil => ~/Projects/FOSS/emacs/lisp/comint.el
;; relative-from-project => emacs/lisp/comint.el
;; relative-to-project => lisp/comint.el
;; file-name => comint.el
;; buffer-name => comint.el<2> (uniquify buffer name)
;;
;; If you are experiencing the laggy issue, especially while editing remote files
;; with tramp, please try `file-name' style.
;; Please refer to https://github.com/bbatsov/projectile/issues/657.
(setq doom-modeline-buffer-file-name-style 'auto)
;; Whether display icons in the mode-line.
;; While using the server mode in GUI, should set the value explicitly.
(setq doom-modeline-icon t)
;; Whether display the icon for `major-mode'. It respects `doom-modeline-icon'.
(setq doom-modeline-major-mode-icon t)
;; Whether display the colorful icon for `major-mode'.
;; It respects `all-the-icons-color-icons'.
(setq doom-modeline-major-mode-color-icon t)
;; Whether display the icon for the buffer state. It respects `doom-modeline-icon'.
(setq doom-modeline-buffer-state-icon t)
;; Whether display the modification icon for the buffer.
;; It respects `doom-modeline-icon' and `doom-modeline-buffer-state-icon'.
(setq doom-modeline-buffer-modification-icon t)
;; Whether display the time icon. It respects variable `doom-modeline-icon'.
(setq doom-modeline-time-icon t)
;; Whether to use unicode as a fallback (instead of ASCII) when not using icons.
(setq doom-modeline-unicode-fallback nil)
;; Whether display the buffer name.
(setq doom-modeline-buffer-name t)
;; Whether display the minor modes in the mode-line.
(setq doom-modeline-minor-modes nil)
;; If non-nil, a word count will be added to the selection-info modeline segment.
(setq doom-modeline-enable-word-count nil)
;; Major modes in which to display word count continuously.
;; Also applies to any derived modes. Respects `doom-modeline-enable-word-count'.
;; If it brings the sluggish issue, disable `doom-modeline-enable-word-count' or
;; remove the modes from `doom-modeline-continuous-word-count-modes'.
(setq doom-modeline-continuous-word-count-modes '(markdown-mode gfm-mode org-mode))
;; Whether display the buffer encoding.
(setq doom-modeline-buffer-encoding t)
;; Whether display the indentation information.
(setq doom-modeline-indent-info nil)
;; If non-nil, only display one number for checker information if applicable.
(setq doom-modeline-checker-simple-format t)
;; The maximum number displayed for notifications.
(setq doom-modeline-number-limit 99)
;; The maximum displayed length of the branch name of version control.
(setq doom-modeline-vcs-max-length 12)
;; Whether display the workspace name. Non-nil to display in the mode-line.
(setq doom-modeline-workspace-name t)
;; Whether display the perspective name. Non-nil to display in the mode-line.
(setq doom-modeline-persp-name t)
;; If non nil the default perspective name is displayed in the mode-line.
(setq doom-modeline-display-default-persp-name nil)
;; If non nil the perspective name is displayed alongside a folder icon.
(setq doom-modeline-persp-icon t)
;; Whether display the `lsp' state. Non-nil to display in the mode-line.
(setq doom-modeline-lsp t)
;; Whether display the GitHub notifications. It requires `ghub' package.
(setq doom-modeline-github nil)
;; The interval of checking GitHub.
(setq doom-modeline-github-interval (* 30 60))
;; Whether display the modal state icon.
;; Including `evil', `overwrite', `god', `ryo' and `xah-fly-keys', etc.
(setq doom-modeline-modal-icon t)
;; Whether display the mu4e notifications. It requires `mu4e-alert' package.
;;(setq doom-modeline-mu4e nil)
;; also enable the start of mu4e-alert
;;(mu4e-alert-enable-mode-line-display)
;; Whether display the gnus notifications.
;;(setq doom-modeline-gnus t)
;; Whether gnus should automatically be updated and how often (set to 0 or smaller than 0 to disable)
;;(setq doom-modeline-gnus-timer 2)
;; Wheter groups should be excludede when gnus automatically being updated.
;;(setq doom-modeline-gnus-excluded-groups '("dummy.group"))
;; Whether display the IRC notifications. It requires `circe' or `erc' package.
;;(setq doom-modeline-irc t)
;; Function to stylize the irc buffer names.
;;(setq doom-modeline-irc-stylize 'identity)
;; Whether display the time. It respects `display-time-mode'.
(setq doom-modeline-time t)
;; Whether display the misc segment on all mode lines.
;; If nil, display only if the mode line is active.
(setq doom-modeline-display-misc-in-all-mode-lines t)
;; Whether display the environment version.
;;(setq doom-modeline-env-version t)
;; Or for individual languages
;;(setq doom-modeline-env-enable-python t)
;;(setq doom-modeline-env-enable-ruby t)
;;(setq doom-modeline-env-enable-perl t)
;;(setq doom-modeline-env-enable-go t)
;;(setq doom-modeline-env-enable-elixir t)
;;(setq doom-modeline-env-enable-rust t)
;; Change the executables to use for the language version string
;;(setq doom-modeline-env-python-executable "python") ; or `python-shell-interpreter'
;;(setq doom-modeline-env-ruby-executable "ruby")
;;(setq doom-modeline-env-perl-executable "perl")
;;(setq doom-modeline-env-go-executable "go")
;;(setq doom-modeline-env-elixir-executable "iex")
;;(setq doom-modeline-env-rust-executable "rustc")
;; What to display as the version while a new one is being loaded
(setq doom-modeline-env-load-string "...")
;; Hooks that run before/after the modeline version string is updated
(setq doom-modeline-before-update-env-hook nil)
(setq doom-modeline-after-update-env-hook nil)
Primarily for when using Emacs on a laptop.
(display-time-mode 1)
(unless (string-match-p "^Power N/A" (battery))
(display-battery-mode 1))
(use-package vertico
:ensure t
:init
(vertico-mode))
(use-package vertico-directory
:after vertico
:ensure nil
:bind (:map vertico-map
("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-char)
("M-DEL" . vertico-directory-delete-word))
:hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
(use-package vterm
:ensure t)
(use-package flycheck
:hook ((prog-mode . flycheck-mode)
(markdown-mode . flycheck-mode)
(org-mode . flycheck-mode))
:config
(setq flycheck-check-syntax-automatically '(save mode-enabled newline))
(setq flycheck-display-errors-delay 0.1)
(setq flycheck-checker-error-threshold 1000)
(setq flycheck-indication-mode nil)
(define-key flycheck-mode-map (kbd "<f8>") #'flycheck-next-error)
(define-key flycheck-mode-map (kbd "S-<f8>") #'flycheck-previous-error))
(use-package flyspell
:ensure nil
:hook ((markdown-mode . flyspell-mode)
(org-mode . flyspell-mode))
:config
(setq ispell-program-name "/usr/bin/aspell"))
(use-package magit
:bind
;; Magic
("C-x g s" . magit-status)
("C-x g x" . magit-checkout)
("C-x g c" . magit-commit)
("C-x g p" . magit-push)
("C-x g u" . magit-pull)
("C-x g e" . magit-ediff-resolve)
("C-x g r" . magit-rebase-interactive))
(use-package magit-popup)
(use-package org
:bind
("C-c l" . org-store-link)
("C-c a" . org-agenda)
("C-c c" . org-capture))
(require 'ox-html)
(require 'ox-latex)
(require 'ox-md)
(require 'ox-hugo)
(use-package org-bullets
:config
(setq org-hide-leading-stars t)
(add-hook 'org-mode-hook
(lambda ()
(org-bullets-mode t))))
(define-advice org-babel-execute-src-block (:before (&rest _) d/load-lang)
"Load src language on demand.
This removes the need to add every language manually to
`org-babel-load-languages'. This also implies that any language
that supports execution can be executed. Executing src blocks is
an active enough action that I'm ok with this."
(let ((language (intern
(org-element-property :language (org-element-at-point)))))
(message "LANG: %s" language)
(pcase language
('sh (setq language 'shell))
('C++ (setq language 'C)))
(message "LANG: %s" language)
(unless (alist-get language org-babel-load-languages)
(add-to-list 'org-babel-load-languages (cons language t))
(org-babel-do-load-languages
'org-babel-load-languages
org-babel-load-languages))))
(setq org-confirm-babel-evaluate nil
org-startup-indented t
org-insert-heading-respect-content t
org-src-window-setup 'current-window
org-export-in-background t
org-export-with-author nil
org-export-babel-evaluate nil
org-html-validation-link nil
org-confirm-babel-evaluate nil
org-src-tab-acts-natively t
org-log-into-drawer t
org-confirm-elisp-link-function 'y-or-n-p)
(use-package demo-it)
(use-package org-tree-slide)
;; Load elfeed
(use-package elfeed
:ensure t
:config
(setq elfeed-use-curl t)
(elfeed-set-timeout 36000))
;; Load elfeed-org
(use-package elfeed-org
:ensure t
:config
(elfeed-org)
(setq rmh-elfeed-org-files (list "~/.emacs.d/elfeed.org"))
)
;; Load elfeed-goodies
(use-package elfeed-goodies
:ensure t
)
(require 'elfeed)
(require 'elfeed-goodies)
(elfeed-goodies/setup)
(use-package page-break-lines)
(use-package smartparens)
(use-package which-key
:config
(which-key-mode))
(use-package yasnippet
:config
(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
(yas-global-mode 1))
(use-package htmlize)
(setq tramp-default-method "ssh")
(use-package emojify)
(use-package json-mode
:mode "\\.json\\'")
(use-package markdown-mode
:ensure t
:commands (markdown-mode gfm-mode)
:mode (("README\\.md\\'" . gfm-mode)
("\\.md\\'" . markdown-mode)
("\\.markdown\\'" . markdown-mode)))
(use-package pdf-tools
:mode (("\\.pdf\\'" . pdf-view-mode))
:config
(pdf-loader-install))
(use-package yaml-mode
:mode "\\.yml\\'")
(use-package speed-type)
Play online streams including Youtube Shamelessy stolen function from: https://github.com/howardabrams/dot-files/blob/master/emacs-emms.org
(defun play-freecodecamp-radio ()
"Play Freecodecamp Radio"
(interactive)
(emms-play-streamlist "https://coderadio-admin.freecodecamp.org/public/coderadio/playlist/pls"))
(defun play-chilledcow ()
"Play Chilledcow on YT"
(interactive)
(emms-play-url "https://www.youtube.com/watch?v=hHW1oY26kxQ"))
Add following to mpv.conf file to play without window in MPV to play youtube streams
--no-video
(use-package ox-hugo
:ensure t ;Auto-install the package from Melpa
:pin melpa ;`package-archives' should already have ("melpa" . "https://melpa.org/packages/")
:after ox)
(with-eval-after-load 'ox
(require 'ox-hugo))
See https://ox-hugo.scripter.co/doc/org-capture-setup/
;; Populates only the EXPORT_FILE_NAME property in the inserted heading.
(with-eval-after-load 'org-capture
(defun org-hugo-new-subtree-post-capture-template ()
"Returns `org-capture' template string for new Hugo post.
See `org-capture-templates' for more information."
(let* ((title (read-from-minibuffer "Post Title: ")) ;Prompt to enter the post title
(fname (org-hugo-slug title)))
(mapconcat #'identity
`(
,(concat "* TODO " title)
":PROPERTIES:"
,(concat ":EXPORT_FILE_NAME: " fname)
":END:"
"%?\n") ;Place the cursor here finally
"\n")))
(add-to-list 'org-capture-templates
'("h" ;`org-capture' binding + h
"Hugo post"
entry
;; It is assumed that below file is present in `org-directory'
;; and that it has a "Blog Ideas" heading. It can even be a
;; symlink pointing to the actual location of all-posts.org!
(file+olp "~/Projects/eduardorobles_blog/content/blog.org" "Drafts")
(function org-hugo-new-subtree-post-capture-template))))
(use-package ox-ssh
:ensure t
:after ox)
(use-package somafm
:ensure t)
(use-package mastodon
:ensure t
:config
(mastodon-discover))
(setq mastodon-instance-url "https://emacs.ch"
mastodon-active-user "tacosandlinux")
░▀█▀░█▀█░█▀▀░█▀█░█▀▀░▄▀░░█░░░▀█▀░█▀█░█░█░█░█ ░░█░░█▀█░█░░░█░█░▀▀█░▄█▀░█░░░░█░░█░█░█░█░▄▀▄ ░░▀░░▀░▀░▀▀▀░▀▀▀░▀▀▀░░▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀ ______ ____ __ \__ _\ /| _ \ /\ \ __ \/_\ \/ __ ___ ___ ____ |/\ | \ \ \ \_\ ___ __ __ __ _ \ \ \ /’__`\ /’___\ / __`\ /’,__\ \/ __`\/\ \ \ __\/\ \ ’ _ `\\ \/\ \/\ \/’\ \ \ \/\ \L.\_/\ \__//\ \L\ \/\__, `\/| \L> <_\ \ \L\ \ \ \/\ \/\ \ \ \_\ \/> </ \ \_\ \__/.\_\ \____\ \____/\/\____/| \_____/\/ \ \____/ \ \_\ \_\ \_\ \____//\_/\_\ \/_/\/__/\/_/\/____/\/___/ \/___/ \/____/\/ \/___/ \/_/\/_/\/_/\/___/ \//\/_/ ______ ____ __ _ _ __/__ ________ ___ / __/___ / / (_)__ __ ____ __ / / / _ ` __/ _ \(-< > _/ / / /__/ / _ \/ // /\ \ / /_/ \,_/\__/\___/___/ |_____/ ____/_/_//_\_,_//_\_\“Waste no more time arguing what a good man should be. Be One.” – Marcus Aurelius “Think of the life you have lived until now as over and, as a dead man, see what’s left as a bonus and live it according to Nature. Love the hand that fate deals you and play it as your own, for what could be more fitting?” – Marcus Aurelius “It never ceases to amaze me: we all love ourselves more than other people, but care more about their opinion than our own.” – Marcus Aurelius “In your actions, don’t procrastinate. In your conversations, don’t confuse. In your thoughts, don’t wander. In your soul, don’t be passive or aggressive. In your life, don’t be all about business.” – Marcus Aurelius “If it is not right, do not do it, if it is not true, do not say it.” – Marcus Aurelius “He who fears death will never do anything worth of a man who is alive.” – Seneca “Life is very short and anxious for those who forget the past, neglect the present, and fear the future.” – Seneca
████████╗ █████╗ ██████╗ ██████╗ ███████╗ █████╗ ███╗ ██╗██████╗ ██╗ ██╗███╗ ██╗██╗ ██╗██╗ ██╗ ╚══██╔══╝██╔══██╗██╔════╝██╔═══██╗██╔════╝ ██╔══██╗████╗ ██║██╔══██╗ ██║ ██║████╗ ██║██║ ██║╚██╗██╔╝ ██║ ███████║██║ ██║ ██║███████╗ ███████║██╔██╗ ██║██║ ██║ ██║ ██║██╔██╗ ██║██║ ██║ ╚███╔╝ ██║ ██╔══██║██║ ██║ ██║╚════██║ ██╔══██║██║╚██╗██║██║ ██║ ██║ ██║██║╚██╗██║██║ ██║ ██╔██╗ ██║ ██║ ██║╚██████╗╚██████╔╝███████║ ██║ ██║██║ ╚████║██████╔╝ ███████╗██║██║ ╚████║╚██████╔╝██╔╝ ██╗ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚══════╝╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝
Add png to config