Project ideas from Hacker News discussions.

Firefox 147 Will Support the XDG Base Directory Specification

📝 Discussion Summary (Click to expand)

The three most prevalent themes in the discussion regarding adoption of the XDG Base Directory Specification (BDS) are:

  1. Appreciation and Significance of Firefox's Adoption: Many users view Firefox adopting XDG compliance as a major, long-overdue positive step that will encourage broader adherence to system standards, thereby cleaning up the user's home directory ($HOME).

    • Supporting Quote: "This is a meaningful step! For years, XDG Base Directory compliance has been spotty across major applications. Firefox's adoption matters because it's widely used and its implementation may encourage others to follow suit." (darkamaul)
  2. Frustration with $HOME Litter and the Need for Cleanliness: A strong sentiment exists that applications polluting the root of the home directory with configuration and data files (dotfiles) is unacceptable, difficult to manage, and ultimately "lazy development."

    • Supporting Quote: "I had more than 50 different dotfiles and dotfolders in my $HOME. It was unwieldy and nasty to look at." (Avamander)
  3. Complexity and Risks Associated with Migration and Partial Compliance: Several users expressed concern over Firefox's implementation details—specifically the lack of an automatic migration path and the potential for confusion or security issues if the split between configuration, data, and cache directories is not done correctly according to the full XDG specification.

    • Supporting Quote: "If that’s true, the title of the issue (and blog post) is quite untrue. Shoving everything in ~/.config is different than following the XDG Base Directory spec." (batisteo) (Regarding the concerns that Firefox only moved .mozilla to .config/mozilla rather than fully splitting into .config, .local/share, and .cache).

🚀 Project Ideas

XDG Compliance Auditor and Migration Assistant

Summary

  • A desktop application/tool that scans a user's home directory ($HOME) for applications known (or suspected) to be non-compliant with the XDG Base Directory Specification (XDG BDS), particularly those cluttering $HOME with non-hidden files or folders.
  • Provides immediate feedback on "dotfile pollution" and offers a guided, validated migration path to $XDG_CONFIG_HOME, $XDG_DATA_HOME, and $XDG_CACHE_HOME where applicable. The core value is restoring sanity to the user's home directory.

Details

Key Value
Target Audience Linux/BSD power users, system administrators, and developers frustrated by home directory clutter (kennywinker, Avamander).
Core Feature Automated scanning against a curated list, path validation comparison, and safe file/directory migration with built-in backup/rollback.
Tech Stack Primarily Go (for cross-platform binary/CLI ease) or Rust (for safety/performance). Frontend could be a simple CLI or a lightweight GUI using something like [Tauri/Webview] for a more guided experience.
Difficulty Medium (Scanning and validation are low/medium; robust, atomic migration with rollback capabilities adds complexity).
Monetization Hobby

Notes

  • Why HN commenters would love it: It directly addresses the core complaint: "I have like 100 hidden directories+files in the root of my home directory." (kennywinker). It empowers users who feel their $HOME is being disrespected by lazy developers (wpm, Avamander).
  • Potential for discussion or practical utility: Tooling around XDG adoption is clearly needed, especially given the complexity raised around migration/rollback (johnisgood vs. "Someone"). A trusted, simple tool that handles the migration automatically for non-critical configs would be highly adopted.

Context-Aware Shortcut Override Manager (Browser Plugin)

Summary

  • A browser extension (initially targeting Firefox, then Chromium) that manages and overrides hard-coded application shortcuts that conflict with system or muscle memory defaults.
  • The core value is providing immediate relief from frustrating, application-specific shortcut deadlocks, like preventing accidental quit actions or restoring desired terminal keybindings.

Details

Key Value
Target Audience Power users of specific applications (Firefox, possibly IDEs/terminals in the future) who rely on system-level or muscle-memory shortcuts that conflict with browser defaults (georgefrowny, marcosdumay).
Core Feature A centralized UI/settings page within the browser to view detected conflicts (e.g., Ctrl+Q, Ctrl+Shift+C) and map them to "No-Op," "Forward to OS/Shell," or a new action.
Tech Stack JavaScript/WebExtension APIs (Manifest V3 for modern browsers), focusing initially on Firefox's browser.commands API for handling keybindings.
Difficulty Low/Medium (Basic key capture is easy; robustly handling system focus/event propagation across contexts might be Medium).
Monetization Hobby

Notes

  • Why HN commenters would love it: It solves immediate usability frustrations where long-standing bugs are fixed slowly: "Holy shit does this mean I can disable Ctrl-Shift-C and get my muscle memory for terminal copy back?" (georgefrowny).
  • Potential for discussion or practical utility: The discussion around about:keyboard showed high engagement. This tool provides a user-facing, immediate fix for shortcuts that the application itself may refuse to change systemically (like CTRL+Q on Linux).

XDG Compliance Validator & Linting Service (CI/Git Hook)

Summary

  • A Git pre-commit hook or CI/CD service that analyzes a repository's source code or release artifacts to determine if they create configuration files outside of XDG paths when installed or run.
  • The core value is automating compliance enforcement for open-source projects, preventing future home directory pollution before it ships to users.

Details

Key Value
Target Audience Maintainers of mid-to-large Linux/desktop applications, CI/CD pipelines, and packaging entities (e.g., Arch Linux AUR helpers) (indolering, darkamaul).
Core Feature Static analysis (AST parsing for config file reading/writing calls, or artifact scanning) and dynamic analysis (running bundled executables in a secured sandbox environment) against XDG definitions.
Tech Stack Python (leveraging existing security/static analysis libraries) or Rust/Go for fast execution. Output should conform to standard linter formats (e.g., ESLint/Checkstyle style JSON/YAML).
Difficulty High (Static analysis of dynamic languages or complex build processes is hard; sandboxing to reliably detect file creation requires significant setup).
Monetization Hobby

Notes

  • Why HN commenters would love it: It addresses the root cause: "It's absurd that the list is so long considering the PR to fix it would only take a couple of hours." (indolering). This tool makes it nearly impossible for a PR reviewer or automated system to miss non-compliance.
  • Potential for discussion or practical utility: This moves the conversation from user cleanup (Idea 1) to developer responsibility. It could generate community-wide metrics on XDG compliance across the ecosystem.