Skip to content

The Road Ahead

The handbook grows with the applications: a chapter is written for an application that is finished enough to teach from. Here is where it stands and where it goes. Each application adds a few new ideas, and amade-commons grows with them: a part moves into the library in the chapter of the second application that needs it.

Written

Chapter Application New in amade-commons
0. Setting Up
1. Why Swing and Our Own Library
2. How an Application Is Built
10. Pad amade-pad, the text editor Uses what every program needs: start-up, Guice wiring, the CDE look and themes, five languages, the EDT executor
11. Web amade-web, the documentation viewer DesktopLauncher: opening links and files in other programs, refusing files that could run code
20. Files amade-files, the two-panel file manager AppDirectories and PropertiesFile for settings, LaunchFeedback for the busy cursor; the trash and file operations stay in Files
21. Calendar amade-calendar, dtcm's successor DateChooser and LanguageChooser for dialogs; printing waits in Calendar for its second user
22. Mail amade-mail, the mailer PasswordStore for the desktop keyring; the Texts helper that four applications copied moves in
23. WritePad amade-writepad, the word processor Printing moves in (PaperSize, PrintJobs), its second user after Calendar
24. Calculator amade-calculator, the calculator Nothing: exact numbers, the expression parser and the keyboard stay in Calculator
25. Contacts amade-contacts, the address book StandardGlyph grows by Edit, Delete, Import, Export, Mail and the picture glyphs that Imagescan, Image Viewer and Fractals had each drawn; ContactDirectory and AddressCompletion give the address books to Mail (completion) and Calendar (birthdays); vCard writing, CSV and LDIF stay in Contacts
30. Fractals amade-fractals, the fractal explorer Toolbars with icons drawn in Java2D (ToolIcon, StandardGlyph, ToolButtons) and the @Ui executor binding move in, their second user after WritePad
31. Imagescan amade-imagescan, the scanning program CommandRunner for other programs moves in from Imagescan, Audio and WritePad, with a time limit that holds; Imagescan becomes the toolbar's third user
32. Video amade-video, the video player Nothing: libmpv through JNA and the player's state stay in Video; its transport symbols wait for their second user, Audio
33. Audio amade-audio, the Audio Station Json moves in from Audio, its second user after Mail; the transport symbols become TransportGlyph and TransportButtons, their second user after Video
34. Screenshot amade-screenshot, the screenshot tool The pictures folder (XdgDirectories.pictures()) and a picture on the clipboard (ImageSelection) move in, their third user after Fractals and Imagescan
35. Image Viewer amade-imageviewer, the image viewer Nothing: orientation, metadata and map tiles stay in Image Viewer; it is the trash's second writer after Files, and the writing half of the trash is the next candidate
36. PDF Viewer amade-pdfviewer, the PDF viewer Nothing: PDFBox, the document thread with priorities and the printing on it stay in PDF Viewer; PrintJobs split into dialog and printing, and a state folder in XdgDirectories, are candidates
37. Books amade-books, the e-book and comic reader Nothing: the typesetter, the CSS subset and the comic reader stay in Books; the hyphenator moves in when WritePad divides words too
40. amade-commons at a Glance Part IV, the manual The library by subsystem: what each part is for, when to choose it, how it works, with the chapter that introduced it
41 to 47 Start-up and wiring, look and themes, languages, settings and files, desktop integration, toolbars and printing, programs, JSON and the network
50. Packaging and Installers amade-fractals, packaged The Debian package, desktop entry and Front Panel drawers, icons, AppStream metadata, the amadeOS image, the Windows installer with jpackage, and CI checks for all of them
51. Versions and Releases amade-calculator, released Semantic Versioning from Conventional Commits, the branches develop, release and main, the Promote workflow, Debian versions with ~, release notes and AppStream releases, library pins
60. The Desktop and Its Modules Part VI, amadeos-system The map of the desktop: desktop modules and tool programs, what they take from amade-commons, who writes and who follows the theme and the language
61. System Information amadeos-sysinfo A tool program from main to the package; it becomes CommandRunner's next user
62. Settings amadeos-settings A sidebar with a search and CDE's compact view from one set of pages; the writing side of themes and the text size: ThemeManager, atomic files, the root window property; window settings the window manager follows; the X server's own tools; five languages without Guice
63. The Front Panel amadeos-panel-cde A Swing window as an EWMH dock, drawers from desktop entries that follow installations, starting programs, status cells, the panel's language
64. Software amadeos-software, amadeos-packages A root helper behind pkexec and polkit, apt's progress, tests with a fake apt, watching for changes
65. The Clipboard Manager amadeos-session clipboard A program without a window: XFixes instead of polling, an X thread, a worker and the EDT, taking the clipboard over, SAVE_TARGETS, passwords left alone
66. The Window Switcher amadeos-wm, Alt+Tab Global keys and an active keyboard grab, previews read from the screen without a compositor, _NET_WM_ICON, a Swing popup the window manager does not manage
67. A Module of Your Own The checklist for a new module of amadeos-system

Planned

Appendices

Swing and Motif pitfalls and a glossary. Packaging, first planned as an appendix, became chapter 50.