Minor edits.

This commit is contained in:
Derek Taylor 2020-07-11 11:37:20 -05:00
parent 06924eaefe
commit 4680c2e1ec
8 changed files with 427 additions and 767 deletions

View File

@ -40,36 +40,34 @@ myConfig = "/home/dt/.config/qtile/config.py" # The Qtile config file locatio
##### KEYBINDINGS #####
keys = [
### The essentials
Key(
[mod], "Return",
lazy.spawn(myTerm+" -e fish"),
desc='Launches My Terminal With Fish Shell'
Key([mod], "Return",
lazy.spawn(myTerm),
desc='Launches My Terminal'
),
Key(
[mod, "shift"], "Return",
Key([mod, "shift"], "Return",
lazy.spawn("dmenu_run -p 'Run: '"),
desc='Dmenu Run Launcher'
),
Key(
[mod], "Tab",
Key([mod], "Tab",
lazy.next_layout(),
desc='Toggle through layouts'
),
Key(
[mod, "shift"], "c",
Key([mod, "shift"], "c",
lazy.window.kill(),
desc='Kill active window'
),
Key(
[mod, "shift"], "r",
Key([mod, "shift"], "r",
lazy.restart(),
desc='Restart Qtile'
),
Key(
[mod, "shift"], "q",
Key([mod, "shift"], "q",
lazy.shutdown(),
desc='Shutdown Qtile'
),
Key(["control", "shift"], "e",
lazy.spawn("emacsclient -c -a emacs"),
desc='Doom Emacs'
),
### Switch focus to specific monitor (out of three)
Key([mod], "w",
lazy.to_screen(0),
@ -102,169 +100,141 @@ keys = [
desc='Move down a section in treetab'
),
### Window controls
Key(
[mod], "k",
Key([mod], "k",
lazy.layout.down(),
desc='Move focus down in current stack pane'
),
Key(
[mod], "j",
Key([mod], "j",
lazy.layout.up(),
desc='Move focus up in current stack pane'
),
Key(
[mod, "shift"], "k",
Key([mod, "shift"], "k",
lazy.layout.shuffle_down(),
desc='Move windows down in current stack'
),
Key(
[mod, "shift"], "j",
Key([mod, "shift"], "j",
lazy.layout.shuffle_up(),
desc='Move windows up in current stack'
),
Key(
[mod], "h",
Key([mod], "h",
lazy.layout.grow(),
lazy.layout.increase_nmaster(),
desc='Expand window (MonadTall), increase number in master pane (Tile)'
),
Key(
[mod], "l",
Key([mod], "l",
lazy.layout.shrink(),
lazy.layout.decrease_nmaster(),
desc='Shrink window (MonadTall), decrease number in master pane (Tile)'
),
Key(
[mod], "n",
Key([mod], "n",
lazy.layout.normalize(),
desc='normalize window size ratios'
),
Key(
[mod], "m",
Key([mod], "m",
lazy.layout.maximize(),
desc='toggle window between minimum and maximum sizes'
),
Key(
[mod, "shift"], "f",
Key([mod, "shift"], "f",
lazy.window.toggle_floating(),
desc='toggle floating'
),
Key([mod, "shift"], "m",
lazy.window.toggle_fullscreen(),
desc='toggle fullscreen'
),
### Stack controls
Key(
[mod, "shift"], "space",
Key([mod, "shift"], "space",
lazy.layout.rotate(),
lazy.layout.flip(),
desc='Switch which side main pane occupies (XmonadTall)'
),
Key(
[mod], "space",
Key([mod], "space",
lazy.layout.next(),
desc='Switch window focus to other pane(s) of stack'
),
Key(
[mod, "control"], "Return",
Key([mod, "control"], "Return",
lazy.layout.toggle_split(),
desc='Toggle between split and unsplit sides of stack'
),
### Dmenu scripts launched with ALT + CTRL + KEY
Key(
["mod1", "control"], "e",
Key(["mod1", "control"], "e",
lazy.spawn("./.dmenu/dmenu-edit-configs.sh"),
desc='Dmenu script for editing config files'
),
Key(
["mod1", "control"], "m",
Key(["mod1", "control"], "m",
lazy.spawn("./.dmenu/dmenu-sysmon.sh"),
desc='Dmenu system monitor script'
),
Key(
["mod1", "control"], "p",
Key(["mod1", "control"], "p",
lazy.spawn("passmenu"),
desc='Passmenu'
),
Key(
["mod1", "control"], "r",
Key(["mod1", "control"], "r",
lazy.spawn("./.dmenu/dmenu-reddio.sh"),
desc='Dmenu reddio script'
),
Key(
["mod1", "control"], "s",
Key(["mod1", "control"], "s",
lazy.spawn("./.dmenu/dmenu-surfraw.sh"),
desc='Dmenu surfraw script'
),
Key(
["mod1", "control"], "t",
Key(["mod1", "control"], "t",
lazy.spawn("./.dmenu/dmenu-trading.sh"),
desc='Dmenu trading programs script'
),
Key(
["mod1", "control"], "i",
Key(["mod1", "control"], "i",
lazy.spawn("./.dmenu/dmenu-scrot.sh"),
desc='Dmenu scrot script'
),
### My applications launched with SUPER + ALT + KEY
Key(
[mod, "mod1"], "b",
Key([mod, "mod1"], "b",
lazy.spawn("tabbed -r 2 surf -pe x '.surf/html/homepage.html'"),
desc='lynx browser'
),
Key(
[mod, "mod1"], "l",
Key([mod, "mod1"], "l",
lazy.spawn(myTerm+" -e lynx gopher://distro.tube"),
desc='lynx browser'
),
Key(
[mod, "mod1"], "n",
Key([mod, "mod1"], "n",
lazy.spawn(myTerm+" -e newsboat"),
desc='newsboat'
),
Key(
[mod, "mod1"], "r",
Key([mod, "mod1"], "r",
lazy.spawn(myTerm+" -e rtv"),
desc='reddit terminal viewer'
),
Key(
[mod, "mod1"], "e",
Key([mod, "mod1"], "e",
lazy.spawn(myTerm+" -e neomutt"),
desc='neomutt'
),
Key(
[mod, "mod1"], "m",
Key([mod, "mod1"], "m",
lazy.spawn(myTerm+" -e sh ./scripts/toot.sh"),
desc='toot mastodon cli'
),
Key(
[mod, "mod1"], "t",
Key([mod, "mod1"], "t",
lazy.spawn(myTerm+" -e sh ./scripts/tig-script.sh"),
desc='tig'
),
Key(
[mod, "mod1"], "f",
Key([mod, "mod1"], "f",
lazy.spawn(myTerm+" -e sh ./.config/vifm/scripts/vifmrun"),
desc='vifm'
),
Key(
[mod, "mod1"], "j",
Key([mod, "mod1"], "j",
lazy.spawn(myTerm+" -e joplin"),
desc='joplin'
),
Key(
[mod, "mod1"], "c",
Key([mod, "mod1"], "c",
lazy.spawn(myTerm+" -e cmus"),
desc='cmus'
),
Key(
[mod, "mod1"], "i",
Key([mod, "mod1"], "i",
lazy.spawn(myTerm+" -e irssi"),
desc='irssi'
),
Key(
[mod, "mod1"], "y",
Key([mod, "mod1"], "y",
lazy.spawn(myTerm+" -e youtube-viewer"),
desc='youtube-viewer'
),
Key(
[mod, "mod1"], "a",
Key([mod, "mod1"], "a",
lazy.spawn(myTerm+" -e ncpamixer"),
desc='ncpamixer'
),
@ -326,7 +296,7 @@ layouts = [
]
##### COLORS #####
colors = [["#282a36", "#282a36"], # panel background
colors = [["#292d3e", "#292d3e"], # panel background
["#434758", "#434758"], # background for current screen tab
["#ffffff", "#ffffff"], # font color for group names
["#ff5555", "#ff5555"], # border line color for current tab
@ -350,89 +320,90 @@ extension_defaults = widget_defaults.copy()
def init_widgets_list():
widgets_list = [
widget.Sep(
linewidth = 0,
padding = 6,
foreground = colors[2],
background = colors[0]
),
widget.Image(
filename = "~/.config/qtile/icons/python.png",
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn('dmenu_run')}
),
widget.GroupBox(font="Ubuntu Bold",
fontsize = 9,
margin_y = 3,
margin_x = 0,
padding_y = 5,
padding_x = 3,
borderwidth = 3,
active = colors[2],
inactive = colors[2],
rounded = False,
highlight_color = colors[1],
highlight_method = "line",
this_current_screen_border = colors[3],
this_screen_border = colors [4],
other_current_screen_border = colors[0],
other_screen_border = colors[0],
foreground = colors[2],
background = colors[0]
),
widget.Prompt(
prompt=prompt,
font="Ubuntu Mono",
padding=10,
foreground = colors[3],
background = colors[1]
),
widget.Sep(
linewidth = 0,
padding = 40,
foreground = colors[2],
background = colors[0]
),
widget.WindowName(
foreground = colors[6],
background = colors[0],
padding = 0
),
widget.TextBox(
text='',
background = colors[0],
foreground = colors[4],
padding=0,
fontsize=37
),
widget.Sep(
linewidth = 0,
padding = 6,
foreground = colors[2],
background = colors[0]
),
widget.Image(
filename = "~/.config/qtile/icons/python.png",
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn('dmenu_run')}
),
widget.GroupBox(
font = "Ubuntu Bold",
fontsize = 9,
margin_y = 3,
margin_x = 0,
padding_y = 5,
padding_x = 3,
borderwidth = 3,
active = colors[2],
inactive = colors[2],
rounded = False,
highlight_color = colors[1],
highlight_method = "line",
this_current_screen_border = colors[3],
this_screen_border = colors [4],
other_current_screen_border = colors[0],
other_screen_border = colors[0],
foreground = colors[2],
background = colors[0]
),
widget.Prompt(
prompt = prompt,
font = "Ubuntu Mono",
padding = 10,
foreground = colors[3],
background = colors[1]
),
widget.Sep(
linewidth = 0,
padding = 40,
foreground = colors[2],
background = colors[0]
),
widget.WindowName(
foreground = colors[6],
background = colors[0],
padding = 0
),
widget.TextBox(
text="",
text = '',
background = colors[0],
foreground = colors[4],
padding = 0,
foreground=colors[2],
background=colors[4],
fontsize=12
fontsize = 37
),
widget.TextBox(
text = "",
padding = 0,
foreground = colors[2],
background = colors[4],
fontsize = 12
),
widget.BitcoinTicker(
foreground=colors[2],
background=colors[4],
foreground = colors[2],
background = colors[4],
padding = 5
),
widget.TextBox(
text='',
text = '',
background = colors[4],
foreground = colors[5],
padding=0,
fontsize=37
padding = 0,
fontsize = 37
),
widget.TextBox(
text=" 🌡",
text = " 🌡",
padding = 2,
foreground=colors[2],
background=colors[5],
fontsize=11
foreground = colors[2],
background = colors[5],
fontsize = 11
),
widget.ThermalSensor(
foreground=colors[2],
background=colors[5],
foreground = colors[2],
background = colors[5],
threshold = 90,
padding = 5
),
@ -440,122 +411,122 @@ def init_widgets_list():
text='',
background = colors[5],
foreground = colors[4],
padding=0,
fontsize=37
padding = 0,
fontsize = 37
),
widget.TextBox(
text = "",
padding = 2,
foreground = colors[2],
background = colors[4],
fontsize = 14
),
widget.Pacman(
update_interval = 1800,
foreground = colors[2],
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
background = colors[4]
),
widget.TextBox(
text = "Updates",
padding = 5,
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
foreground = colors[2],
background = colors[4]
),
widget.TextBox(
text = '',
background = colors[4],
foreground = colors[5],
padding = 0,
fontsize = 37
),
widget.TextBox(
text = " 🖬",
foreground = colors[2],
background = colors[5],
padding = 0,
fontsize = 14
),
widget.Memory(
foreground = colors[2],
background = colors[5],
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e htop')},
padding = 5
),
widget.TextBox(
text='',
background = colors[5],
foreground = colors[4],
padding = 0,
fontsize = 37
),
widget.Net(
interface = "enp6s0",
format = '{down} ↓↑ {up}',
foreground = colors[2],
background = colors[4],
padding = 5
),
widget.TextBox(
text = '',
background = colors[4],
foreground = colors[5],
padding = 0,
fontsize = 37
),
widget.TextBox(
text = " Vol:",
foreground = colors[2],
background = colors[5],
padding = 0
),
widget.Volume(
foreground = colors[2],
background = colors[5],
padding = 5
),
widget.TextBox(
text = '',
background = colors[5],
foreground = colors[4],
padding = 0,
fontsize = 37
),
widget.CurrentLayoutIcon(
custom_icon_paths = [os.path.expanduser("~/.config/qtile/icons")],
foreground = colors[0],
background = colors[4],
padding = 0,
scale = 0.7
),
widget.CurrentLayout(
foreground = colors[2],
background = colors[4],
padding = 5
),
widget.TextBox(
text = '',
background = colors[4],
foreground = colors[5],
padding = 0,
fontsize = 37
),
widget.Clock(
foreground = colors[2],
background = colors[5],
format = "%A, %B %d [ %H:%M ]"
),
widget.Sep(
linewidth = 0,
padding = 10,
foreground = colors[0],
background = colors[5]
),
widget.Systray(
background = colors[0],
padding = 5
),
widget.TextBox(
text="",
padding = 2,
foreground=colors[2],
background=colors[4],
fontsize=14
),
widget.Pacman(
update_interval = 1800,
foreground = colors[2],
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
background = colors[4]
),
widget.TextBox(
text="Updates",
padding = 5,
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
foreground=colors[2],
background=colors[4]
),
widget.TextBox(
text='',
background = colors[4],
foreground = colors[5],
padding=0,
fontsize=37
),
widget.TextBox(
text=" 🖬",
foreground=colors[2],
background=colors[5],
padding = 0,
fontsize=14
),
widget.Memory(
foreground = colors[2],
background = colors[5],
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e htop')},
padding = 5
),
widget.TextBox(
text='',
background = colors[5],
foreground = colors[4],
padding=0,
fontsize=37
),
widget.Net(
interface = "enp6s0",
format = '{down} ↓↑ {up}',
foreground = colors[2],
background = colors[4],
padding = 5
),
widget.TextBox(
text='',
background = colors[4],
foreground = colors[5],
padding=0,
fontsize=37
),
widget.TextBox(
text=" Vol:",
foreground=colors[2],
background=colors[5],
padding = 0
),
widget.Volume(
foreground = colors[2],
background = colors[5],
padding = 5
),
widget.TextBox(
text='',
background = colors[5],
foreground = colors[4],
padding=0,
fontsize=37
),
widget.CurrentLayoutIcon(
custom_icon_paths=[os.path.expanduser("~/.config/qtile/icons")],
foreground = colors[0],
background = colors[4],
padding = 0,
scale=0.7
),
widget.CurrentLayout(
foreground = colors[2],
background = colors[4],
padding = 5
),
widget.TextBox(
text='',
background = colors[4],
foreground = colors[5],
padding=0,
fontsize=37
),
widget.Clock(
foreground = colors[2],
background = colors[5],
format="%A, %B %d [ %H:%M ]"
),
widget.Sep(
linewidth = 0,
padding = 10,
foreground = colors[0],
background = colors[5]
),
widget.Systray(
background=colors[0],
padding = 5
),
]
return widgets_list
@ -570,9 +541,9 @@ def init_widgets_screen2():
return widgets_screen2 # Monitor 2 will display all widgets in widgets_list
def init_screens():
return [Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=0.95, size=20)),
Screen(top=bar.Bar(widgets=init_widgets_screen2(), opacity=0.95, size=20)),
Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=0.95, size=20))]
return [Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=1.0, size=20)),
Screen(top=bar.Bar(widgets=init_widgets_screen2(), opacity=1.0, size=20)),
Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=1.0, size=20))]
if __name__ in ["config", "__main__"]:
screens = init_screens()

View File

@ -148,4 +148,4 @@ case "$choice" in
exit 1
;;
esac
alacritty -e nvim "$choice"
emacsclient -c -a emacs "$choice"

View File

@ -1,233 +1,37 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; START OF EXWM CONFIG ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Disable menu-bar, tool-bar and scroll-bar to increase the usable space.
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
;; Also shrink fringes to 1 pixel.
(fringe-mode 1)
;; Turn on `display-time-mode' if you don't use an external bar.
(setq display-time-default-load-average nil)
(display-time-mode t)
;; You are strongly encouraged to enable something like `ido-mode' to alter
;; the default behavior of 'C-x b', or you will take great pains to switch
;; to or back from a floating frame (remember 'C-x 5 o' if you refuse this
;; proposal however).
;; You may also want to call `exwm-config-ido' later (see below).
(ido-mode 1)
;; Emacs server is not required to run EXWM but it has some interesting uses
;; (see next section).
(server-start)
;;;; Below are configurations for EXWM.
;; Add paths (not required if EXWM is installed from GNU ELPA).
;(add-to-list 'load-path "/path/to/xelb/")
;(add-to-list 'load-path "/path/to/exwm/")
;; Load EXWM.
(require 'exwm)
;; Fix problems with Ido (if you use it).
(require 'exwm-config)
(exwm-config-ido)
;; Set the initial number of workspaces (they can also be created later).
(setq exwm-workspace-number 10)
(require 'exwm-randr)
(setq exwm-randr-workspace-monitor-plist '(0 "DisplayPort-0" 1 "DisplayPort-1" 2 "HDMI-A-0"))
(add-hook 'exwm-randr-screen-change-hook
(lambda ()
(start-process-shell-command
"xrandr" nil "xrandr --output DisplayPort-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DisplayPort-1 --primary --mode 1920x1080 --pos 1920x0 --rotate normal --output HDMI-A-0 --mode 1920x1080 --pos 3840x0 --rotate normal")))
(exwm-randr-enable)
(require 'exwm-systemtray)
(exwm-systemtray-enable)
;; All buffers created in EXWM mode are named "*EXWM*". You may want to
;; change it in `exwm-update-class-hook' and `exwm-update-title-hook', which
;; are run when a new X window class name or title is available. Here's
;; some advice on this topic:
;; + Always use `exwm-workspace-rename-buffer` to avoid naming conflict.
;; + For applications with multiple windows (e.g. GIMP), the class names of
; all windows are probably the same. Using window titles for them makes
;; more sense.
;; In the following example, we use class names for all windows except for
;; Java applications and GIMP.
(add-hook 'exwm-update-class-hook
(lambda ()
(unless (or (string-prefix-p "sun-awt-X11-" exwm-instance-name)
(string= "gimp" exwm-instance-name))
(exwm-workspace-rename-buffer exwm-class-name))))
(add-hook 'exwm-update-title-hook
(lambda ()
(when (or (not exwm-instance-name)
(string-prefix-p "sun-awt-X11-" exwm-instance-name)
(string= "gimp" exwm-instance-name))
(exwm-workspace-rename-buffer exwm-title))))
;; Global keybindings can be defined with `exwm-input-global-keys'.
;; Here are a few examples:
(setq exwm-input-global-keys
`(
;; Bind "s-r" to exit char-mode and fullscreen mode.
([?\s-r] . exwm-reset)
;; Bind "s-w" to switch workspace interactively.
([?\s-w] . exwm-workspace-switch)
;; Bind "s-0" to "s-9" to switch to a workspace by its index.
,@(mapcar (lambda (i)
`(,(kbd (format "s-%d" i)) .
(lambda ()
(interactive)
(exwm-workspace-switch-create ,i))))
(number-sequence 0 9))
;; Bind "s-&" to launch applications ('M-&' also works if the output
;; buffer does not bother you).
([?\s-&] . (lambda (command)
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command)))
([s-return] . (lambda ()
(interactive)
(start-process "" nil "alacritty")))
([?\s-p] . (lambda ()
(interactive)
(start-process "" nil "dmenu_run")))
([?\s-f] . (lambda ()
(interactive)
(start-process "" nil "firefox")))
([s-f2] . (lambda ()
(interactive)
(start-process "" nil "/usr/bin/slock")))))
;; To add a key binding only available in line-mode, simply define it in
;; `exwm-mode-map'. The following example shortens 'C-c q' to 'C-q'.
(define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
;; The following example demonstrates how to use simulation keys to mimic
;; the behavior of Emacs. The value of `exwm-input-simulation-keys` is a
;; list of cons cells (SRC . DEST), where SRC is the key sequence you press
;; and DEST is what EXWM actually sends to application. Note that both SRC
;; and DEST should be key sequences (vector or string).
(setq exwm-input-simulation-keys
'(
;; movement
([?\C-b] . [left])
([?\M-b] . [C-left])
([?\C-f] . [right])
([?\M-f] . [C-right])
([?\C-p] . [up])
([?\C-n] . [down])
([?\C-a] . [home])
([?\C-e] . [end])
([?\M-v] . [prior])
([?\C-v] . [next])
([?\C-d] . [delete])
([?\C-k] . [S-end delete])
;; cut/paste.
([?\C-w] . [?\C-x])
([?\M-w] . [?\C-c])
([?\C-y] . [?\C-v])
;; search
([?\C-s] . [?\C-f])))
;; You can hide the minibuffer and echo area when they're not used, by
;; uncommenting the following line.
;(setq exwm-workspace-minibuffer-position 'bottom)
;; Do not forget to enable EXWM. It will start by itself when things are
;; ready. You can put it _anywhere_ in your configuration.
(exwm-enable)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; END OF EXWM CONFIG ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
;; are the three important ones:
;;
;; + `doom-font'
;; + `doom-variable-pitch-font'
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;;
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
;; font string. You generally only need these two:
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
(setq doom-theme 'doom-palenight)
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/Documents/org/")
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type t)
;; Setting the neotree width to be adjustable.
(setq neo-window-fixed-size nil)
;; Sets binding to toggle line wrap on/off.
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
;; Sets binding to launch elfeed
(global-set-key (kbd "s-a") 'emms)
(global-set-key (kbd "s-b") 'ibuffer)
(global-set-key (kbd "s-d") 'dired)
(global-set-key (kbd "s-m") 'mu4e)
(global-set-key (kbd "s-n") 'elfeed)
(global-set-key (kbd "s-s") 'eshell)
(setq neo-window-fixed-size nil)
;; Set browser to eww
(setq browse-url-browser-function 'eww-browse-url)
;; Force splits to open on the right
(defun prefer-horizontal-split ()
(set-variable 'split-height-threshold nil t)
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
;; Image previews in dired
(global-set-key (kbd "C-x i") 'peep-dired)
(map!
(:after dired
(:map dired-mode-map
"C-x i" #'peep-dired
)))
(evil-define-key 'normal peep-dired-mode-map (kbd "j") 'peep-dired-next-file
(kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
;; Sets transparency for focuses and unfocused frames.
;; (set-frame-parameter (selected-frame) 'alpha '(95 . 80))
;; (add-to-list 'default-frame-alist '(alpha . (95 . 80)))
;; Setting the indent guides to show a pipe character.
;; (def-package! highlight-indent-guides
;; :commands highlight-indent-guides-mode
;; :hook (prog-mode . highlight-indent-guides-mode)
;; :config
;; (setq highlight-indent-guides-method 'character
;; highlight-indent-guides-character ?\|
;; highlight-indent-guides-delay 0.01
;; highlight-indent-guides-responsive 'top
;; highlight-indent-guides-auto-enabled nil))
(use-package emms
:ensure t
:config
(require 'emms-setup)
(require 'emms-info)
(require 'emms-cue) ;; Required for processing flacs.
(require 'emms-cue)
(require 'emms-mode-line)
(require 'emms-playing-time)
(setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
@ -241,20 +45,10 @@
(emms-mode-line 1)
(emms-playing-time 1))
;; Setting up mu4e which is an email client that works within emacs.
;; You must install mu4e and mbsync through your Linux distribution's
;; package manager.
;; Adding path to mu4e
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
(require 'mu4e)
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/mu4e/.mbsyncrc -a"
mu4e-update-interval 300)
;; Fields that are auto-filled in email such as the full name of the
;; sender, the salutation and signature.
(setq
user-mail-address "derek@distrotube.com"
user-full-name "Derek Taylor"
@ -262,10 +56,6 @@
(concat
"Derek Taylor\n"
"http://www.youtube.com/DistroTube\n"))
;; Setting up smtp for sending mail. Make sure the gnutls command
;; line utils are installed. Package 'gnutls-bin' in Debian/Ubuntu,
;; and 'gnutls' in Arch.
(require 'smtpmail)
(setq message-send-mail-function 'smtpmail-send-it
starttls-use-gnutls t
@ -276,37 +66,29 @@
smtpmail-smtp-server "smtp.1and1.com"
smtpmail-smtp-service 587)
;; Here are some additional functions/macros that could help you configure Doom:
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
(setq mastodon-instance-url "https://mastodon.technology")
(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.
'(elfeed-feeds
(quote
("https://www.gamingonlinux.com/article_rss.php" "https://hackaday.com/blog/feed/" "https://opensource.com/feed" "https://linux.softpedia.com/backend.xml" "https://itsfoss.com/feed/" "https://www.zdnet.com/topic/linux/rss.xml" "https://www.phoronix.com/rss.php" "http://feeds.feedburner.com/d0od" "https://www.computerworld.com/index.rss" "https://www.networkworld.com/category/linux/index.rss" "https://www.techrepublic.com/rssfeeds/topic/open-source/" "https://betanews.com/feed" "http://lxer.com/module/newswire/headlines.rss" "https://distrowatch.com/news/dwd.xml")))
'(package-selected-packages (quote (exwm peep-dired nav-flash evil-mu4e emms elfeed))))
(("https://www.reddit.com/r/linux.rss" reddit linux)
("https://www.gamingonlinux.com/article_rss.php" gaming linux)
("https://hackaday.com/blog/feed/" hackaday linux)
("https://opensource.com/feed" opensource linux)
("https://linux.softpedia.com/backend.xml" softpedia linux)
("https://itsfoss.com/feed/" itsfoss linux)
("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux)
("https://www.phoronix.com/rss.php" phoronix linux)
("http://feeds.feedburner.com/d0od" omgubuntu linux)
("https://www.computerworld.com/index.rss" computerworld linux)
("https://www.networkworld.com/category/linux/index.rss" networkworld linux)
("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux)
("https://betanews.com/feed" betanews linux)
("http://lxer.com/module/newswire/headlines.rss" lxer linux)
("https://distrowatch.com/news/dwd.xml" distrowatch linux))))
'(package-selected-packages
(quote
(mastodon exwm peep-dired nav-flash evil-mu4e emms elfeed))))
(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.
)

158
.doom.d/config.org Normal file
View File

@ -0,0 +1,158 @@
#+TITLE: DT's Doom Emacs Config
#+AUTHOR: Derek Taylor (DT)
** FONTS
Doom exposes five (optional) variables for controlling fonts in Doom. Here
are the three important ones:
+ `doom-font'
+ `doom-variable-pitch-font'
+ `doom-big-font' -- used for `doom-big-font-mode'; use this for
presentations or streaming.
They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
font string. You generally only need these two:
#+BEGIN_SRC emacs-lisp
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
#+END_SRC
** DOOM THEME
#+BEGIN_SRC emacs-lisp
(setq doom-theme 'doom-palenight)
#+END_SRC
** ORG MODE
#+BEGIN_SRC emacs-lisp
(setq org-directory "~/Documents/org/")
#+END_SRC
** LINE SETTINGS
#+BEGIN_SRC emacs-lisp
(setq display-line-numbers-type t)
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
#+END_SRC
** NEOTREE
Setting the neotree width to be adjustable.
#+BEGIN_SRC emacs-lisp
(setq neo-window-fixed-size nil)
#+END_SRC
** BROWSER (eww)
Set urls to open in a specific browser.
#+BEGIN_SRC emacs-lisp
(setq browse-url-browser-function 'eww-browse-url)
#+END_SRC
** SPLITS
Force splits to open on the right
#+BEGIN_SRC emacs-lisp
(defun prefer-horizontal-split ()
(set-variable 'split-height-threshold nil t)
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
#+END_SRC
** FILE MANAGER (dired)
Image previews in dired
#+BEGIN_SRC emacs-lisp
(map!
(:after dired
(:map dired-mode-map
"C-x i" #'peep-dired
)))
(evil-define-key 'normal peep-dired-mode-map (kbd "j") 'peep-dired-next-file
(kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
#+END_SRC
** AUDIO PLAYER (emms)
#+BEGIN_SRC emacs-lisp
(use-package emms
:ensure t
:config
(require 'emms-setup)
(require 'emms-info)
(require 'emms-cue)
(require 'emms-mode-line)
(require 'emms-playing-time)
(setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
(setq emms-playlist-buffer-name "*Music*")
(setq emms-info-asynchronously t)
(unless (eq system-type 'windows-nt)
(setq emms-source-file-directory-tree-function
'emms-source-file-directory-tree-find))
(emms-all)
(emms-default-players)
(emms-mode-line 1)
(emms-playing-time 1))
#+END_SRC
** EMAIL CLIENT (mu4e)
Setting up mu4e which is an email client that works within emacs.
You must install mu4e and mbsync through your Linux distribution's
package manager. Setting up smtp for sending mail. Make sure the gnutls command
line utils are installed. Package 'gnutls-bin' in Debian/Ubuntu,
and 'gnutls' in Arch.
#+BEGIN_SRC emacs-lisp
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
(require 'mu4e)
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/mu4e/.mbsyncrc -a"
mu4e-update-interval 300)
(setq
user-mail-address "derek@distrotube.com"
user-full-name "Derek Taylor"
mu4e-compose-signature
(concat
"Derek Taylor\n"
"http://www.youtube.com/DistroTube\n"))
(require 'smtpmail)
(setq message-send-mail-function 'smtpmail-send-it
starttls-use-gnutls t
smtpmail-starttls-credentials '(("smtp.1and1.com" 587 nil nil))
smtpmail-auth-credentials
'(("smtp.1and1.com" 587 "derek@distrotube.com" nil))
smtpmail-default-smtp-server "smtp.1and1.com"
smtpmail-smtp-server "smtp.1and1.com"
smtpmail-smtp-service 587)
#+END_SRC
** MASTODON CLIENT (mastodon)
#+BEGIN_SRC emacs-lisp
(setq mastodon-instance-url "https://mastodon.technology")
#+END_SRC
#+BEGIN_SRC emacs-lisp
(custom-set-variables
'(elfeed-feeds
(quote
(("https://www.reddit.com/r/linux.rss" reddit linux)
("https://www.gamingonlinux.com/article_rss.php" gaming linux)
("https://hackaday.com/blog/feed/" hackaday linux)
("https://opensource.com/feed" opensource linux)
("https://linux.softpedia.com/backend.xml" softpedia linux)
("https://itsfoss.com/feed/" itsfoss linux)
("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux)
("https://www.phoronix.com/rss.php" phoronix linux)
("http://feeds.feedburner.com/d0od" omgubuntu linux)
("https://www.computerworld.com/index.rss" computerworld linux)
("https://www.networkworld.com/category/linux/index.rss" networkworld linux)
("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux)
("https://betanews.com/feed" betanews linux)
("http://lxer.com/module/newswire/headlines.rss" lxer linux)
("https://distrowatch.com/news/dwd.xml" distrowatch linux))))
'(package-selected-packages
(quote
(mastodon exwm peep-dired nav-flash evil-mu4e emms elfeed))))
#+END_SRC
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.
#+BEGIN_SRC emacs-lisp
(custom-set-faces
)
#+END_SRC

View File

@ -178,5 +178,5 @@
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
literate
(default +bindings +smartparens))

View File

@ -49,6 +49,7 @@
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
(package! exwm)
(package! mastodon)
(package! emms)
(package! emojify)
(package! elfeed)

View File

@ -1,254 +0,0 @@
<div align="center">
# Doom Emacs
[Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute)
![Made with Doom Emacs](https://img.shields.io/github/tag/hlissner/doom-emacs.svg?style=flat-square&label=release&color=58839b)
![Supports Emacs 26-27](https://img.shields.io/badge/Supports-Emacs_26.1_--_27.x-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white)
![Latest commit](https://img.shields.io/github/last-commit/hlissner/doom-emacs/develop?style=flat-square)
![Build status: develop](https://img.shields.io/github/workflow/status/hlissner/doom-emacs/CI/develop?style=flat-square)
[![Discord Server](https://img.shields.io/discord/406534637242810369?color=blue&label=Discord%20Chat&logo=discord&logoColor=white&style=flat-square)][Discord]
![Doom Emacs Screenshot](https://raw.githubusercontent.com/hlissner/doom-emacs/screenshots/main.png)
</div>
---
### Table of Contents
- [Introduction](#introduction)
- [Features](#features)
- [Prerequisites](#prerequisites)
- [Install](#install)
- [Roadmap](#roadmap)
- [Getting help](#getting-help)
- [Contribute](#contribute)
# Introduction
<a href="http://ultravioletbat.deviantart.com/art/Yay-Evil-111710573">
<img src="https://raw.githubusercontent.com/hlissner/doom-emacs/screenshots/cacochan.png" align="right" />
</a>
> It is a story as old as time. A stubborn, shell-dwelling, and melodramatic
> vimmer—envious of the features of modern text editors—spirals into
> despair before he succumbs to the [dark side][evil-mode]. This is his config.
Doom is a configuration framework for [GNU Emacs] tailored for Emacs bankruptcy
veterans who want less framework in their frameworks, a modicum of stability
(and reproducibility) from their package manager, and the performance of a hand
rolled config (or better). It can be a foundation for your own config or a
resource for Emacs enthusiasts to learn more about our favorite operating
system.
Its design is guided by these mantras:
+ **Gotta go fast.** Startup and run-time performance are priorities. Doom goes
beyond by modifying packages to be snappier and load lazier.
+ **Close to metal.** There's less between you and vanilla Emacs by design.
That's less to grok and less to work around when you tinker. Internals ought
to be written as if reading them were part of Doom's UX, and it is!
+ **Opinionated, but not stubborn.** Doom is about reasonable defaults and
curated opinions, but use as little or as much of it as you like.
+ **Your system, your rules.** You know better. At least, Doom hopes so! It
won't *automatically* install system dependencies (and will force plugins not
to either). Rely on `doom doctor` to tell you what's missing.
+ **Nix/Guix is a great idea!** The Emacs ecosystem is temperamental. Things
break and they break often. Disaster recovery should be a priority! Doom's
package management should be declarative and your private config reproducible,
and comes with a means to roll back releases and updates (still a WIP).
Check out [the FAQ][FAQ] for answers to common questions about the project.
# Features
- Minimalistic good looks inspired by modern editors.
- Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
- A modular organizational structure for separating concerns in your config.
- A standard library designed to simplify your elisp bike shedding.
- A declarative [package management system][package-management] (powered by
[straight.el]) with a command line interface. Install packages from anywhere,
not just (M)ELPA, and pin them to any commit.
- Optional vim emulation powered by [evil-mode], including ports of popular vim
plugins like [vim-sneak], [vim-easymotion], [vim-unimpaired] and
[more][ported-vim-plugins]!
- Opt-in LSP integration for many languages, using [lsp-mode] or [eglot]
- Support for *many* programming languages. Includes syntax highlighting,
linters/checker integration, inline code evaluation, code completion (where
possible), REPLs, documentation lookups, snippets, and more!
- Support for *many* tools, like docker, pass, ansible, terraform, and more.
- A Spacemacs-esque [keybinding scheme][bindings], centered around leader
and localleader prefix keys (<kbd>SPC</kbd> and <kbd>SPC</kbd><kbd>m</kbd> for
evil users, <kbd>C-c</kbd> and <kbd>C-c l</kbd> for vanilla users).
- A rule-based [popup manager][popup-system] to control how temporary buffers
are displayed (and disposed of).
- Per-file indentation style detection and [editorconfig] integration. Let
someone else can argue about tabs vs **_spaces_**.
- Project-management tools and framework-specific minor modes with their own
snippets libraries.
- Project search (and replace) utilities, powered by [ripgrep] and [ivy] or
[helm].
- Isolated and persistent workspaces (also substitutes for vim tabs).
- Support for Chinese and Japanese input systems.
- Save a snapshot of your shell environment to a file for Emacs to load at
startup. No more struggling to get Emacs to inherit your `PATH`, among other
things.
# Prerequisites
+ Git 2.23+
+ Emacs 26.1+ (*27 is recommended*) with GNUTLS support
+ [ripgrep] 11.0+
+ GNU `find`
+ *OPTIONAL:* [fd] 7.3.0+ (improves file indexing performance for some commands)
Doom is comprised of [~150 optional modules][Modules], some of which may have
additional dependencies. [Visit their documentation][Modules] or run `bin/doom
doctor` to check for any that you may have missed.
# Install
``` sh
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install
```
Then [read our Getting Started guide][getting-started] to be walked through
installing, configuring and maintaining Doom Emacs.
It's a good idea to add `~/.emacs.d/bin` to your `PATH`! Other `bin/doom`
commands you should know about:
+ `doom sync` to synchronize your private config with Doom by installing missing
packages, removing orphaned packages, and regenerating caches. Run this
whenever you modify your private `init.el` or `packages.el`, or install/remove
an Emacs package through your OS package manager (e.g. mu4e or agda).
+ `doom upgrade` to update Doom to the latest release & all installed packages.
+ `doom doctor` to diagnose common issues with your system and config.
+ `doom env` to dump a snapshot of your shell environment to a file that Doom
will load at startup. This allows Emacs to inherit your `PATH`, among other
things.
+ `doom build` to recompile all installed packages (use this if you up/downgrade
Emacs).
# Roadmap
Doom is an active and ongoing project. To make that development more
transparent, its roadmap (and other concerns) are published across three github
project boards and a newsletter:
+ [Development Roadmap](https://github.com/hlissner/doom-emacs/projects/3):
roughly outlines our goals between release milestones and their progress.
+ [Plugins under review](https://github.com/hlissner/doom-emacs/projects/2):
lists plugins we are watching and considering for inclusion, and what their
status for inclusion is. Please consult this list before requesting new
packages/features.
+ [Upstream bugs](https://github.com/hlissner/doom-emacs/projects/5): lists
issues that originate from elsewhere, and whether or not we have local
workarounds or temporary fixes for them.
+ ~~Doom's newsletter~~ (not finished) will contain changelogs in between
releases.
# Getting help
Emacs is no journey of a mere thousand miles. You _will_ run into problems and
mysterious errors. When you do, here are some places you can look for help:
+ [Our documentation][documentation] covers many use cases.
+ [The Configuration section][configuration] covers how to configure Doom and
its packages.
+ [The Package Management section][package-management] covers how to install
and disable packages.
+ [This section][bin/doom] explains the `bin/doom` script's most important
commands.
+ [This section][common-mistakes] lists some common configuration mistakes new
users make, when migrating a config from another distro or their own.
+ [This answer][change-theme] shows you how to add your own themes to your
private config.
+ [This answer][change-font] shows you how to change the default font.
+ Your issue may be documented in the [FAQ].
+ With Emacs built-in help system documentation is a keystroke away:
+ For functions: <kbd>SPC h f</kbd> or <kbd>C-h f</kbd>
+ For variables: <kbd>SPC h v</kbd> or <kbd>C-h v</kbd>
+ For a keybind: <kbd>SPC h k</kbd> or <kbd>C-h k</kbd>
+ To search available keybinds: <kbd>SPC h b b</kbd> or <kbd>C-h b b</kbd>
+ Run `bin/doom doctor` to detect common issues with your development
environment and private config.
+ Check out the [FAQ], in case your question has already been answered.
+ Search [Doom's issue tracker](/issues) in case your issue was already
reported.
+ Hop on [our Discord server][discord]; it's active and friendly! Keep an eye on
the #announcements channel, where I announce breaking updates and releases.
# Contribute
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Elisp styleguide](https://img.shields.io/badge/elisp-style%20guide-purple?style=flat-square)](https://github.com/bbatsov/emacs-lisp-style-guide)
[![Donate on liberapay](https://img.shields.io/badge/liberapay-donate-1.svg?style=flat-square&logo=liberapay&color=blue)][liberapay]
[![Donate on paypal](https://img.shields.io/badge/paypal-donate-1?style=flat-square&logo=paypal&color=blue)][paypal]
Doom is a labor of love and incurable madness, but I'm only one guy. Doom
wouldn't be where it is today without your help. I welcome contributions of any
kind!
+ I :heart: pull requests and bug reports (see the [Contributing
Guidelines][contribute])!
+ Don't hesitate to [tell me my Elisp-fu
sucks](https://github.com/hlissner/doom-emacs/issues/new), but please tell me
why.
+ Hop on [our Discord server][Discord] and say hi! Help others, hang out or talk
to me about Emacs, gamedev, programming, physics, pixel art, anime, gaming --
anything you like. Nourish this lonely soul.
+ If you'd like to support my work financially, buy me a drink through
[liberapay] or [paypal]. My work contends with studies, adventures in indie
gamedev and freelance work. Donations help me allocate more time to my Emacs
and OSS capers.
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/0)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/0)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/1)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/1)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/2)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/2)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/3)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/3)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/4)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/4)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/5)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/5)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/6)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/6)
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/7)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/7)
[contribute]: docs/contributing.org
[discord]: https://discord.gg/qvGgnVx
[documentation]: docs/index.org
[faq]: docs/faq.org
[getting-started]: docs/getting_started.org
[install]: docs/getting_started.org#install
[backtrace]: docs/getting_started.org#how-to-extract-a-backtrace-from-an-error
[configuration]: docs/getting_started.org#configuring-doom
[package-management]: docs/getting_started.org#package-management
[bin/doom]: docs/getting_started.org#the-bindoom-utility
[common-mistakes]: docs/getting_started.org#common-mistakes-when-configuring-doom-emacs
[change-theme]: docs/faq.org#how-do-i-change-the-theme
[change-font]: docs/faq.org#how-do-i-change-the-fonts
[modules]: docs/modules.org
[popup-system]: modules/ui/popup/README.org
[screenshots]: #screenshots
[bindings]: modules/config/default/+evil-bindings.el
[editorconfig]: http://editorconfig.org/
[evil-mode]: https://github.com/emacs-evil/evil
[fd]: https://github.com/sharkdp/fd
[gnu emacs]: https://www.gnu.org/software/emacs/
[helm]: https://github.com/emacs-helm/helm
[ivy]: https://github.com/abo-abo/swiper
[lsp-mode]: https://github.com/emacs-lsp/lsp-mode
[eglot]: https://github.com/joaotavora/eglot
[nix]: https://nixos.org
[ported-vim-plugins]: modules/editor/evil/README.org#ported-vim-plugins
[ripgrep]: https://github.com/BurntSushi/ripgrep
[straight.el]: https://github.com/raxod502/straight.el
[vim-easymotion]: https://github.com/easymotion/vim-easymotion
[vim-lion]: https://github.com/tommcdo/vim-lion
[vim-sneak]: https://github.com/justinmk/vim-sneak
[vim-unimpaired]: https://github.com/tpope/vim-unimpaired
[liberapay]: https://liberapay.com/hlissner/donate
[paypal]: https://paypal.me/henriklissner/10

View File

@ -704,10 +704,12 @@ myKeys =
, ("C-e e", spawn "emacsclient -c -a ''") -- start emacs
, ("C-e b", spawn "emacsclient -c -a '' --eval '(ibuffer)'") -- list emacs buffers
, ("C-e d", spawn "emacsclient -c -a '' --eval '(dired nil)'") -- dired emacs file manager
, ("C-e i", spawn "emacsclient -c -a '' --eval '(erc)'") -- erc emacs irc client
, ("C-e m", spawn "emacsclient -c -a '' --eval '(mu4e)'") -- mu4e emacs email client
, ("C-e n", spawn "emacsclient -c -a '' --eval '(elfeed)'") -- elfeed emacs rss client
, ("C-e s", spawn "emacsclient -c -a '' --eval '(eshell)'") -- eshell within emacs
, ("C-e t", spawn "emacsclient -c -a '' --eval '(+vterm/here nil)'") -- eshell within emacs
, ("C-e t", spawn "emacsclient -c -a '' --eval '(mastodon)'") -- mastodon within emacs
, ("C-e v", spawn "emacsclient -c -a '' --eval '(+vterm/here nil)'") -- vterm within emacs
-- emms is an emacs audio player. I set it to auto start playing in a specific directory.
, ("C-e a", spawn "emacsclient -c -a '' --eval '(emms)' --eval '(emms-play-directory-tree \"~/Music/Non-Classical/70s-80s/\")'")