NAME DesktopWorkspace - DesktopWorkspace specification SPECIFICATION VERSION 1 VERSION This document describes version 1.0.0 of DesktopWorkspace (from Perl distribution DesktopWorkspace), released on 2026-03-29. DESCRIPTION This document specifies a way to describe windows and applications to set up for a workspace on the desktop. SPECIFICATION STATUS The series 1.x is still unstable. 2.x is expected to be the first series to be stable. GLOSSARY DesktopWorkspace specification A specification of what windows, applications, URLs in browser tabs should be present in a workspace on the desktop. DesktopWorkspace specification module A Perl module under "DesktopWorkspace::" namespace (or some other namespace specified, e.g. "CPANID::DesktopWorkspace::", "Some::App::DesktopWorkspace::") that follows at least the DesktopWorkspaceRole::Spec::Basic role. Some example module names: * PERLANCAR::DesktopWorkspace::Coding Specifies items to be opened in the desktop workspace for coding, e.g. which Konsole terminal tabs to open, which IDE to open. * PERLANCAR::DesktopWorkspace::LLM Specifies PERLANCAR's standard sets of AI LLM websites usually opened. * SHARYANTO::DesktopWorkspace::Writing Specifies items to be opened in the desktop workspace for writing stuffs, e.g. which dictionary, translation, and AI LLM websites to open, which directories to open in the file manager. * SHARYANTO::DesktopWorkspace::Acme::RND Specifies items to be opened in the desktop workspace for Steven's R&D work for the company Acme, e.g. which LibreOffice Calc spreadsheets and Google spreadsheets to open, which directories to open in the file manager. Workspace item Either an application, a directory/file, or a URL. SPECIFICATION Desktop workspace specification A desktop workspace specification is a DefHash structure that contains the following properties: * items An array of "workspace item"s. * new_browser_window Bool. When opening one or more URL's, use a new window. * kde_activity Str. Switch to a KDE activity of the specified name. Workspace item A DefHash structure that contain the following properties: * url A URL to be opened in a browser. * file Path to a file to be opened by an appropriate desktop application. * dir Path to a directory to be opened by an appropriate desktop application (usually a file manager). * app_path Path to a program to be run. * firefox_container Str. When using Firefox to open the item, use this container. * new_browser_window Bool. When opening the URL, use a new browser window. Exactly one of "url", "file", "dir", "app_path" must be specified. NOTES Currently a single desktop workspace specification can only describe items for a single KDE activity. To setup multiple KDE activities, use a separate desktop workspace specification for each. WISHLIST Open directories in konsole tabs. Open "screen" or "tmux" sessions, along with detailed specification on window size, etc. HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . SEE ALSO DefHash HISTORY AUTHOR perlancar CONTRIBUTING To contribute, you can send patches by email/via RT, or send pull requests on GitHub. Most of the time, you don't need to build the distribution yourself. You can simply modify the code, then test via: % prove -l If you want to build the distribution (e.g. to try to install it locally on your system), you can install Dist::Zilla, Dist::Zilla::PluginBundle::Author::PERLANCAR, Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond that are considered a bug and can be reported to me. COPYRIGHT AND LICENSE This software is copyright (c) 2026 by perlancar . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. BUGS Please report any bugs or feature requests on the bugtracker website When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.