daviwil / emacs-from-scratch Goto Github PK
View Code? Open in Web Editor NEWAn example of a fully custom Emacs configuration developed live on YouTube!
Home Page: https://youtube.com/c/SystemCrafters
An example of a fully custom Emacs configuration developed live on YouTube!
Home Page: https://youtube.com/c/SystemCrafters
I am still building my init.el
based on your great emacs from scratch videos. Now in org-mode
I experience some wired behavior of the SHIFT-TAB key when (un)folding headings in an .org
file.
In some cases SHIFT-TAB creates a M-[ ~ is undefined
message or simply does not work without an error message.
Debian 11
GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)
of 2021-03-28, modified by Debian
Copyright (C) 2020 Free Software Foundation, Inc.
This can be used for reproduction.
;; === Package setup ===
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("elpa" . "https://elpa.gnu.org/packages/")))
(package-initialize)
;; === use-package ==
;; use-package to simplify the config file
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure 't)
(use-package org)
Form a Windows 10 client and its usual command prompt (not PowerShell, not Terminal.app) I log into my machine via SSH and (of course) use emacs in none-gui mode then. TAB works. But SHIFT-TAB produce the M-[ ~ is undefined
error.
Here TAB works. But S-TAB does not. The latter does not produce any error message. There is simply no reaction on that button.
There is a stackoverflow QA for this: https://stackoverflow.com/q/3518846
The solution there does not work for me (Emacs from Debian 11).
This problem is totally out of my scope of understanding. But I am sure you are the one who are able to describe this in a way that even a novice can understand it.
I'm new to EXWM (Noob!) and really enjoyed your Emacs and EXWM series and still learning. I managed to configure most part of polybar but stuck in creating separate panel for each multiple monitors. It would be really helpful, if you assist me with this problem. Thank you!
Hi @daviwil
I just dig into your mu4e configuration videos and I am wondering if you know how we could manage to apply org-mime-htmlize
command to the signature ? I would love to insert HTML signatures automatically but these are excluded from conversion. I tried the following attempts:
(org-mime-mail-signature-separator "")
and use org tags -> OK but still have a ugly -- before my signature(message-signature-separator " ")
: KOI found that the -- insertion is hard coded in message.el file...
Any ideas ? Maybe use a hook to remove the double dashes or whatever
Following the Emacs From Scratch series, when reaching video 5 on org mode.
Using the following code:
` (set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch)
(set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-table nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch))
(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
`
And using the hydra keybinding set in earlier videos, the "toggles" "scale text".
The zoom only affect the variable pitch fonts, the fixed pitch stays the same.
by commenting the above snippet I made the whole text scale together, but there are no fixed-pitch font anymore, which is not what I want.
Any Ideas on how to solve this?
you can see the whole config here
It would be awesome if you could cover the EIN emacs package for editting jupyter notebooks with Emacs, https://github.com/millejoh/emacs-ipython-notebook, in your video series!
The video they have on the main README page demonstrates a more advanced usage of the package when integrating with AWS, but as a beginner user of Emacs, most of it goes over my head. I'd get so much value from a more in depth tutorial, similar to how your usual videos go.
-- OR an alternative method for editing Jupyter notebooks using emacs would be equally awesome.
When calling the function
Line 213 in 1a13fcf
Line 243 in 1a13fcf
Line 239 in 1a13fcf
Adding it as a hook works:
(use-package org
:hook (org-mode .efs/org-mode-setup)
:config
(setq org-ellipsis " ▾")
(add-hook 'org-mode-hook (lambda () ( efs/org-mode-setup))))
This is about your second video "Adding Helpful UI Improvements". (https://www.youtube.com/watch?v=IspAZtNTslY)
At the end I see (e.g. timecode 50:48) the number of the current line is highlighted. But I did not find that in your init.el.
Did I missed something here?
First off, your videos have been immensely helpful. Thank you for taking the time to stream and publish your knowledge.
The subject of this message pretty much says it all. I have a server in my basement that I use for spinning up different VMs and I would be very interested in building a VM as described. I have done some cursory research across the internet, but the main challenge is documentation for this specific setup using GUIX.
I was hoping that you may have some personal experience with something similar and might be able to lend some advice.
If not, completely understandable and I'll count myself fortunate to have even found your videos.
Again, thank you for your hugely valuable contribution and keep up the great work!
Your dotfiles repo README is not detailed enough for me, I would like to know how you set up gnu stow and your system to manage dotfiles.
On the evil-magit
repository page, it says
NOTE [2019-11-24]: This repository is no longer maintained. This package is now a part of evil-collection.
So you can remove evil-magit
from the Emacs config
Hi, thanks for your config and your nice tutorialas. What would be needed to use this configuration without evil mode?
Hi,
This is my first issue, so I hope I'm providing enough information. I am trying to follow the instructions on your (excellent) video on Emacs's auth-source
library, but I'm having trouble with auth-source-search
. When I try to evaluate (auth-source-search :host "smtp.gmail.com")
- which should return results, since my .authinfo.gpg
contains two entries with that hostname - I receive a nil return, and prior to evaluating I get the following message in my echo buffer:
the function ‘auth-source-search’ is not known to be defined.
This is strange to me, since I can call up documentation and navigate to its definition in auth-source.el
. Any ideas what's going on?
Emacs 27.1 on Linux 5.10.2-2-MANJARO
I use golang so i have some keybinding that i'm really used to. At the same time, I really like what you have here, this gives me a chance to understand how init.el works. But after applying what you have, I realized some of the most important keybinding in golang doesn't work for me anymore.
Even though I put this block back in the init.el, when I type "M-.", I still get "previous command was not evil-repeat: evil-forward-char"
How come the local-set-key doesn't take effect?
(defun my-go-mode-hook ()
; Call Gofmt before saving
(add-hook 'before-save-hook 'gofmt-before-save)
; Godef jump key binding
(local-set-key (kbd "M-.") 'godef-jump)
(local-set-key (kbd "M-*") 'pop-tag-mark)
)
(add-hook 'go-mode-hook 'my-go-mode-hook)
Dear David,
I love your orgroam videos. As you said yourself you are not well experienced with orgroam or the Zettelkasten method. That makes the videos very valuable because you describe it from the viewpoint of a novice user. Even the ZK method itself is very good and short described by you. I often link to that.
I really would like to have your opinion and experience with some orgroam-specific features related to a Zettelkasten-workflow. This would be great for a new video.
One of the most confusing and less documented things are the types of tags. There are filetags, project, ROAM_TAGs, no matter what else and mixed up with org tag system also.
I will assemble two questions here that could inspire a new video to the orgroam series.
I want to modify following function such that polybar shows icon of program opened (active) in each workspace for all workspaces.
https://github.com/daviwil/emacs-from-scratch/blob/master/show-notes/Emacs-Desktop-05.org#adding-a-workspace-indicator-to-the-panel
for eg suppose I have following programs active in 4 workspace,
0 : firefox
1: emacs
2: discord
3: terminal
and "0" is active workspace.
So polybar show "0 firfox icon 1 emacsicon 2 discordicon 3 terminalicon"
If icon is not possible, may be plain text based on class of the program should be possible.
For above, I require elisp variable which contains information of currently active program name for each workspace. Can someone help with that.
when i'm coding, with lsp, i see the possible completion. Most of the time, the first one is right. But i still need to do "C-j" to move my cursor to the first one and then hit tab.
I'd like to be able to hit "tab" and automatically select the first one. Is that possible?
I did following:
(1) cloned repo - renamed to .emacs.d/
(2) Loaded missing fonts : cantarell and fonts-firacode
then I ran into this - I am not sure how to fix it:
Debugger entered--Lisp error: (file-missing "Cannot open load file" "No such file or directory" "org-tempo")
require(org-tempo)
eval-buffer(#<buffer load> nil "/home/user1/.emacs.d/init.el" nil t) ; Reading at buffer position 12352
load-with-code-conversion("/home/user1/.emacs.d/init.el" "/home/user1/.emacs.d/init.el" t t)
load("/home/user1/.emacs.d/init" t t)
#f(compiled-function () #<bytecode 0x1e0f4d>)()
command-line()
normal-top-level()
Great elisp tuto...
But, why you do not use "M-x eros-mode" to evaluate your code examples?
It is so practical.
You just need to activate it in the scratch or org buffer where you have your code and instead of going to the end of a sexp expression and hitting "C-x C-e", you can place the point anywhere inside the sexp and hit "C-M x" and you have a beautiful evaluation just after the expression. Like so:
(* 3 4) => 12
et. al.
And you do NOT need to call "ielm"
Also, try to make your fonts presentation with bigger fonts, since lots of people only have access to YT videos through cellphones these days...
Thx, for the Elisp series, anyways
In you first video use-package does not work because according to:
https://github.com/jwiegley/use-package
;; This is only needed once, near the top of the file
(eval-when-compile
;; Following line is not needed if use-package.el is in ~/.emacs.d
(add-to-list 'load-path "<path where use-package is installed>")
(require 'use-package))
(use-package foo)
Otherwise gives an estrange error about bind-key feature missing in a compiled bind-key.elc
(use-package foo)
Line 202 in 5e1f994
Hello David, somebody reviewed my init.el
which comes from your emacs-from-scratch. He told me that there are missing parenthesis in the :bind
section of use-package
.
This is your/my current version.
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
But it should be
:bind
( ([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key)) )
Agree or disagree? What would you say? I have no idea! ;)
My emacs start without any error messages about missing parenthesis.
I got a problem when I try to customize the face for org-mode. It worked for the first time, but when I did eval-buffer
again. It threw an error (error: Invalid face, org-level-1
). And now I cannot find any face related to org in describe-face
. I did some research but still have no idea how to fix it. I hope you can help me with this.
I know you use Ivy and you setup Emacs with Ivy. Can you do a video on Helm and Helm Projectile? I just switched to Helm from Ido and I think the way you explain things is awesome and will be really helpful.
I noticed the comment in Emacs-Tips-08.org about server-after-make-frame-hook
only being called once when using the daemon, but I have not found this to be the case. I tested with Emacs 27.1, and best I can tell it is called on every new frame, just like after-make-frame-functions
(but with minor difference that it does not accept frame
as an argument).
I don't know if you mentioned this on stream, but how did you change the icons for the polybar systray?
Talking about icons for blueman-applet
, nm-applet
, etc.
Thanks in advance.
I like this configuration. However, (and this is just a personal opinion) I think there should be some way of telling Emacs which org file to tangle automagically without it having to have to be inside the ~/.emacs.d
directory.
My reasoning behind this is that I sometimes write literate programs and need this feature and think it's nifty to have when needed. Maybe having a keyword like a file category that tells emacs to tangle the file automagically. For example:
#+TITLE: Some title
#+Category: tangle
I am attempting to follow the mbsync/mu4e series but I find myself running into an error. From my internet searching, it seems this might be related to the Microsoft exchange server not playing nice with mbsync(I am giving my college email the old try). Maybe I have to use offlineimap instead of mbsync? Trying to learn my lesson from my last issue, which is to keep to the KISS method. With that being said, I have copied every step up to the ~/.mbsyncrc template from the video notes of the first email video to my own machine. I know I have the host and user portions correct. I have tried to put in the password as plain text (Pass xxxx) to ensure I am not causing an encryption problem. The CertificateFile location is correct. The rest of the template has been modified accordingly, so I don't think this section is where my problem lies. Like before I will come back to this and see is I can get it to work in the future.
IMAPAccount xxx
Host outlook.office365.com
User [email protected]
Pass xxxxxxxxx
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore xxx-remote
Account xxx
MaildirStore xxx-local
Subfolders Verbatim
Path ~/Mail/Xxx
Inbox ~/Mail/Xxx/Inbox
Channel xxx
Master :xxx-remote:
Slave :xxx-local:
Patterns *
Create Both
SyncState *
This is my error:
~ $ mbsync -a
C: 0/1 B: 0/0 M: +0/0 *0/0 #0/0 S: +0/0 *0/0 #0/0
IMAP command 'AUTHENTICATE PLAIN ' returned an error: NO AUTHENTICATE failed.
C: 1/1 B: 0/0 M: +0/0 *0/0 #0/0 S: +0/0 *0/0 #0/0
Hi Davi,
could you make a video about lsp-java in the near future?
Kind regards
kiwib0y
I dont know if this is right forum for video requests, but can you make a similar video on exwm
and its integration with linux distribution.
from Emacs IDE - Python Development Configuration youtube video
when i try to use revert-buffer or simply open .py file, it gives error like "File mode specification error: (error lisp nesting exceeds 'max-lisp-eval-depth')"
I may be wrong, but according to evil mode's instructions, an undo package should be installed to correctly simulate vim's undo (undo-fu, undo-tree, or emacs 28's undo-redo). Just a (use-package undo-fu)
and (setq evil-undo-system 'undo-fu)
should be enough I think.
Look like you may have missed adding some parts of https://github.com/daviwil/emacs-from-scratch/blob/master/show-notes/Emacs-01.org
Hey David,
an idea came to my mind watching your video on mu4e with org-mode. Wouldn't it be possible to write a hook that asks for you confirmation before running 'org-mime-htmlize'? Kind of a mixture of the two options you presented at the end.
So mu4e would prompt you for "Do you want to run 'org-mime-htmlize' before sending (y/n)"?
I'm sure that is possible possible somehow, i'm just not that well versed in elisp yet to know how to do that. So it would be a learning chance for me as well if someone could show me a solution to that it would be greatly appreciated!
By the way: Thanks a lot for your videos on emacs! Very much enjoyed watching and learning and they really help alot!
Keep it up!
Hi Davi,
Thanks for making these videos. Wanting to jump into emac for a some time now but couldn't find a friendly hand to help. I just finished watch your first video and took the init.el
file and copy and paste into my init.el
. Ran M-x eval-buffer
and getting the following
I decided to copy and paste your file since I get the same error with mine.
Error (use-package): Failed to install doom-modeline: https://melpa.org/packages/all-the-icons-20210425.1035.tar: Not found
Error (use-package): doom-modeline/:init: Symbol’s function definition is void: doom-modeline-mode
Error (use-package): Cannot load doom-modeline
There are very few videos on Hyperbole and it offers many unique capabilities different from Org mode, so it could be fun and enlightening.
This is about this section of your great docu.
https://github.com/daviwil/emacs-from-scratch/blob/master/show-notes/Emacs-Scratch-12.org#tweaking-the-garbage-collector
The default value currently is 800000
. Now one knows if and when this would be modified.
Wouldn't it be better to read and remember/backup the default value on the top of the init.el file and store it back at the end.
Sound simple but not for a beginner. I have no idea how to do this in Lisp.
I just wanted to share this set of tools by Microsoft called PowerToys. It has a utility especifically for remapping keys aswell as shurtcuts. It's pretty neat since one can easily undo this changes. Hope someone finds this useful.
I leave the link to its github page here
I noticed currently we have our counsel and helpful bindings set in a particular way. I'm wondering if it would be meaningful to move the remap for describe-function
and describe-variable
out of the helpful package definition and into counsel.
FROM
(use-package counsel
:bind (("C-M-j" . 'counsel-switch-buffer)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(counsel-mode 1))
(use-package helpful
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
TO
(use-package counsel
:bind (("C-M-j" . 'counsel-switch-buffer)
([remap describe-function] . counsel-describe-function)
([remap describe-variable] . counsel-describe-variable)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(counsel-mode 1))
(use-package helpful
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-command] . helpful-command)
([remap describe-key] . helpful-key))
Just a thought. Since we don't need helpful in order to have the counsel bindings still be meaningful.
At the 7th part there was mention of org-templates package which is apparently missing from resulting org configuration.
Still found it here: https://github.com/daviwil/dotfiles/blob/master/Emacs.org#block-templates
P.S. thanks for awesome videos
As a long time emms user on portacle, I find myself running into a unique problem. My machine now runs Ubuntu fresh out of the box as well as a build of the desktop environment described in this video series. After loading an up to date version of emms, music files load perfectly well into an emms playlist buffer. However, in playing any one of these files, the minibuffer returns something like "mpv not working: ipc error". I know that we make a call to dbus prior to running emacs in start-exwm.sh, and that there was mention of its use in ipc communications. Is there some hack to correct for what seems to be a communication error? Looking through the internet, I also found this https://lists.gnu.org/archive/html/emms-help/2018-06/msg00000.html talking about the same error.
Ill admit, I am a (emacs) coder by hobby, and a long time user of org/ledger/emms. Hopefully the answer isn't right in front of my face and I am simply missing it. Thanks for any advice!
Hi there,
Thanks for this great series. When I start emacs with your init.el based on episode #1, ivy-mode does not get toggled automatically. I need to toggle ivy-mode through M-x before its enabled.
Shouldn't it be enabled by default on startup or am I doing something wrong? I have used the init.el from your repo so I shouldn't have any differences on my side and I'm running emacs 27.1.
Might want to install all-the-icons package. Think you have the fonts available from your main installation but they might not be installed one new users machines.
Something like this should work:
(use-package all-the-icons
:if (display-graphic-p)
:commands all-the-icons-install-fonts
:init
(unless (find-font (font-spec :name "all-the-icons"))
(all-the-icons-install-fonts t)))
(use-package all-the-icons-dired
:if (display-graphic-p)
:hook (dired-mode . all-the-icons-dired-mode))
🎉 :check:
Just posting this here incase anyone bumps into it, but if you're wanting things like desktop notifications you need to remove the dbus-launch
call as it doesn't seem to pass forward the variable on systemd distros (at least for me, YMMV)
Linux zenith 5.9.14-arch1-1 #1 SMP PREEMPT Sat, 12 Dec 2020 14:37:12 +0000 x86_64 GNU/Linux
(use-package dired
:ensure nil
:commands (dired dired-jump)
:bind (("C-x C-j" . dired-jump))
:custom ((dired-listing-switches "-agho --group-directories-first"))
:config
(evil-collection-define-key 'normal 'dired-mode-map
"h" 'dired-single-up-directory
"l" 'dired-single-buffer))
Started emacs with config above:
Error (use-package): dired/:config: Symbol’s function definition is void: evil-collection-define-key
But it worked using C-x C-e
I've watched the first two videos in the Emacs from Scratch series and can't get the rainbow-delimiters
package to work. The below configuration is based on the things covered in the first two videos:
(setq inhibit-startup-message t)
(scroll-bar-mode -1) ; Disable visible scrollbar
(tool-bar-mode -1) ; Disable the toolbar
(tooltip-mode -1) ; Disable tooltips
(set-fringe-mode 10) ; Give some breathing room
(menu-bar-mode -1) ; Disable the menu bar
;; Set up the visible bell
(setq visible-bell t)
(set-face-attribute 'default nil :font "Menlo" :height 160)
;; Make ESC quit prompts
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
;; Initialize package sources
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("elpa" . "https://elpa.gnu.org/packages/")))
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
;; Initialize use-package on non-Linux platforms
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
(column-number-mode)
(global-display-line-numbers-mode t)
;; Disable line numbers for some modes
(dolist (mode '(org-mode-hook
term-mode-hook
eshell-mode-hook))
(add-hook mode (lambda () (display-line-numbers-mode 0))))
(use-package ivy
:diminish
:bind (("C-s" . swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-k" . ivy-previous-line)
("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
;; Run the below command first
;; M-x all-the-icons-install-fonts
(use-package all-the-icons)
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1)
:custom ((doom-modeline-height 15)))
(use-package doom-themes
:init (load-theme 'doom-dracula t))
(use-package rainbow-delimiters
:hook (prog-mode . rainbow-delimiters-mode))
(use-package which-key
:init (which-key-mode)
:diminish which-key-mode
:config
(setq which-key-idle-delay 0.2))
(use-package ivy-rich
:init
(ivy-rich-mode 1))
(use-package counsel
:bind (("M-x" . counsel-M-x)
("C-x b" . counsel-ibuffer)
("C-x C-f" . counsel-find-file)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history)))
(use-package helpful
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
I've done M-x eval buffer
multiple times but dont see any changes.
(dolist (face '((org-level-1 . 1.2)
(org-level-2 . 1.1)
(org-level-3 . 1.05)
(org-level-4 . 1.0)
(org-level-5 . 1.1)
(org-level-6 . 1.1)
(org-level-7 . 1.1)
(org-level-8 . 1.1)))
(set-face-attribute (car face) nil :font "Cantarell" :weight 'regular :height (cdr face)))
when I evaluate this code, emacs doesn't complain but when I load a new instance of emacs it gives me an error of: error: Invalid face, org-level-1
.
emacs version : 27.1, org version: 9.3
I'll preface by saying I don't actually use your configuration; this might seem like a useless issue then, but I've attempted using yours to the same results.
When initially opening an external X program (let's say Nyxt browser, or Spotify, or Alacritty,) Emacs entirely freezes. This usually lasts about ten to fifteen seconds. I cannot switch workspaces, use any keys (such as M-x
or C-x
), and interact with buffers. The contents of buffers do still update however, and music still plays.
I had previously been using async-run-command
(or a similar name), but have also tried helm-exwm (helm-run-external-command
), dmenu
(the Emacs one,) and finally your run-in-background
command. All result in this freezing.
If this is just the nature of the single-threaded-ness of Emacs, I'm completely fine with it, the productivity gain and keybindings are worth the wait. If it isn't, and something wrong with my configuration, then I'd love to fix it and have this issue/documented for future people who might have the issue.
Thank you in advance! I haven't been able to create a "minimal reproducible example" since it happens even with EXWM and no configuration (which leads me to believe it is just an EXWM thing.) I'd just like to hear if other people experience this as well!
In the Emacs.org in this repo, you say
I am using the Fira Code and Cantarell fonts for this configuration which will more than likely need to be installed on your machine.
But when I run pacman -R cantarell-fonts on my system, I get
error: failed to prepare transaction (could not satisfy dependencies) :: removing cantarell-fonts breaks dependency 'cantarell-fonts' required by gsettings-desktop-schemas :: removing cantarell-fonts breaks dependency 'cantarell-fonts' required by gtk3
Meaning that pretty much everyone will have the Cantarell fonts as everyone will probably have gtk3 installed on their system.
Dear David,
thanks a lot for your valuable work. What makes your Emacs content special is your way to explain things for absolute novices and professionell at the same time. I have not found that anywhere.
I am still at your Nr.6 video "Organizing Your Life with Org Mode" and also poked into some others. Maybe there still is a video taking my topic into account?
There are some technical detailed questions in my mind but backing them together would be a nice topic for a new video. I think you still discussed some aspects of it in some videos but not all together. The topic could be described as How to configure Emacs appearance independent from the used display and terminal/gui mode.
I use Emacs (I mean sharing the same init.el
) on different "systems" and "displays" - sometimes direct/local, sometimes via remote desktop (XRDP) and SSH etc. It is very colorful. In that cases I often have problems with font size, screen resolution and DPI.
Btw: Via SSH and XRDP most of the time the Emacs runs on a headless RapsberryPi 4 with Debian 11 and XFCE. Sometimes I also connect to the first machine (1920-1200 24-inch monitor) via XRDP or SSH from the ThinkPad Laptop.
So you see my problems? ;) I even do not fully understand the interplay between resolution and DPI. And what does Emacs know about my "display" and about the "terminal" or "X" currently using.
Technical questions in detail
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.