StarWM is an extensible window manager written in Rust.

Overview

Please Note: StarWM is not in a very usable state as of yet. It is for this reason that there is very little documentation as it will most likely change quite quickly.


Rust Linux Xorg StarWM

StarWM

StarWM is an extensible window manager written in Rust.

Why?

StarWM is a window manager that was initially started as an experiment. Nowadays, it's a community effort to create a window manager that can be used on your favourite linux distro. StarWM isn't really usable day to day just yet, but with ongoing work, we hope that it will provide a great experience. We aim to keep the codebase as clean as possible, so that anyone can read the code and understand with as little effort as possible. Feel free to have a look at the commit history and take the time to understand how it's constructed. You can use it to create your own WM, if you feel like it, just be sure to keep the GPL3 license if redistributing it.

Plans?

There are plans to make this extensible, possibly through a Lua interpreter. We are looking into if it could function perfectly as both a tiling and floating window manager, perhaps the addition of window decorations would also be possible.

Installation

Currently StarWM is not packaged in any distribution,

Please see INSTALL.md for installation instructions

Made with love by Cob:web-Aclevo and our Open source contributors:

Curlpipe - Lead Developer

lyiriyah - Contributing towards active window features.

whyAdamSalt - Writing installation instructions and re-wording the readme file.

Please join the Cob:web-Aclevo discord to talk to us and contribute to our projects: https://discord.gg/z3GXvGtuek

Comments
  • Migrate from rust-xcb to x11rb

    Migrate from rust-xcb to x11rb

    It appears that x11rb has a similar API, and is more heavily documented with a more active community and commit history. It also has several examples that we can reference when it comes to implementing future features. The API isn't too dissimilar that migrating would be too difficult.

    Perhaps it is better to stay with what is already there, however now is the time to migrate if need be, before the code becomes more complicated.

    https://github.com/psychon/x11rb

    enhancement wontfix Medium Priority 
    opened by curlpipe 1
  • Pop up menus are broken

    Pop up menus are broken

    They seem to appear and then disappear a few milliseconds afterwards. I observed this behaviour in Firefox. Not sure if this extends to other applications, it probably does.

    bug High Priority 
    opened by curlpipe 1
  • Moving windows between workspaces

    Moving windows between workspaces

    Moving windows between workspaces is essential in any window manager.

    When a keybinding is pressed, may I suggest binding it to Mod+Shift+Number where number is the workspace to move the currently focussed window to, the currently focussed window should be taken from the current workspace, and moved to the workspace elsewhere. That workspace should then move it's focus to the moved window.

    enhancement good first issue Medium Priority 
    opened by curlpipe 0
  • Add monocle mode

    Add monocle mode

    Monocle mode is where a window is enlarged to fill the full screen size. Only one window can be placed into monocle mode at one time. By default, in monocle mode, other windows in the workspace unmap (hide) themselves. I suggest adding a monocle attribute to the workspace struct, to allow for multiple workspaces to have monocle mode, this can be an Option that is None when no monocle window is present, and Some for when there is one.

    enhancement Low Priority 
    opened by curlpipe 0
  • Configuration guidelines

    Configuration guidelines

    Hi There!

    I am not sure if I missed anything in the docs! However, I couldn't find anything related to the configuration as such. I am aware of the src configurations, but maybe a line or two about configuration would help those who'd like to test it on the fly.

    Thanks, DN-debug

    opened by DN-debug 0
  • Window titlebars

    Window titlebars

    Add window title bars with the title of the window, and a close button. They only have to be simple, they can be made more complex later on. They could also be used to drag windows around.

    enhancement Low Priority 
    opened by curlpipe 2
  • Handling multiple screens

    Handling multiple screens

    There are currently 3 ways to handle multiple screens

    1 (dwm style)

    Each screen has it's own set of workspaces

    2 (i3 style)

    Each screen is a view to a workspace, and the keyboard controls the screen with the mouse cursor in

    3 (default)

    A screen is an extension to a workspace

    I'm not sure which to choose, but perhaps there could be a way to configure it so that the user could choose the preferred method. For now, just one style could be used, with the configuration part coming later.

    enhancement High Priority 
    opened by curlpipe 2
  • Extra install instructions & screenshot update

    Extra install instructions & screenshot update

    Screenshot in the readme is outdated, requires an update that showcases the new window borders.

    Seeing as this issue is quite a small request, perhaps adding installation instructions for more distributions is a wise idea at this stage.

    • Void
    • Arch
    • Debian (might be the same as ubuntu, and in that case, make a note)
    • Gentoo

    That should cover most bases.

    documentation help wanted good first issue Low Priority 
    opened by curlpipe 1
Owner
StarWM
StarWM is an extensible window manager written in Rust. A @Cobweb-Aclevo project.
StarWM
Revolutionary Machine (revm) is a fast Ethereum virtual machine written in rust.

revm - Revolutionary Machine Is Rust Ethereum Virtual Machine with great name that is focused on speed and simplicity.

null 513 Dec 31, 2022
BM - a basic virtual machine written in rust

A basic virtual machine implementation with it's own binary format and assembly, as a learning experience.

KaviiSuri 1 May 8, 2022
Aftermath - a high-performance JVM for the TapVM framework written in the Rust

Aftermath Welcome to the source, my friend! Note -> This README is targetted towards users, not contributors. Please read the docs present at docs/for

null 6 Aug 1, 2022
LC3 Virtual Machine written in Rust 🦀

LC3 - Emulator LC3-rust is a virtual machine for the Little Computer 3 architecture, written using the Rust programming language. The VM has been writ

Gabriele Pappalardo 2 Oct 25, 2022
little computer 3 (lc3) virtual machine written in Rust

Little Computer 3 (LC3) Virtual Machine (by @lowlevelers) What is Little Computer 3? Little Computer 3, or LC-3, is a type of computer educational pro

LowLevelers 3 Oct 25, 2023
RailCar: Rust implementation of the Open Containers Initiative oci-runtime

railcar - rust implementation of the oci-runtime spec What is railcar? railcar is a rust implementation of the opencontainers initiative's runtime spe

Oracle 1.1k Dec 21, 2022
Advanced Rust quantum computer simulator

quantum Advanced Rust quantum computer simulator. Motivation Quantum is a quantum computer simulator written with the following design goals in mind:

Ben Eills 215 Jan 1, 2023
Rust bindings for the unicorn CPU emulator

unicorn-rs THIS PACKAGE IS DEPRECATED AND NO LONGER MAINTAINED. Rust bindings are now included with unicorn and will be maintained there from now on.

null 129 Oct 10, 2022
Rust API to the OS X Hypervisor framework for hardware-accelerated virtualization

hypervisor-rs hypervisor is a Rust library that taps into functionality that enables hardware-accelerated execution of virtual machines on OS X. It bi

Saurav Sachidanand 57 Dec 8, 2022
Dragonball-sandbox is a collection of Rust crates to help build custom Virtual Machine Monitors and hypervisors

Dragonball-sandbox is a collection of Rust crates to help build custom Virtual Machine Monitors and hypervisors. The crates here are considered to be the downstream of rust-vmm.

OpenAnolis Community 62 Dec 30, 2022
A toy Cairo VM implementation in Rust

oriac A toy Cairo VM implementation in Rust This is a toy implementation of the Cairo VM I'm building for learning purposes. There's no guarantee on w

Jonathan LEI 57 Nov 23, 2022
A Rust implementation of the Lox programming language. Based on clox, the bytecode virtual machine.

A Rust implementation of the Lox programming language. Based on clox, the bytecode virtual machine.

Diego Freijo 23 Dec 26, 2022
skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

Please note: skyWM is currently in heavy development and is not usable as of yet. Documentation and versions will change quickly. skyWM skyWM is an ex

MrBeeBenson 74 Dec 28, 2022
skyWM is an extensible tiling window manager written in Rust

skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

Chadano 74 Dec 28, 2022
skyWM is an extensible tiling window manager written in Rust

skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

Orbital 76 Apr 22, 2023
A floating, tag-based window manager written in Rust

worm worm is a floating, tag-based window manager for X11. It is written in the Rust programming language, using the X11RB library. Install cargo buil

null 627 Jan 4, 2023
Generic tiling window manager library in Rust

Pop Tiler Generic tiling window manager library for Rust, using an architecture based on GhostCell. License Licensed under the GNU Lesser General Publ

Pop!_OS 65 Dec 29, 2022
A window manager coded in rust

Tailwin A window manager coded in rust Thanks Victoruler for making the logo under a cc-by licence.

Arthur Melton 3 Jul 27, 2022
Minimal, flexible & user-friendly X and Wayland tiling window manager with rust

SSWM Minimal, flexible & user-friendly X and Wayland tiling window manager but with rust. Feel free to open issues and make pull requests. [Overview]

Linus Walker 19 Aug 28, 2023
A tiling window manager for Windows 10 based on binary space partitioning

yatta BSP Tiling Window Manager for Windows 10 Getting Started This project is still heavily under development and there are no prebuilt binaries avai

Jade 143 Nov 12, 2022