takikawa / rwind Goto Github PK
View Code? Open in Web Editor NEWThis project forked from metaxal/rwind
Window manager in the Racket programming language
License: GNU Lesser General Public License v3.0
This project forked from metaxal/rwind
Window manager in the Racket programming language
License: GNU Lesser General Public License v3.0
==== RWind ==== The Racket Window Manager An extensible window manager aiming to be similar to Sawfish (http://sawfish.wikia.com), but written in the Racket programming language (http://www.racket-lang.org). Warnings: --------- - This package is under current development and is in no way stable, and is intended for testing purposes only. - No backward compatibility will be ensured in the 0.x branch - Due to a security issue, the current version should not be used on multiple user computers. Use at your own risk! Current features: ----------------- - Client command line (repl) - Customization of key bindings and mouse bindings - Workspaces with several modes: - single mode: one workspace over all monitors - multi mode: one workspace per monitor - xinerama support (currently only through repl) - Very simple frames (currently only through repl, and buggy) - Very little ICCCM/EWMH compliance - _NET_VIRTUAL_ROOTS All these features are in development stage. Installation: ------------- 1) Install Racket: http://www.racket-lang.org 2) Create a directory where to place Racket projects (e.g., /home/me/Programming/Racket), then do, in this directory: git clone http://github.com/kazzmir/x11-racket.git git clone http://github.com/Metaxal/RWind.git raco link x11-racket raco link --name rwind RWind raco setup x11-racket rwind 3) Copy the provided .xinitrc-rwind file in your home directory, and modify its contents according to your installation. 4) Optional, but recommended: Copy (or link) and rename one of the files in the user-script-examples directory to $XDG_CONFIG_HOME/rwind/config.rkt (or to $HOME/.config/rwind/config.rkt if the xdg environment variable is not set). Take a look at the file to know what key and mouse bindings are defined. You can modify it as you want. The file simple.rkt defines a number of default key and mouse bindings. - Control-left-button to move a window around - Control-right-button to resize the window - Control-Alt-t to open xterm - Alt-F4 to close a window - Alt-F12 opens the client - Super-F1-3 switches between workspaces - Shift-Super-F1-3 moves the current window to another workspace 5a) In a login shell, in RWind's directory, type the following: xinit .xinitrc-rwind -- :1 & You may need to modify the display ":1" to ":2" for example if ":1" is not available. Press Alt-Escape to quit the session. 5b) You can also test with Xephyr (from the xserver-xephyr package), that creates a nested X session (thanks to Asumu), in RWind's directory: Xephyr -ac -noreset -screen 800x600 :1 & DISPLAY=:1.0 ./run.sh & However it may not support RWind properly. Installation for use in lightdm/gdm: ------------------------------------ Do steps 1-4) of the installation above. 1) In rwind directory, compile and install the executable with: raco exe rwind.rkt && sudo cp rwind /usr/bin 2) Copy the provided file rwind.desktop to /usr/share/xsessions/rwind.desktop 3) Close your session, choose RWind in the session menu and open your session. The client: ----------- The client is a console where you can evaluate expressions. In RWind's directory, it can be opened in a terminal with: racket client.rkt Try for example: > (map window-name (window-list)) The list of available symbols provided by RWind is given by: > (known-identifiers) All bindings of '#lang racket' are available too. You can get help on a known identifier with: > (describe 'window-list) Debugging: ---------- An easy way to enable debugging is to type in a login shell (in RWind's directory): ./compile-debug.sh xinit .xinit-rwind-debug -- :1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.