https://github.com/wnayes/bond-wm
An X Window Manager built on web technologies.
https://github.com/wnayes/bond-wm
electron react window-manager x11
Last synced: about 1 year ago
JSON representation
An X Window Manager built on web technologies.
- Host: GitHub
- URL: https://github.com/wnayes/bond-wm
- Owner: wnayes
- License: mit
- Created: 2017-04-30T18:48:57.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2025-03-30T18:01:56.000Z (about 1 year ago)
- Last Synced: 2025-04-12T15:56:54.114Z (about 1 year ago)
- Topics: electron, react, window-manager, x11
- Language: TypeScript
- Homepage: https://wnayes.github.io/bond-wm/
- Size: 2.97 MB
- Stars: 73
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
An X Window Manager built on web technologies.
### [Read the docs to get started 🔗](https://wnayes.github.io/bond-wm)
Bond Window Manager is a [X window manager](https://en.wikipedia.org/wiki/X_window_manager) gives web developers a familiar platform for total customization of their desktop appearance.
The goal is to thoughtfully apply front-end technologies to the desktop. Today this means:
- [Node.js](https://nodejs.org) driving a window manager core, which creates desktop and frame windows using [Electron](https://www.electronjs.org/) and its underlying Chromium engine.
- [Vite](https://vitejs.dev/) providing first class support for TypeScript, JSX, CSS modules, and more. Vite enables "hot module replacement" for rapid iteration on desktop styling.
- [React](https://react.dev/) as the primary supported UI library.
## Screenshot

## Development
This repository uses the pnpm package manager. [Install pnpm](https://pnpm.io/installation) >= 9.6 for your operating system.
To do prerequisite build steps:
pnpm install
pnpm build
(Equivalent to `npm run build` if you prefer npm for running scripts.)
To start a test X server (requires Xephyr):
pnpm startx
To start the window manager:
pnpm start --config ./packages/react-config
Substitute your own config package with the default one above as desired.
## License
[MIT License](LICENSE.md)
Individual packages within the repository sometimes have different licenses.