Giter Club home page Giter Club logo

emacs-from-scratch's Issues

Org-mode: SHIFT-TAB not working in Windows-SSH-shell or Debian-tty (sometimes "M-[ ~ is undefined")

Introduction

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.

Problem

In some cases SHIFT-TAB creates a M-[ ~ is undefined message or simply does not work without an error message.

System

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.

Minimal init.el

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)

Description of the behavior in multiple cases

Windows SSH-terminal

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.

A tty terminal (Debian 11)

Here TAB works. But S-TAB does not. The latter does not produce any error message. There is simply no reaction on that button.

Cases in where it is NOT reproducable

  • Gui mode in XFCE session on Debian 11
  • Terminal emulator (terminator) in a XFCE session on Debian 11
  • SSH terminal from Debian 11

Sidenotes

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.

[Question] Polybar on dual monitor?

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!

Customize mu4e signature

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:

  • Define my signature using html tags -> KO
  • Define my signature using org tags -> KO
  • Define my signature using org tags and remove the two dashes -> OK
  • Customize (org-mime-mail-signature-separator "") and use org tags -> OK but still have a ugly -- before my signature
  • Customize (message-signature-separator " ") : KO

I found that the -- insertion is hard coded in message.el file...
Any ideas ? Maybe use a hook to remove the double dashes or whatever

fixed-pitch fonts don't scale in org mode

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

Video request: Emacs EIN package

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.

Calling function within :config does not affect the font setup at startup

When calling the function

(defun efs/org-font-setup ()
within the :config-realm
(efs/org-font-setup))
it didn't affect the fonts when opening a (new) org-file. When evaluating
(use-package org
after startup, font behaviour changed as intended.

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)))) 

Using GUIX on a VM and using SSH + X11 + EXWM

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!

Evil Magit no longer mainained

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

Config without evil

Hi, thanks for your config and your nice tutorialas. What would be needed to use this configuration without evil mode?

the function ‘auth-source-search’ is not known to be defined.

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

local-set-key doesn't work anymore?

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)

Extension of orgroam videos: Tags

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.

  1. What are the consequences of that tags respecting to other features (searching, filter, org-ui, ...)?
  2. Which tags should be use for the ZK method?

exwm show icon of program open in polybar for each workspace

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.

"No such file or directory" "org-tempo"

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()

eros-mode

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

use-package

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)

bind: takes a list

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.

Unable to customize the org face

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.

server-after-make-frame-hook called on every frame

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).

Polybar systray icons

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.

Org tangle needs to be automatic for more than just emacs configuration

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

email problems with microsoft exchange

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

Python Lisp mode emacs

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')"

Add undo-fu for evil mode

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.

Automatically run org-mime-htmlize a different way

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!

Error Installing doom-modeline with first init.el

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

Use chemacs to separate emacs profile

You can use chemacs package to complelely seperate runmacs config folder from yr default emacs.d folder. That way it wont show any packages installed for default config in the runmacs.

I actually use separate exwm profile with only exwm config using chemacs.

improve "Tweaking the garbage collector"

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.

Recommendation: Remap CapsLock Key on Windows: Alternative

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

Counsel - Bindings (Not helpful)

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.

emms mpv/ipc error

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!

ivy-mode not enabled on startup

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.

all-the-icons

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))

dbus-launch might cause problems

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

Symbol’s function definition is void #dired #evil-collection

(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

Rainbow Delimiters Package Doesn't Work

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.

invalid face: org-level-1

(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

EXWM freezing when initially opening up an application

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!

Update Cantarell install instruction in Emacs.org

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.

System/Display depended themeing and font config

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.

  • direct: Debian 11, with 1920x1200 24-inch monitor
  • via SSH: Lenovo ThinkPad Laptop with a 1920x1080 inbuild 14-inch display
  • via XRDP ("use client resolution"): The same ThinkPad
  • via SSH: The ThinkPad but connected to a ThinkVision 27-inch display with 2560x1440 resolution
  • via XRDP ("use client resolution"): The ThinkPad connected to the ThinkVision monitor

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

  • How to find out the relevant display informations in Emacs?
  • How to find out if I am on terminal or gui mode?
  • How to find out if I am via SSH, tty or terminal-emulation in X?
  • How to configure fonts (face, size, other parameters) depending on that informations?
  • How to use different themes depending on SSH, tty, term-emu or GUI mode?
  • And if there are mode-specific font/theme settings (like you used in your org-mode video): How to take that into account?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.