{"id":13442869,"url":"https://github.com/stumpwm/stumpwm","last_synced_at":"2025-05-14T02:09:11.566Z","repository":{"id":3184727,"uuid":"4216967","full_name":"stumpwm/stumpwm","owner":"stumpwm","description":"The Stump Window Manager","archived":false,"fork":false,"pushed_at":"2025-04-19T16:36:13.000Z","size":5513,"stargazers_count":1949,"open_issues_count":91,"forks_count":269,"subscribers_count":112,"default_branch":"master","last_synced_at":"2025-04-19T19:41:45.084Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"avd-apps/sample-app","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stumpwm.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-05-03T18:00:56.000Z","updated_at":"2025-04-19T16:36:17.000Z","dependencies_parsed_at":"2023-10-15T00:00:06.390Z","dependency_job_id":"80f73cd0-9a96-4ad3-a3ef-ad1e71f34fbf","html_url":"https://github.com/stumpwm/stumpwm","commit_stats":{"total_commits":2337,"total_committers":207,"mean_commits":"11.289855072463768","dds":0.8553701326486949,"last_synced_commit":"ffeb9eba470a3c603567c3b553a674e074071936"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stumpwm%2Fstumpwm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stumpwm%2Fstumpwm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stumpwm%2Fstumpwm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stumpwm%2Fstumpwm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stumpwm","download_url":"https://codeload.github.com/stumpwm/stumpwm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254053248,"owners_count":22006717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:01:52.465Z","updated_at":"2025-05-14T02:09:06.553Z","avatar_url":"https://github.com/stumpwm.png","language":"Common Lisp","funding_links":[],"categories":["Common Lisp","Packages","Applications"],"sub_categories":["window-managers","Window Manager"],"readme":"![](https://stumpwm.github.io/images/stumpwm-logo-stripe.png)\n# The Stump Window Manager\n![](https://travis-ci.org/stumpwm/stumpwm.svg)\n[![Gitter](https://badges.gitter.im/stumpwm/community.svg)](https://gitter.im/stumpwm/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\nStumpWM is a window manager written entirely in Common Lisp. It\nattempts to be highly customizable while relying entirely on the\nkeyboard for input. You will not find buttons, icons, title bars, tool\nbars, or any of the other conventional GUI widgets.\n\nThese design decisions reflect the growing popularity of productive,\ncustomizable lisp based systems.\n\n## Philosophy \n\nStumpWM is a \"everything-and-the-kitchen-sink WM\" or \"the Emacs of\nWMs.\"\n\n**StumpWM:Windows::Emacs:Text**\n\n* StumpWM is\n  * Hackable\n  * Written in Common Lisp\n  * A multi paradigm window manager\n  * A Superior window managing experience \n* StumpWM is *not*\n  * Minimalist\n  * Narrow scope\n  * Configured by editing the source directly\n  * A full blown desktop environment\n\nIf you want a minimalist tiling window manager, then StumpWM is *not*\nwhat you're looking for.  The code base is ~15k lines, the binaries\nproduced are ~60mb.\n\nStumpWM manages windows the way emacs manages buffers, or the way\nscreen manages terminals. If you want a flexible, customizable,\nhackable desktop experience, look no further.\n\n# Build \u0026 Start Stumpwm\n\n## Prerequisites\n\n* [SBCL][sbcl]\n* quicklisp (for obtaining the following dependencies; not needed if you use your distribution's package manager.)\n* clx\n* cl-ppcre\n* alexandria\n\nThe recommended way to install the dependencies is using Quicklisp.\nFollow the instructions at http://www.quicklisp.org/ to install it.\nIn short: \n\n```\n$ curl -O https://beta.quicklisp.org/quicklisp.lisp\n$ sbcl --load quicklisp.lisp\n```\n\nThen at the REPL:\n\n```lisp\n(quicklisp-quickstart:install)\n```\n\nMake sure you have added it to your lisp init file using:\n\n```lisp\n (ql:add-to-init-file)\n```\n\nThen, in a repl:\n\n```lisp\n (ql:quickload \"clx\")\n (ql:quickload \"cl-ppcre\")\n (ql:quickload \"alexandria\")\n```\n\nNote: The recommended way to install SBCL is by downloading one of their\npre-built binaries available in their [web page][sbcl-platform-table] or build\nit from source. Please do _not_ install SBCL using your distributions package\nmanager, especially Ubuntu. If you do so it is likely that you'll run into\nproblems when building StumpWM due to using obsolete versions of the\ndependencies.\n\n\n## Building\n\nBuilding stumpwm from git requires that you build the configure script:\n\n```\n ./autogen.sh\n```\n\nThen run it:\n\n```\n ./configure\n```\n\nNow build it:\n\n```\n make\n```\n\nIf all goes well, you should have a stumpwm binary now. You can run the binary\nfrom where it is (starting it with X) or install it, along with the .info\ndocumentation, with:\n\n```\n make install\n```\n\nNow that you have a binary, call it from your ~/.xinitrc file:\n\n```\n # The default path is /usr/local/bin/stumpwm\n echo /path/to/stumpwm \u003e\u003e ~/.xinitrc\n startx\n```\n\nHopefully that will put you in X running stumpwm! See [StartUp on the\nwiki](https://github.com/sabetts/stumpwm/wiki/StartUp) for more\nexamples.\n\n# Contributing\n\nPull requests are always welcome! Here are some guidelines to ensure\nthat your contribution gets merged in a timely manner: \n* Do's \n  * Add your name to the list of AUTHORS with your pull request.  \n  * Preserve comments or docstrings explaining what code does, and\n    update them if your patch changes them in a significant way\n  * Try to follow an \"80 column rule.\" The current code base does not\n    follow this all the time, so don't use it as an example\n  * If you export a symbol, you *must* add it to the manual.\n  * [Use lisp idioms][lisp-idioms]\n  * If you are working on a major change to the internals, keep us\n    informed on stumpwm-devel! Also, it will probably help if the\n    changes are made and then incrementally applied to the codebase in\n    order to avoid introducing show-stopping bugs.\n  * Run `./ci` before making a pull request to confirm that the GitHub\n    workflow will succeed.\n* Do not's\n  * Include Emacs local variables\n  * Change whitespace \n  * Write lots of code without supporting comments/documentation\n  * Delete comments or docstrings (yes this is a duplicate of above!)\n  * Export symbols from packages that aren't widely useful (many times\n    a little more thought will reveal how to implement your internal\n    change without having to export/break encapsulation)\n  * Make stylistic changes that suit your coding style/way of thinking \n\nIf you aren't a lisp hacker, you can contribute in the form of\ndocumenting and organizing the wiki. There's a lot of information\nfloating around; if you find it where you didn't expect it, move or\nlink to it in a more logical place.\n\n# Wishlist \n\nFancy yourself a lisp hacker? Here's a wishlist of features for the\nStumpWM universe (in no particular order):\n* float-splits (ie allow floating windows over tiled ones)\n* Float windows within parent applications (specifically dialogs in\n  gimp or firefox).\n* tab-list showing the contents of the current frame at the side, top,\n  or bottom of the frame\n* Emacs' iswitchb function implemented in emacs\n  * Re-arranging windows between groups\n  * Killing windows\n  * Marking windows for batch operations\n  * Deleting/adding groups\n  * Import data from stumpwm to emacs, use an emacs minor mode to\n    implement the above features, then export the data back to stumpwm\n    and let stumpwm perform the appropriate actions \n* Emacs' completing-read-multiple function\n* Lock Screen (with support for leaving notes, bonus points if emacs\n  is involved)\n* Wallpapers! (support pulling from remote sources, changing based on\n  timers, and other hacky features)\n* Shutdown, restart, suspend, and hibernate functions that don't\n  require root access\n* Revamped, mouse-friendly mode-line. \n  * Support fixed number of chars for window titles\n  * Dynamically trim window titles to fit them all on the mode-line\n  * Split the mode-line into multiple cells for containing different information\n  * Implement widget icons to indicate system status (new mail, low\n    battery, network etc)\n  * Support raising windows when left-clicked, closing/killing when right-clicked  \n\n# Help\n\nThere's a texinfo manual, stumpwm.texi.  The build scripts generate an\ninfo file you can read in emacs or with the `info' program.  The\nmanual for the latest git version (may be slightly out of date) is\navailable to read online at: [The Manual](https://stumpwm.github.io/)\n\nAnd, as in Emacs, you can always get documentation with:\n\n| Key                | Help                             |\n|--------------------|----------------------------------|\n| \u003ckbd\u003eC-t h v\u003c/kbd\u003e | Variables                        |\n| \u003ckbd\u003eC-t h f\u003c/kbd\u003e | Functions                        |\n| \u003ckbd\u003eC-t h k\u003c/kbd\u003e | Key sequences                    |\n| \u003ckbd\u003eC-t h c\u003c/kbd\u003e | Commands                         |\n| \u003ckbd\u003eC-t h w\u003c/kbd\u003e | Find key sequences for a command |\n\nFor other stuff (tips tricks and examples) visit the [stumpwm wiki](https://github.com/stumpwm/stumpwm/wiki)\n\nThere's a **#stumpwm** channel on [irc.libera.chat](https://libera.chat), too.\n\nFinally, there's our mailing list (click to sign up)\n[stumpwm-devel@nongnu.org](https://lists.nongnu.org/mailman/listinfo/stumpwm-devel).\n\n\n[lisp-idioms]: (http://web.archive.org/web/20160101153032/http://people.ace.ed.ac.uk/staff/medward2/class/moz/cm/doc/contrib/lispstyle.html)\n[sbcl]: http://sbcl.org\n[sbcl-platform-table]: http://sbcl.org/platform-table.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstumpwm%2Fstumpwm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstumpwm%2Fstumpwm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstumpwm%2Fstumpwm/lists"}