Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

env:
CARGO_TERM_COLOR: always

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
37 changes: 29 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,43 @@ A floating window manager, like the \*box family of window managers as well as W

Tags are a unique concept borrowed from window managers like DWM and Awesome. Instead of workspaces having windows, windows have tags. This is a very unique concept. You can view 3 separate tags at a time, or have a window on 3 separate tags. Right now only the use case of being used like workspaces is supported, but internally the foundation for tags is there; just needs to be exposed to the user with IPC support.

## Get (git) the code - a refresher if needed

Depending on where you store your source code, go to the parent folder of your other git projects (if any), or where you want this code repo to be.
## Building
Building requires cargo/rust to be installed on your system.
Simply clone this git repository and build with cargo:
```
$ git clone https://github.com/codic12/worm
$ cd worm
$ cargo build --release
```
## Install

You'll find the binaries in the `target/release` directory.

## Installing
After building, copy `worm` and `wormc` to a directory listed in the PATH variable.
(typically you'd put it into `/usr/local/bin`)

```
$ cargo build --release
$ sudo cp target/release/{worm,wormc} /usr/local/bin/
```
In the target/release directory you should find two binaries, `worm` and `wormc`. Put them somewhere in your path, and then launch as usual - whether with a display manager or via startx (~/.xinitrc).

Or, if you're running an Arch based system, check out the AUR package [worm-git](https://aur.archlinux.org/packages/worm-git/), kindly maintained by `moson`.
For those of you using a display manager, you can copy the `worm.desktop` file located in `assets` to your xsessions directoy.

```
$ sudo cp assets/worm.desktop /usr/share/xsessions/
```

If you're running an Arch-based distribution, you can use the [worm-git](https://aur.archlinux.org/packages/worm-git/) AUR package to build and install worm.


## Autostart / configuration
Worm will try to execute the file `~/.config/worm/autostart` on startup.
Simply create it as a shell-script to execute your favorite applications with worm.
(don't forget to make it executable)

An example can be found [here](examples/autostart)

## Screenshot
![](screenshot.png)
![](assets/screenshot.png)

## Contribute
Use it! Spread the word! Report issues! Submit pull requests!
Expand Down
File renamed without changes
6 changes: 6 additions & 0 deletions assets/worm.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[Desktop Entry]
Name=Worm
Comment=A floating, tag-based window manager written in Rust
Exec=worm
DesktopNames=Worm
Type=Application
23 changes: 23 additions & 0 deletions examples/autostart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

##
## This file is being executed by worm during startup
## Place it in your .config folder at ~/.config/worm/
##

## Autostart applications
# Start polybar
polybar mybar &

# Start firefox browser
firefox &

# Start terminal
xfce4-terminal

## worm settings
# Set border width to 1 px
wormc border-width 1

# Set border color (base 10 value). F.e.: 0x1793D1 -> 1545169
wormc border-pixel 1545169