A programmable desktop
Find a file
2024-09-23 23:04:14 -03:00
apps Refactorings 2023-04-29 12:15:12 -03:00
assets Example: Country capitals 2023-01-16 21:04:42 -03:00
book Modules chapter in book 2023-03-29 15:37:05 -03:00
build Command line options 2023-02-20 10:52:01 -03:00
desktop/webview Housekeeping 2022-05-30 10:06:07 -03:00
docker build 2022-06-06 21:20:54 -03:00
docs/modules Extensible documentation subsystem 2023-04-24 11:39:33 -03:00
lib First commit 2022-05-20 11:01:05 -03:00
modules Modules 2023-03-27 21:51:12 -03:00
richtext/editor-js Richtext object work 2022-07-06 10:36:00 -03:00
screenshots Overview video 2023-01-29 13:05:34 -03:00
static Style adjustment 2024-02-13 09:26:53 -03:00
.dockerignore "binary docker" deployment to fly.io works 2022-09-29 06:21:53 -03:00
.gitignore qlot for dependencies 2024-03-26 15:05:45 -03:00
ace-editor.lisp I'm still lazy 2023-02-01 17:28:12 -03:00
book.lisp Use job for books import 2023-04-28 11:28:34 -03:00
calendar.lisp Extensible documentation subsystem 2023-04-24 11:39:33 -03:00
change-tracker.lisp Prepare for a change monitoring service 2023-02-20 20:57:28 -03:00
charts.lisp Big refactoring: rename items to members 2023-02-13 22:06:53 -03:00
clog-inspector.lisp Housekeeping 2022-05-29 11:27:06 -03:00
collections.lisp Fix 2024-04-17 08:53:49 -03:00
colors.lisp Desktop background color 2023-01-26 22:37:48 -03:00
command-bar.lisp Fixes 2024-09-21 10:28:44 -03:00
commands-core.lisp Housekeeping 2024-09-19 20:01:31 -03:00
commands.lisp Refactorings 2023-04-29 12:15:12 -03:00
contact.lisp Fixes 2023-02-18 15:23:53 -03:00
core-objects.lisp Modules 2023-03-27 21:51:12 -03:00
CoreNLP.lisp More NLP stuff 2022-05-27 11:33:56 -03:00
cron.lisp CRON jobs views 2023-05-01 11:03:06 -03:00
dashboard.lisp Big refactoring: rename items to members 2023-02-13 22:06:53 -03:00
datatables.lisp DataTables view 2023-02-04 22:30:27 -03:00
default-views.lisp First iteration of an icons view 2023-05-01 15:39:32 -03:00
desktop.lisp Fix to set-background-color 2024-09-19 11:16:06 -03:00
deta.lisp deta store 2022-09-29 05:48:23 -03:00
dev.lisp Development stuff 2024-09-19 11:05:50 -03:00
dialog.lisp TODO: dialog api 2022-06-01 17:58:31 -03:00
doc.lisp Extensible documentation subsystem 2023-04-24 11:39:33 -03:00
Dockerfile "binary docker" deployment to fly.io works 2022-09-29 06:21:53 -03:00
Dockerfile.ccl Build stuff 2022-09-28 22:16:40 -03:00
Dockerfile.sbcl Build stuff 2022-09-28 22:16:40 -03:00
email.lisp Refactorings 2023-04-29 12:15:12 -03:00
events.lisp Events system 2022-07-01 20:30:41 -03:00
filesystem.lisp Don't depend on Quicklisp 2024-04-08 10:32:12 -03:00
fly.toml fly.io config 2022-09-28 21:18:21 -03:00
forms.lisp Forms building first example 2022-05-26 19:06:17 -03:00
fulltext-search.lisp fulltext search first example 2022-07-13 14:19:02 -03:00
gdrive.lisp bah ... 2022-06-07 10:35:59 -03:00
google-search.mod.lisp Modules 2023-03-28 10:33:45 -03:00
graph.lisp Adjustments to graph view 2023-02-19 01:36:20 -03:00
gui.lisp Indeterminate jobs 2023-04-27 13:00:59 -03:00
halos.lisp This fixes the open url halo 2024-09-23 23:04:14 -03:00
help.lisp Adjustments 2023-03-29 15:45:27 -03:00
heroku.lisp Heroku self ping 2022-06-04 21:18:10 -03:00
http-api.lisp TODO 2023-02-22 17:07:37 -03:00
http-request.lisp Hash table views 2023-02-22 17:03:59 -03:00
icon-chooser.lisp Categorized thumbnails view 2022-07-16 16:47:31 -03:00
igdb.mod.lisp TODO: IGDB module 2023-05-01 19:15:15 -03:00
jobs.lisp CRON jobs views 2023-05-01 11:03:06 -03:00
kanban-view.lisp kanban-view: layout adjustment 2023-04-23 11:22:31 -03:00
keymaps.lisp TODO 2022-10-26 13:23:25 -03:00
leaflet.lisp Big refactoring: rename items to members 2023-02-13 22:06:53 -03:00
LICENSE License and copyright 2022-05-23 00:08:42 -03:00
links.lisp Adjustments to objects linking 2023-02-03 13:39:35 -03:00
lispdoc.lisp Move make-clog-callback to utils 2023-02-02 10:12:21 -03:00
load.lisp Build stuff 2022-09-28 22:16:40 -03:00
Makefile Use qlot in Makefile 2024-03-26 16:17:42 -03:00
menu.lisp open-settings-menu command 2024-09-20 14:11:23 -03:00
models-example.lisp Big refactoring: rename items to members 2023-02-13 22:06:53 -03:00
models.lisp TODO 2023-03-22 13:16:14 -03:00
modules.lisp Use jobs to load modules 2023-04-27 15:39:18 -03:00
mold-desktop-bookmarks.asd Build with apps 2022-09-28 19:07:12 -03:00
mold-desktop-feeds.asd Build with apps 2022-09-28 19:07:12 -03:00
mold-desktop-tasks.asd Model for tasks 2023-02-09 17:13:57 -03:00
mold-desktop.asd Use of promises in RUN-COMMAND-INTERACTIVELY 2024-09-19 10:41:14 -03:00
naked.lisp Refactorings 2023-04-29 12:15:12 -03:00
notifications.lisp Better looking notifications 2024-09-20 09:51:00 -03:00
object-repository.lisp Big refactoring: rename items to members 2023-02-13 22:06:53 -03:00
object-settings.lisp Use tooltip for displaying event documentation 2023-02-10 00:11:40 -03:00
object.lisp Started a Kanban view 2023-04-23 00:31:42 -03:00
omdb.mod.lisp OMDB: Link to IMDB page 2023-03-29 19:31:20 -03:00
open-library.mod.lisp Display jobs progress 2023-04-29 16:41:20 -03:00
open-meteo.lisp open-meteo stuff 2023-01-17 16:05:27 -03:00
output-stream.lisp Rename to Mold Desktop 2022-05-26 16:11:20 -03:00
package.json Heroku 2022-05-30 19:35:46 -03:00
package.lisp Compilation fix 2023-02-16 13:40:35 -03:00
plots.lisp plots example 2022-07-07 15:54:12 -03:00
Procfile Heroku 2022-05-30 19:35:46 -03:00
properties.lisp Documentation in properties editing view 2023-04-02 21:30:21 -03:00
qlfile Dependencies 2024-04-08 10:32:26 -03:00
qlfile.lock Dependencies 2024-04-08 10:32:26 -03:00
quill.lisp Insert objects into Quill documents 2023-02-19 19:57:57 -03:00
README.md Development stuff 2024-09-19 11:05:50 -03:00
repl.lisp REPL: prepare for environment 2023-04-03 18:30:13 -03:00
reverse-proxy.lisp reverse proxy config 2022-06-06 21:00:07 -03:00
richtext.lisp I'm still lazy 2023-02-01 17:28:12 -03:00
rss.lisp Display jobs progress 2023-04-29 16:41:20 -03:00
search.lisp Big refactoring: rename items to members 2023-02-13 22:06:53 -03:00
semantic-ui.lisp TODO: consider other gui framework 2022-06-22 20:00:24 -03:00
settings.lisp Settings UI changes 2024-09-19 18:56:27 -03:00
side-panel.lisp Open settings tab 2023-01-21 15:36:19 -03:00
spreadsheet.lisp Idea for spreadsheets 2023-02-16 16:55:25 -03:00
store.lisp Don't signal error if database file not available 2024-09-22 21:14:05 -03:00
system-log.lisp system-log-entry 2022-10-28 10:17:58 -03:00
table.lisp elements-type of collections 2024-04-10 12:02:01 -03:00
tasks.lisp Tasks have subtasks 2024-09-22 21:14:34 -03:00
TODO TODO 2024-09-19 21:24:22 -03:00
tree-model-editor.lisp Refactorings 2023-04-29 12:15:12 -03:00
tree.lisp Refactorings 2023-04-29 12:15:12 -03:00
triple-store.lisp Adjustments to objects linking 2023-02-03 13:39:35 -03:00
types.lisp Use modal for editing TEXT arguments 2023-02-21 18:27:43 -03:00
util.lisp Fixes 2024-09-21 10:28:44 -03:00
value-models.lisp value-models: fix in aspect adaptor 2023-04-27 11:48:35 -03:00
vcard-parser.lisp vcard-parser 2023-02-14 14:24:55 -03:00
view.lisp Some fixes 2023-01-28 21:09:47 -03:00
viewerjs.lisp viewerjs 2023-02-14 11:23:20 -03:00
views.lisp Scroll layout adjustments 2023-02-17 13:24:51 -03:00
weather-widget.lisp Prettier class completion 2023-01-27 17:04:29 -03:00
web-data-extractor.lisp Web data extractor 2022-06-04 17:06:38 -03:00
widgets.lisp Object input widget 2022-10-31 11:20:58 -03:00
window-manager.lisp Collections sorting 2024-04-10 19:01:31 -03:00
workspaces.lisp Fixes 2024-09-21 10:28:44 -03:00

Mold Desktop

A Programmable Desktop.

Inspirations

  • McCLIM (commands, presentations).
  • NakedObjects (expose object's properties to UI, commands apply to specific domain models).
  • Emacs (commands, programmability).
  • Smalltalk (halos, programmability).

Running

Download somewhere where QuickLisp can find the project, then:

(ql:quickload :mold-desktop)
(mold-desktop:start)

Use qlot for managing the dependencies:

Install qlot if you don't have it:

 curl -L https://qlot.tech/installer | sh

then install dependencies:

qlot install

start a Lisp repl with in the qlot environment:

qlot exec sbcl

Load and start:

(ql:quickload :mold-desktop)
(mold-desktop:start)

Development

When working with a remote SWANK, we would like *trace-output* and *standard-output* be bound to SLIME streams. But inside threads they are not. This binds them to top-level and makes them accessible via connected SLIME.

(setq bt:*default-special-bindings*
      (list (cons '*trace-output* *trace-output*)
            (cons '*standard-output* *standard-output*)))

Presentation Video

Overview video

Screenshots

screenshot1 screenshot2

References