-
-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
7 additions
and
159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,162 +1,10 @@ | ||
# RagnarWM | ||
<img align="left" style="width:128px" src="https://github.com/cococry/ragnar/blob/main/branding/logo.png" width="128px"> | ||
|
||
**Ragnar is a feature-rich, straight-to-the-point dynamic window manager for X** | ||
|
||
<img src="https://github.com/cococry/Ragnar/blob/main/branding/logo.png" width="100" /> | ||
<img src="https://github.com/cococry/Ragnar/blob/main/branding/workflow.png" width="800" /> | ||
<img src="https://github.com/cococry/Ragnar/blob/main/branding/clean.png" width="800" /> | ||
The goal of ragnarwm is to create a window manager that can be used as a solid foundation | ||
for fully fledged desktop environments but also serve as a minimal daily driver. Ragnar | ||
contains about 5k lines of code which contain features like an IPC API, configuration file, | ||
tiling layouts, EWMH & ICCM implementation and much more key features. | ||
|
||
## Overview | ||
|
||
Ragnar is a minimal window manager for X written in C. | ||
The goal of this project is to create a window manager that has minimal bloat but | ||
is still aesthetic and usable. | ||
|
||
## Features | ||
|
||
- [x] Tiling layout | ||
- [x] Multi-monitor support | ||
- [x] Altering layout (Application switching, changing master size...) | ||
- [x] Fullscreening windows | ||
- [x] Multiple Desktops | ||
- [x] Status Bar | ||
- [x] Scratchpads | ||
- [x] Window decorations | ||
- [x] Auto Start Commands | ||
- [x] Multiple Layouts | ||
- [x] Full compositor Support | ||
- [x] Fully Featured/Configurable Bar UI | ||
- [x] Hover to select windows | ||
- [x] Support Extended Window Manager Hints | ||
- [X] Custom Keybindings for Commands | ||
- [ ] Sys-Trays for bar | ||
|
||
## Installation | ||
|
||
There is a script for Ubuntu users, all of the process is automated: | ||
|
||
```console | ||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/suleyman-kaya/Ragnar/main/ubuntu_installation.sh)" | ||
``` | ||
For Arch users there is also a installation script: | ||
|
||
```console | ||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/cococry/Ragnar/main/install/arch_installation.sh)" | ||
``` | ||
|
||
If you want to run Ragnar on your machine, | ||
clone this repo and install all dependencies with your package manager. | ||
|
||
For configuration, there is a [video guide on | ||
YouTube](https://youtu.be/uiArfZL0FFg) or go to | ||
the [Ragnar wiki](https://ragnarwm.org/wiki/config) | ||
### Install Dependencies | ||
- git | ||
- sudo | ||
- make | ||
- cc | ||
- xorg | ||
- xorg-xinit | ||
|
||
Clone the repo | ||
```console | ||
git clone https://github.com/cococry/Ragnar | ||
``` | ||
|
||
Installing the WM is as easy as | ||
```console | ||
cd Ragnar/ | ||
sudo make ragnar install | ||
``` | ||
|
||
Then, in your ~/.xinitrc add: | ||
``` | ||
exec ragnar | ||
``` | ||
|
||
If you are using a session manager you need to add ragnar to your sessions: | ||
```console | ||
sudo cp ragnar.desktop /usr/share/xsessions/ragnar.desktop | ||
``` | ||
|
||
### IMPORTANT | ||
|
||
In the [config.h](https://github.com/cococry/Ragnar/blob/main/config.h) file specify your monitor | ||
setup in order for the WM to work as intended. Also, for configuration of the WM use the config.h file. | ||
|
||
## Notes | ||
|
||
For the best experience, i suggest to use a X compositer like picom. I am using [picom pijulius](https://github.com/pijulius/picom) | ||
because i think it has very clean animation support. You can find my picom config [here](https://github.com/cococry/dotfiles/blob/main/picom/picom.conf) | ||
|
||
If you find bugs or have any problems with Ragnar, feel free to [submit an issue](https://github.com/cococry/Ragnar/issues). | ||
|
||
|
||
## Inspiration | ||
|
||
RagnarWM is mainly inspired by [dwm](https://dwm.suckless.org). | ||
I, myself used dwm as my main window manager in the past and | ||
i really liked the minimalist style of it. But i found | ||
it really frustrating how the default dwm repository was | ||
pretty much unusable out of the box. A lot | ||
of main features are non-existend in dwm or | ||
poorly designed. That's why i was inspired to create | ||
a minimal window manager that comes with usablity | ||
out of the box. I don't think usablity and features | ||
have to suffer with minimalism. But don't get | ||
me wrong, dwm is a great window manager and i | ||
had a really nice time using it. | ||
|
||
|
||
## Usage | ||
|
||
### Configuration | ||
Configuring Ragnar is a similar process as configuring | ||
[dwm](https://dwm.suckless.org). There is a config.h file | ||
with macros you can change and lists you can change to | ||
your liking. The config is written in a way, so that people | ||
without any experience in C can read it and change it. | ||
|
||
If you changed your configuration, just use: | ||
```console | ||
sudo make clean ragnar install | ||
``` | ||
|
||
And Press Super + C to shutdown the WM. | ||
Then, in the tty use *startx* to restart the WM. | ||
|
||
### Default Keybindings | ||
|
||
| Keybind | Action | | ||
| ----------------|-------------| | ||
| SUPER + Middle Mouse | Hard-Select Window | ||
| SUPER + Enter | Open terminal | | ||
| SUPER + W | Open Web-browser | | ||
| SUPER + S | Open Application Launcher | | ||
| SUPER + Q | Quit Application | | ||
| SUPER + C | Quit WM | | ||
| SUPER + Space | Add window to layout | | ||
| SUPER + Up Arrow | Move window up in layout | | ||
| SUPER + Down Arrow | Move window down in layout | | ||
| SUPER + L | Increase master size in layout | | ||
| SUPER + H | Decrease master size in layout | | ||
| SUPER + J | Increase slave size in layout | | ||
| SUPER + K | Decrease slave size in layout | | ||
| SUPER + Plus | Increase gap size of windows | | ||
| SUPER + Minus | Decrease gap size of windows | | ||
| SUPER + F | Fullscreen selected window | | ||
| SUPER + Shift + T | Set tiled master layout | | ||
| SUPER + Shift + X | Set horizontal stripes layout | | ||
| SUPER + Shift + M | Set vertical stripes layout | | ||
| SUPER + Shift + V | Set horizontal master layout | | ||
| SUPER + Shift + R | Set floating layout | | ||
| SUPER + A | Cycle desktop down | | ||
| SUPER + D | Cycle desktop up | | ||
| SUPER + O | Cycle window one desktop down | | ||
| SUPER + P | Cycle window one desktop down | | ||
| SUPER + B | Cycle bar one monitor down | | ||
| SUPER + N | Cycle bar one monitor up | | ||
| SUPER + I | Toggle bar visibility | | ||
| SUPER + Tab | Cycle through windows | | ||
| SUPER + U | Toggle window decorations | | ||
| SUPER + 1 | Terminal scratchpad | | ||
| SUPER + 2 | Vim scratchpad | | ||
--- |