aboutsummaryrefslogtreecommitdiff
path: root/modules/font-config.el
Commit message (Collapse)AuthorAgeFilesLines
* fix(font-config): theme-aware browser labels and daemon-safe emoji fontsetCraig Jennings11 days1-12/+23
| | | | | | Two font-config robustness fixes. The font-browser (cj/display-available-fonts) hardcoded a "Light Blue" foreground for each family label, which goes nearly unreadable on a light theme. I switched it to font-lock-keyword-face so the label follows the theme's contrast, keeping it bold. The emoji-fontset cond ran once at module load behind (env-gui-p). In daemon mode there's no GUI frame at load, so env-gui-p is nil and the fontset never gets set — a later emacsclient -c GUI frame then has no emoji font. I wrapped it in cj/setup-emoji-fontset (GUI-guarded, idempotent) and, mirroring how the fontaine preset is already applied, run it from server-after-make-frame-hook in daemon mode and directly otherwise. The daemon TTY-then-GUI path can't be exercised in batch, so I left a manual-test entry for it.
* docs(load-graph): classify UI and core-UX modulesCraig Jennings12 days1-1/+10
| | | | | | Fourth classification batch: the modules that shape the first interactive frame — ui-config, ui-theme, ui-navigation, font-config, selection-framework, modeline-config, mousetrap-mode, popper-config, dashboard-config, nerd-icons-config. I annotated each header, added a Batch 4 table to the inventory, and extended the validation allowlist. 33 of 102 modules are now classified. These mostly stay eager: each has a real first-frame reason (theme, font, modeline, completion stack, landing page). No new hidden dependencies. popper-config carries the spec's open question about its enabled/disabled state, noted for the deferral phase.
* chore(modules): pass validate-modules in batch by adding requiresCraig Jennings2026-05-071-0/+1
| | | | | | | | `make validate-modules` had 19 module-load failures, all the same shape: a module references a symbol or feature owned by another module without saying so. Production was fine because init.el orders requires correctly. The batch target loads each module in isolation, though, and surfaces the gap. I added explicit `(require 'keybindings)` or `(require 'user-constants)` to each affected module. The requires are idempotent at runtime, so production load order is unchanged. For three optional packages (elpa-mirror, mu4e, org-contacts), I switched to `(require 'X nil t)` so the modules load cleanly when those packages aren't installed. The activation calls become no-ops in that case. `make validate-modules` now reports 0 failures.
* fix: restore daemon icons and consolidate nerd-icons setupCraig Jennings2026-05-071-6/+0
| | | | | | | | | | I replaced the load-time icon-stub block in keyboard-compat with per-call :around advice that checks display-graphic-p against the rendering frame. The old block ran at module-load. Under daemon startup no frame exists yet, so display-graphic-p returned nil and the empty-string stubs installed permanently. Every GUI client connecting to that daemon then saw blanks. The new shape lets one daemon serve real icons to GUI clients and blanks to terminal clients. I also pulled the nerd-icons-completion and nerd-icons-ibuffer integrations, the package install, and a new tint helper into modules/nerd-icons-config.el. Per-feature use stays in the consuming module (dashboard, dirvish, keyboard-compat). The malformed cons-cell on the marginalia hook in selection-framework.el got fixed in the move. Added a default darkgoldenrod tint, a :filter-return advice on nerd-icons-icon-for-dir so dir icons pick up a color face, and a buffer-local face-remap in dired-mode-hook so plain files in dired render in shadow grey. 13 tests across 3 new files cover the per-call gate, the dir-color helper (idempotent under nerd-icons' memoized return strings), and the bulk-tint helper.
* chore: stop emojifying org-mode buffersCraig Jennings2026-05-041-2/+1
|
* docs(font): sync font-config module header with current codeCraig Jennings2026-04-221-3/+5
| | | | Several lines in the header were stale. The default preset is BerkeleyMono, not FiraCode, and the height is now machine-dependent (120 on laptops, 140 on desktops). The default preset's variable-pitch font is Lexend. Merriweather is only the fallback for unnamed presets. The fontaine preset keybinding is M-S-f, not M-F. The emoji bindings (C-c E i, C-c E l) weren't listed.
* feat(font): set default font height per machineCraig Jennings2026-04-221-2/+2
| | | | | | The default fontaine preset now picks its height based on `env-laptop-p`. Laptop: 120 (12pt). Desktop: 140 (14pt), matches foot's `size=14`. Text reads at the same size across Emacs and the terminal. This reuses `env-laptop-p` from `host-environment.el` instead of adding a gitignored local override.
* style(font): set default and fallback font heights to 120Craig Jennings2026-04-201-2/+2
| | | | Default preset (BerkeleyMono) 140→120, fallback preset (FiraCode) 110→120.
* fix(font): prevent HarfBuzz SIGSEGV crash on emoji in mu4e headersCraig Jennings2026-02-091-0/+24
| | | | | | | | Emacs 30.2 + HarfBuzz 12.3.2 segfaults when arabic-shape-gstring is called on emoji characters during mu4e header rendering. Disable Arabic composition ranges, set inhibit-compacting-font-caches, and disable auto-composition in mu4e-headers-mode. Remove duplicate bidi settings from system-defaults.el (already in early-init.el).
* style(font): increase default height to 140Craig Jennings2026-02-011-1/+1
| | | | Better readability at current display scaling.
* fix(font-config): update font settings and fix env-gui-p callCraig Jennings2026-01-261-3/+3
| | | | | | - Change default font to BerkeleyMono Nerd Font - Increase default height from 110 to 130 - Fix env-gui-p call (remove unused frame argument)
* fix(terminal): add console/mosh compatibilityCraig Jennings2026-01-231-15/+18
| | | | | | | | - Create terminal-compat.el for arrow key escape sequences - Fix M-uppercase keybindings (M-O → M-S-o, etc.) that conflicted with terminal escape sequences ESC O A/B/C/D - Add GUI-only guards for emojify and icon rendering - 18 keybindings updated across 13 modules with override comments
* feat(fonts): Update fonts to Berkeley Mono + Lexend, simplify org-drill configCraig Jennings2025-11-121-2/+2
| | | | | | | | | | | | | | | | Font changes: - Set Berkeley Mono + Lexend as default fonts - Updated EBook preset to use Lexend - Created FiraCode preset preserving old defaults - Installed new fonts: Charis SIL, Bitstream Vera, Literata, Lexend Org-drill changes: - Removed fontaine-dependent font switching code - Now uses org-drill's built-in display management - Configured 24-point font, variable-pitch, hidden modeline - Added comprehensive tests for display management (10 tests, all passing) org-drill now loads from local ~/code/org-drill for development.
* feat(fonts): Update default fonts to Berkeley Mono + LexendCraig Jennings2025-11-121-3/+10
| | | | | | | | | | | | Changed default fontaine preset to use Berkeley Mono for fixed-pitch and Lexend for variable-pitch reading. Lexend is specifically designed to improve reading fluency and reduce visual stress for long-form reading. Changes: - Default preset: Berkeley Mono + Lexend - New FiraCode preset: Preserves old defaults (FiraCode + Merriweather) - New BerkeleyMono preset: Berkeley Mono + Charis SIL - Installed fonts: Charis SIL, Bitstream Vera, Literata, Lexend
* feat:which-key: Add descriptive labels for custom keymapsCraig Jennings2025-10-271-0/+7
| | | | | | | | | | | | Enhance which-key integration by providing detailed descriptions for new key bindings across multiple modules. This improves the usability of custom keymaps by clarifying the purpose of each keybinding, making it easier for users to navigate and understand different menus and options available within the configuration. This update ensures that all custom keymaps now display a descriptive label in the which-key popup to explain their functionality, aiding users in identifying keymap purposes promptly.
* chore: Remove redundant autoload directives from modulesCraig Jennings2025-10-261-2/+0
| | | | | | | Remove unnecessary autoload directives from various functions across multiple modules, cleaning up the codebase and improving readability. These directives were redundant and not needed for the current project setup.
* refactor:dirvish: Remove redundant nerd-icons setupCraig Jennings2025-10-251-0/+6
| | | | | Move the `nerd-icons` setup from `dirvish-config.el` to `font-config.el` to consolidate icon configurations.
* refactor:font-config: update font settings and keybindingsCraig Jennings2025-10-231-9/+10
| | | | | | Add EBook font setting with specified weight and height. Change global keybinding functions to keymap-global-set for better clarity and maintainability.
* changing repositoriesCraig Jennings2025-10-121-0/+283