From fc0c795c4e472e26aab40d3d9d0fbadaa1664d74 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Tue, 29 Sep 2020 10:10:24 +0100 Subject: Debug failed Emacs initialization My newly minted macro for defining monitors introduced two bugs: 1. Laptop defined its position in terms of 4k-horizontal and 4k-horizontal defined its position in terms of laptop, I introduced a circular dependency. 2. The identifier, `laptop-monitor`, which `window-manager.el` depends on, is now defined as `laptop`. A friendly reminder to myself to always test new Emacs builds to make sure that everything can initialize properly. This is something that my CI should be automating, but ever since I moved flats, I lost my CI and need to restore it. This is another reminder to drop into a TTY when Emacs fails to initialize, run `nix-env --rollback`, then attempt to restart X. But this time, debugging this entirely from a TTY wasn't so disappointing. --- emacs/.emacs.d/wpc/display.el | 11 ++++++++--- emacs/.emacs.d/wpc/window-manager.el | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/emacs/.emacs.d/wpc/display.el b/emacs/.emacs.d/wpc/display.el index f478619c702b..56f16e3e0c47 100644 --- a/emacs/.emacs.d/wpc/display.el +++ b/emacs/.emacs.d/wpc/display.el @@ -54,10 +54,14 @@ See the man-page for xrandr for more details." (prelude-start-process :name ,(format "display-enable-%s" name) :command ,(format - "xrandr --output %s --%s --%s %s --auto --size %dx%d --rate %0.2f --dpi %d --rotate %s" + "xrandr --output %s --%s %s --auto --size %dx%d --rate %0.2f --dpi %d --rotate %s" output (if primary "primary" "noprimary") - (car position) (eval (cadr position)) + (if position + (format "--%s %s" + (car position) + (eval (cadr position))) + "") (car size) (cadr size) rate dpi @@ -71,10 +75,11 @@ See the man-page for xrandr for more details." "xrandr --output %s --off" output))))) +;; I'm omitting the position argument to avoid a circular dependency between +;; laptop and 4k-horizontal. (display-register laptop :output "eDP1" :primary nil - :position (below display-4k-horizontal) :size (3840 2160) :rate 30.0 :dpi 144 diff --git a/emacs/.emacs.d/wpc/window-manager.el b/emacs/.emacs.d/wpc/window-manager.el index 19d4d70b4185..90d485ade7f9 100644 --- a/emacs/.emacs.d/wpc/window-manager.el +++ b/emacs/.emacs.d/wpc/window-manager.el @@ -103,7 +103,7 @@ (exwm-randr-enable) (setq exwm-randr-workspace-monitor-plist (list 0 display-4k-horizontal - 1 display-laptop-monitor + 1 display-laptop 2 display-4k-vertical)) (evil-set-initial-state 'exwm-mode 'emacs) -- cgit 1.4.1