aboutsummaryrefslogtreecommitdiff
path: root/modules/dirvish-config.el
Commit message (Collapse)AuthorAgeFilesLines
* feat(ui): name the operation in completing-read promptsCraig Jennings3 days1-1/+1
| | | | | | | | A picker prompt is the last thing shown before a command commits, so a bare noun leaves a mis-keyed command ambiguous. Hitting C-f8 (project agenda) instead of C-f9 (AI-vterm picker) gave the same "Project:" prompt with no signal which one was about to run. Reworded 17 prompts across 8 modules so each names the operation rather than just the thing being chosen: "Project:" becomes "Show agenda for project:", "F6:" becomes "Run tests:", the dwim-shell sub-prompts gain their context (checksum algorithm, PDF compression quality, text-to-speech voice, run dwim-shell command), the two contact pickers split into "Find contact:" and "Insert contact email:", and the dirvish ediff, org finalize, and custom-comments length/box-style prompts get the same treatment. I audited all ~124 completing-read / read-* call sites; the rest already named their operation and were left alone. These are prompt-string changes only, no logic touched.
* docs(load-graph): classify domain, integration, and optional modulesCraig Jennings12 days1-1/+10
| | | | | | | | | | Eighth classification batch: 17 domain/integration/optional modules — ai-config, ai-vterm, browser-config, calendar-sync, calibredb-epub-config, chrono-tools, dirvish-config, dwim-shell-config, erc-config, eshell-config, eww-config, flyspell-and-abbrev, games-config, gloss-config, httpd-config, jumper, latex-config. I annotated each header, added a Batch 8 table to the inventory, and extended the validation allowlist. 82 of 102 modules are now classified. Almost all are eager only by init order and become command/hook/mode-loaded. calendar-sync stays eager when its .local.el is present. One new hidden dependency: calendar-sync guards its C-; g registration with a boundp shim and doesn't require keybindings, so the binding drops standalone. I deferred elfeed-config rather than annotate it. Its header edit triggers byte-compilation, and the existing tests only pass when the module loads as interpreted source — the compiled cj/elfeed-process-entries inlines an elfeed struct accessor the stubs can't intercept, and the batch test environment has no elfeed package to build real structs. It needs its tests rewritten first, recorded in the inventory and a new todo task. Also made the header allowlist scoping test durable: it used games-config (now classified) as its unclassified example; switched to a sentinel name plus a duplicate-entry guard.
* fix(dirvish): guard nil file and reject path-traversal playlist namesCraig Jennings14 days1-12/+25
| | | | | | cj/set-wallpaper passed `(dired-file-name-at-point)` straight to `expand-file-name`, so running it with no file at point raised a bare `wrong-type-argument` instead of a clear error. cj/dired-create-playlist-from-marked expanded the raw playlist name under `music-dir` without checking it, so a name like "../foo" or "/etc/foo" would write outside the music directory. I added a nil-file guard to set-wallpaper and a `cj/--playlist-name-safe-p` check that rejects any name carrying a directory separator before the path is built. Both paths now fail cleanly with a user-error. Regression tests went into the existing wrapper and playlist test files.
* fix(dirvish): declare runtime constant/util deps with plain requireCraig Jennings14 days1-2/+2
| | | | | | dirvish-config builds `dirvish-quick-access-entries` from `code-dir`, `music-dir`, `pix-dir`, and the recording dirs at load time, and binds keys to `cj/xdg-open` and `cj/open-file-with-command`. Those come from user-constants and system-utils, but the module only required them under `eval-when-compile`, so the compiled module carries no runtime require and leans on init order having loaded them first. I switched both to plain requires, matching host-environment, system-lib, and external-open-lib right below. Added a dependency-contract smoke test that fails if the requires are dropped.
* feat(dirvish): start org-drill on the .org file at point with SCraig Jennings2026-05-121-1/+17
| | | | | | `S` ("study") in `dirvish-mode-map` opens the `.org` file at point and runs `cj/drill-this-file` on it, so I can drill any deck straight from the file list. It `user-error`s on no file, on a directory, or on a non-`.org` file. `D` and `O` were already taken (duplicate-file, open-with-command), so I went with `S`. It shadows dired's `dired-do-symlink`, which I never use from dirvish and which stays on `M-x` anyway. New `tests/test-dirvish-config-drill.el`: 6 ERT tests with `dired-get-filename`, `find-file`, and `cj/drill-this-file` mocked. I also fixed the stale `P` line in the module commentary — `P` is the print command now, not copy-path.
* feat(dirvish): print the file at point with PCraig Jennings2026-05-121-1/+47
| | | | | | `P' in dirvish/dired now runs `cj/dirvish-print-file': it sends the file at point to the default printer via CUPS (`lp', falling back to `lpr'), after a confirmation prompt. It refuses directories and file types outside `cj/dirvish-print-extensions' (pdf, txt, org, images, source files, ...). CUPS filters handle PDFs directly, so `lp <file>' covers everything in the list, and no separate print dialog is needed. `P' was the project/home-relative variant of `cj/dired-copy-path-as-kill', now dropped (the `p' absolute-path and `l' org-link bindings stay, and `M-x cj/dired-copy-path-as-kill' still works). Plain dired's built-in `P' was `dired-do-print', which `dirvish-mode-map' had already shadowed, so this just replaces it with a type-aware version. Tests cover the predicates and the command's confirm / decline / no-file / directory / non-printable / no-printer / print-failure paths.
* refactor(external-open): extract external-open-lib for shared helpersCraig Jennings2026-05-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Same shared-helpers split-pattern that ai-vterm/vterm-config use through cj-window-toggle-lib and that calendar-sync uses through cj-org-text-lib. Pull the two pure dispatch helpers out of the external-open feature module into a sibling library so consumers that only need the dispatch don't have to require the whole feature. New `modules/external-open-lib.el' carries: - `cj/external-open-command' - `cj/external-open-launcher-p' `modules/external-open.el' stays as the feature module: the `default-open-extensions' defcustom, the `find-file' advice (`cj/find-file-auto'), and the interactive commands (`cj/xdg-open', `cj/open-this-file-with'). It now requires external-open-lib for the dispatch helpers. Migrate consumers: - system-utils.el used to require `external-open' for `cj/external-open-launcher-p' alone -- now requires `external-open-lib' directly. - dirvish-config.el calls `cj/external-open-command' from `cj/dirvish-open-file-manager-here' -- add an explicit `(require \='external-open-lib)'. Test files renamed to match the system-lib naming pattern (test-<library>-<feature>.el): - test-external-open-command.el -> test-external-open-lib-command.el - test-external-open-launcher-p.el -> test-external-open-lib-launcher-p.el No behavior change.
* refactor(external-open): consolidate OS-open dispatch in external-open.elCraig Jennings2026-05-101-18/+2
| | | | | | | | | | | | | | | | Phase 4 of utility-consolidation. Three previously-overlapping helpers (system-utils' `cj/identify-external-open-command' and `cj/--open-with-is-launcher-p', plus the dirvish-only `cj/--file-manager-program-for' shipped earlier today) all answered "which OS-open program should I run?". Pull the answer into one place: external-open.el. Move and rename: - `cj/--open-with-is-launcher-p' (system-utils) -> `cj/external-open-launcher-p' (external-open). Public name now matches its module. - `cj/identify-external-open-command' (system-utils) -> `cj/external-open-command' (external-open). Returns nil for unsupported hosts instead of signaling -- callers that need a command must handle nil explicitly. The wrapper `cj/xdg-open' (also moved into external-open) converts nil to a `user-error' with a clear message, preserving the user-facing failure shape. - Delete dirvish's `cj/--file-manager-program-for' helper. `cj/dirvish-open-file-manager-here' now calls `cj/external-open-command' directly. The shell-command fallback for nil-program preserves the previous escape hatch. Break the system-utils <-> external-open recursive require by moving `cj/xdg-open' (the only system-utils function that external-open used) into external-open along with the dispatch. Tests reorganized to match the move. Two new test files (`test-external-open-command.el', `test-external-open-launcher-p.el') replace the two system-utils-named test files. The dirvish file-manager-program test goes away with the helper. 11 tests covering Normal/Boundary/Error for the dispatch (plus the new "unsupported host returns nil" contract). Add `(require \='external-open)' to system-utils.el and `(require \='system-lib)' to external-open.el (for `cj/file-from-context' which xdg-open uses).
* refactor(dirvish): use cj/executable-find-or-warn in cj/set-wallpaperCraig Jennings2026-05-101-10/+9
| | | | | | | | Migrate `cj/set-wallpaper' to the new helper. The old code messaged a bare `"%s not found"' when feh or swww was missing -- the helper produces a better message ("feh not found; wallpaper setter unavailable") that lands in *Warnings* instead of flashing once in the echo area. Add `(require \='system-lib)' to dirvish-config.el per the Phase 2 exit criterion. Audit notes for the other `executable-find' call sites in prog-shell, prog-c, prog-go, prog-python, browser-config: all silent `:if' / LSP-availability checks (spec says keep silent), or interactive commands with platform-specific install hints in their existing messages (`shellcheck`, `mypy`, `delve`). Migrating those would lose the install hints; leaving them.
* refactor(dirvish): extract cj/--dired-line-is-directory-pCraig Jennings2026-05-101-2/+15
| | | | | | `cj/dired-mark-all-visible-files' classified the current line as a directory via `(looking-at "^. d")' inline. Lift the classification into `cj/--dired-line-is-directory-p', a string predicate that takes a line and returns non-nil when it's a directory listing. The wrapper still walks the dired buffer line by line and calls `dired-mark' -- that iteration is dired-coupled and stays untested -- but the format-aware predicate is now isolated and verified. Six Normal/Boundary tests cover unmarked directories, marked directories (`*' prefix), regular files (`-' instead of `d'), symlinks (`l'), empty lines, and dired header lines (` /path:' and ` total N').
* refactor(dirvish): extract cj/--html-file-p; match HTML case-insensitivelyCraig Jennings2026-05-101-1/+10
| | | | | | `cj/dirvish-open-html-in-eww' inlined a `string-match-p' against `\.html?\=' to decide whether to hand a file to eww. The check was case-sensitive, so `.HTML' fell through to the "Not an HTML file" message even though every browser treats it as HTML. Lift the predicate into `cj/--html-file-p' and bind `case-fold-search' to t so uppercase and mixed-case extensions match. The trailing-`\=' anchor stays so files like `html-thing.org' still don't match. Seven Normal/Boundary/Error tests cover lowercase `.html', `.htm', uppercase `.HTML', mixed-case `.Html', embedded `html' (no match), non-html extensions (no match), and no-extension files (no match).
* refactor(dirvish): extract cj/--ediff-pair-from-files; fix 0-files crashCraig Jennings2026-05-101-17/+36
| | | | | | | | `cj/dired-ediff-files' had its pair-determination logic inline: count check, prompt fallback when only one file was marked, and the older-first ordering for `ediff-files'. Lift it into `cj/--ediff-pair-from-files' -- pure given the file list, an injected prompt thunk, and a newer-than-p comparator -- so tests stay independent of mtimes and the dired prompt. While extracting, surface a latent bug: with zero marked files the original code fell through to `(file-newer-than-file-p nil nil)' and crashed with a wrong-type-argument error. Replace the crash with a clear `user-error' ("No files marked"), and add a regression test. The 3+ files case keeps its existing user-error message. Five Normal/Boundary/Error tests cover both ordering directions, the one-file prompt path, and both error counts.
* refactor(dirvish): extract playlist filter and sanitize helpersCraig Jennings2026-05-101-14/+24
| | | | | | | | | `cj/dired-create-playlist-from-marked' had its audio-file filtering and trailing-`.m3u' stripping inline among the dired marking, prompting, overwrite-loop, and file-write logic. Lift each into its own pure helper: - `cj/--playlist-filter-audio (files extensions)' returns only files whose extension matches one of EXTENSIONS (lowercase, no dot). Case-insensitive on the file side. - `cj/--playlist-sanitize-name (name)' strips a trailing `.m3u' suffix; embedded `.m3u' that isn't at the end is preserved. Ten Normal/Boundary tests cover keep-only-audio, case-insensitivity, files-without-extension excluded, empty inputs, and the sanitize edge cases (bare name, embedded `.m3u', empty string, just `.m3u').
* refactor(dirvish): extract cj/--file-manager-program-for helperCraig Jennings2026-05-101-15/+22
| | | | | | `cj/dirvish-open-file-manager-here' had its platform-dispatch -- xdg-open / open / explorer / shell fallback -- inline as a four-arm cond branching on `executable-find' and `system-type'. Lift the choice into `cj/--file-manager-program-for', a pure function from (HAS-XDG-OPEN-P SYSTEM-TYPE) to a program-name string or nil. The wrapper resolves the live values, asks the helper, and either calls the program or falls back to a shell-command. Six Normal/Boundary tests cover the four return shapes (xdg-open across system types, darwin/windows-nt without xdg-open, the nil fallback for plain Linux without xdg-open and for unknown system-types like Haiku).
* refactor(dirvish): extract cj/--wallpaper-program-for helperCraig Jennings2026-05-101-14/+26
| | | | `cj/set-wallpaper' had two parallel cond arms hardcoding the X11/Wayland dispatch and the success/failure messages inline. Lift the program-and-args choice into `cj/--wallpaper-program-for' -- a pcase from a display-server symbol to a (PROGRAM ARG...) list, or nil for unknown environments. The wrapper now: detect env, ask helper for the command, surface the right message (unknown server / executable missing / success). Adding a third backend (e.g. xdg-desktop-portal) becomes one pcase clause + one test.
* refactor(dirvish): extract cj/--dired-resolve-display-path helperCraig Jennings2026-05-101-46/+43
| | | | | | `cj/dired-copy-path-as-kill' was a 57-line procedural body with the path-resolution branching mixed into the kill-ring write and the user-visible message. Lift the four-way decision (force-absolute / project-relative / home-relative / bare absolute) into `cj/--dired-resolve-display-path', a pure function from (FILE PROJECT-ROOT HOME-DIR FORCE-ABSOLUTE) to (PATH . PATH-TYPE). The wrapper now reads as: get the dired file, ask the helper how to display it, format-or-pass-through, kill-new, message. Seven Normal/Boundary tests cover each branch: project-relative, home-relative, the home-itself "~" glyph, absolute fallback, force-absolute beating both project and home, and project taking precedence over home when both apply.
* refactor(dirvish): extract cj/--duplicate-file-name helperCraig Jennings2026-05-101-17/+27
| | | | | | The name-mangling logic in `cj/dirvish-duplicate-file' was inline -- inseparable from the dired side effects (existence check, copy, revert). Extract to `cj/--duplicate-file-name', a pure function from FILE to FILE-WITH-COPY-SUFFIX. Seven Normal/Boundary tests cover the cases I care about: typical extension, elisp file, no extension, multi-dot extensions (only the last dot counts), leading-dot dotfiles, relative paths, spaces in the base name. The wrapper retains the dired-mode interactive shape and now reads as a thin shell over the pure helper.
* fix(dirvish): rename pw -> wp to clear quick-access key collisionCraig Jennings2026-05-101-1/+1
| | | | | | Pressing `g' in dirvish (`dirvish-quick-access') failed with `Wrong type argument: command, (keymap (107 . transient:dirvish-quick-access::N))'. Transient auto-groups multi-character keys into nested prefix keymaps; when one entry's KEY is also the prefix of a longer entry's KEY, the shorter slot resolves to the auto-generated sub-prefix keymap rather than to the intended leaf command. The "wallpaper" entry on `pw' and the "project work" entry on `pwk' (added in 4ece1eb) collided. Rename `pw' to `wp'; `pwk' is now the only entry under the `pw'-prefix, so transient builds a clean leaf. Add `tests/test-dirvish-config-quick-access.el' with five tests: four cover a small `test-dirvish-config--key-collisions' helper against synthetic inputs (collision detected, clean list, empty, single-entry), and one regression test asserts the live `dirvish-quick-access-entries' contains no shorter-key-is-prefix-of-longer-key pair.
* fix: restore daemon icons and consolidate nerd-icons setupCraig Jennings2026-05-071-1/+19
| | | | | | | | | | 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.
* feat(dirvish): add TrueNAS backups quick access shortcutCraig Jennings2026-02-051-0/+1
| | | | Add rbk shortcut to access /mnt/vault/backups on truenas.local
* chore: minor housekeeping updatesCraig Jennings2026-02-041-1/+2
| | | | | | | - Add typo correction: should't -> shouldn't - Add dirvish shortcut pcr for career project - Rename pc -> pcl for clipper project - Minor whitespace cleanup in init.el
* style(dirvish): normalize indentation and add TrueNAS shortcutsCraig Jennings2026-02-041-192/+194
| | | | | - Convert tabs to spaces for consistent formatting - Add quick-access entries for truenas.local and truenas (tailscale)
* feat(dirvish): add wallpaper setter with X11/Wayland supportCraig Jennings2026-02-011-4/+23
| | | | | cj/set-wallpaper uses feh on X11, swww on Wayland. Replaces nitrogen-based lambda with proper function.
* feat(dirvish): update shortcuts for health and homelab projectsCraig Jennings2026-01-101-1/+2
| | | | Changed ph to phl for homelab, added phx for new health project.
* feat(dirvish): add project shortcuts and remove scratch font overrideCraig Jennings2026-01-091-0/+3
| | | | | Added dirvish quick-access shortcuts for homelab, kit, and nextjob projects. Removed 16pt font size override from scratch buffer startup hook.
* feat(dwim-shell): fix M-D menu binding and enhance audio extractionCraig Jennings2025-11-241-7/+8
| | | | | | | | | | | | | | | | | | | | - Fix dwim-shell-commands-menu keybinding in dirvish/dired - Remove :after (dired dirvish) which prevented package loading - Add :demand t to load package immediately at startup - Move keybindings inside :config block after menu function definition - M-D now works immediately in dirvish without manual trigger - Enhance extract-audio-from-video function - Fix :extensions parameter (was regex string, now proper list) - Change from copy to AAC re-encoding for codec compatibility - Add interactive bitrate selection (64k/96k/128k/192k) - Fixes Opus codec compatibility issues with M4A containers - Remove conflicting keybindings - Remove music-config p binding in dirvish (was overriding path copy) - Clean up extraneous requires/hooks from troubleshooting - Add TODO for dwim-shell-command status dashboard [#D priority]
* feat(dirvish): Add project clipper shortcut (pc)Craig Jennings2025-11-181-0/+1
|
* refactor(dirvish): Rename project shortcuts for consistencyCraig Jennings2025-11-151-2/+2
| | | | | | | | - Rename "pD" to "pdx" for ~/projects/documents/ - Rename "pd" to "pdl" for ~/projects/danneel/ Uses consistent naming: pdx (documents), pdl (danneel), pl (elibrary), pf (finances), pjr (jr-estate).
* feat(dirvish): Add dropbox shortcut and fix directory pathsCraig Jennings2025-11-151-3/+4
| | | | | | | | | - Add "db" shortcut for ~/documents/dropbox/ - Update "lx" path from ~/lectures/ to ~/archive/lectures/ - Rename "sv" to "spv" and update path to ~/sync/phone/videos/ - Fix "tg" path to use org-dir instead of sync-dir All shortcuts now point to existing directories.
* feat: Add AssemblyAI transcription backend with speaker diarizationCraig Jennings2025-11-061-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Integrated AssemblyAI as the third transcription backend alongside OpenAI API and local-whisper, now set as the default due to superior speaker diarization capabilities (up to 50 speakers). New Features: - AssemblyAI backend with automatic speaker labeling - Backend switching UI via C-; T b (completing-read interface) - Universal speech model supporting 99 languages - API key management through auth-source/authinfo.gpg Implementation: - Created scripts/assemblyai-transcribe (upload → poll → format workflow) - Updated transcription-config.el with multi-backend support - Added cj/--get-assemblyai-api-key for secure credential retrieval - Refactored process environment handling from if to pcase - Added cj/transcription-switch-backend interactive command Testing: - Created test-transcription-config--transcription-script-path.el - 5 unit tests covering all 3 backends (100% passing) - Followed quality-engineer.org guidelines (test pure functions only) - Investigated 18 test failures: documented cleanup in todo.org Files Modified: - modules/transcription-config.el - Multi-backend support and UI - scripts/assemblyai-transcribe - NEW: AssemblyAI integration script - tests/test-transcription-config--transcription-script-path.el - NEW - todo.org - Added test cleanup task (Method 3, priority C) - docs/NOTES.org - Comprehensive session notes added Successfully tested with 33KB and 4.1MB audio files (3s and 9s processing).
* feat:dirvish-config: Enable file marking for mu4e attachmentsCraig Jennings2025-10-311-0/+3
| | | | | Add 'turn-on-gnus-dired-mode' to 'dired-mode-hook' to facilitate marking files in Dirvish for attachment in mu4e emails.
* fix(dirvish): move deadgrep from D to G, preserve dired-do-delete on DCraig Jennings2025-10-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit incorrectly moved deadgrep to 'D', which conflicts with the important dired-do-delete command (immediate delete of marked files). This commit moves deadgrep to 'G' instead. ## Changes **prog-general.el:** - Move cj/deadgrep-here from 'D' to 'G' (was dired-do-chgrp, rarely used) **dirvish-config.el:** - Updated Commentary to document both 'D' and 'G' keybindings - 'D' remains dired-do-delete (standard dired immediate delete) - 'G' is now deadgrep search ## Final Keybinding Map | Key | Binding | Purpose | |-----|-------------------------------|--------------------------------| | d | cj/dirvish-duplicate-file | Duplicate with "-copy" suffix | | D | dired-do-delete | Delete marked files (standard) | | g | dirvish-quick-access | Quick directory menu | | G | cj/deadgrep-here | Search with deadgrep | Capital G is mnemonic for "Grep" and doesn't conflict with important dired commands. dired-do-chgrp is rarely used and not a loss.
* feat(dirvish): add file duplication with 'd' key, move deadgrep to 'D'Craig Jennings2025-10-291-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a convenient file duplication function to dirvish and reorganizes keybindings to avoid conflicts. ## Changes **1. New function: cj/dirvish-duplicate-file (dirvish-config.el:150)** Duplicates the file at point with "-copy" suffix before the extension: - report.pdf → report-copy.pdf - script.el → script-copy.el - README → README-copy Features: - Prevents duplicating directories (files only) - Checks if target exists and prompts to overwrite - Refreshes buffer automatically after copying - Shows clear message with old and new names **2. Keybinding changes** dirvish-config.el: - Bound 'd' to cj/dirvish-duplicate-file (was dired-flag-file-deletion) - Updated Commentary section to document new binding prog-general.el: - Moved cj/deadgrep-here from 'd' to 'D' (capital D) - More mnemonic: D for Deadgrep - Avoids conflict with new duplicate function ## Rationale The 'd' key is prime real estate in file managers, and duplicating files is a very common operation. The standard dired-flag-file-deletion is still available via 'x' or the mark-and-delete workflow. Deadgrep on 'D' is more discoverable (capital D for Deadgrep) and less likely to be pressed accidentally. ## Usage In dirvish, navigate to a file and press: - 'd' - Duplicate file with "-copy" suffix - 'D' - Search with deadgrep in current directory
* refactor:dirvish: Remove redundant nerd-icons setupCraig Jennings2025-10-251-5/+0
| | | | | Move the `nerd-icons` setup from `dirvish-config.el` to `font-config.el` to consolidate icon configurations.
* refactor:dirvish: remove unused dired sidebar codeCraig Jennings2025-10-251-24/+0
| | | | | | | Remove unused functions and configurations related to dired-sidebar and nerd-icons-dired. This cleans up the code and reduces unnecessary dependencies within the dashboard-config.el and dirvish-config.el modules.
* feat(dirvish-config): Add sidebar attribute settingCraig Jennings2025-10-251-1/+2
| | | | Add `dirvish-side-attributes` for explicit sidebar configuration.
* feat:dirvish: shortcuts for Google Drive, remote git:cjennings.netCraig Jennings2025-10-251-2/+4
| | | | | Include shortcuts for Google Drive in documents and add a remote access path for git at cjennings.net in the dirvish configuration.
* feat:dirvish-config: Add absolute path copy functionalityCraig Jennings2025-10-231-2/+10
| | | | | | | | Introduce the 'L' key binding to copy the absolute file path in Dirvish. Extend `cj/dired-copy-path-as-kill` function to support force copying of absolute paths with the new `force-absolute` argument. This enhances the path copying capabilities by allowing users to directly copy absolute paths when needed.
* refactor(dirvish-config): streamline commentary and key bindingsCraig Jennings2025-10-231-87/+61
| | | | | | | | Condensed the commentary section to enhance readability. Reorganized key bindings to follow a consistent format and moved `dired-mode` auto-reversion to a separate expression. Simplified the `use-package` declaration with a deferred init and added mode overrides.
* refactor: dirvish: Enhance Dirvish configuration and key bindingsCraig Jennings2025-10-201-51/+88
| | | | | | | | - Expand commentary with comprehensive notes on Dirvish features and key bindings. - Add functions from dired for extended file management capabilities. - Introduce new hooks and improve existing configuration for better integration of features like history navigation, file previews, and quick access directories. - Adjust key bindings for more intuitive actions in dirvish-mode, and add contextually relevant lambda functions.
* refactor: created specific org-dir variable for ~/sync/orgCraig Jennings2025-10-181-9/+7
|
* feat: complete music/dired integration with dired add to playlistCraig Jennings2025-10-121-1/+1
|
* changing repositoriesCraig Jennings2025-10-121-0/+403