Skip to content
GitLab
About GitLab
GitLab: the DevOps platform
Explore GitLab
Install GitLab
How GitLab compares
Get started
GitLab docs
GitLab Learn
Pricing
Talk to an expert
/
Help
What's new
2
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Switch to GitLab Next
Projects
Groups
Snippets
Sign up now
Login
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tinu Weber
karuiwm
Commits
61c81745
Commit
61c81745
authored
Jan 03, 2014
by
Tinu Weber
Browse files
Rename stwm to karuiwm.
There already exist WMs with that name. karui (軽い) = light, lightweight
parent
017a1c7c
Changes
7
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
61c81745
st
wm
karui
wm
*.swp
config.h
Makefile
View file @
61c81745
...
...
@@ -5,21 +5,21 @@ INSTALLDIR=/usr/local
build
:
@
[
-f
config.h
]
||
cp
config.def.h config.h
${CC}
${CFLAGS}
st
wm.c
${LFLAGS}
-o
st
wm
${CC}
${CFLAGS}
karui
wm.c
${LFLAGS}
-o
karui
wm
scan
:
scan-build make debug
install
:
install
st
wm
${INSTALLDIR}
/bin/
st
wm
install
karui
wm
${INSTALLDIR}
/bin/
karui
wm
uninstall
:
rm
${INSTALLDIR}
/bin/
st
wm
rm
${INSTALLDIR}
/bin/
karui
wm
# for ayekat, for developing
devbuild
:
CFLAGS += -g -DDEBUG
devbuild
:
build
devrun
:
PATH
=
"
${PWD}
:
${PATH}
"
xinit ./
st
wm
--
:1
PATH
=
"
${PWD}
:
${PATH}
"
xinit ./
karui
wm
--
:1
dev
:
devbuild devrun
README.md
View file @
61c81745
st
wm
====
karui
wm
====
===
st
wm is a
small
, dynamically tiling window manager for X.
karui
wm is a
lightweight
, dynamically tiling window manager for X.
It is based on
[
dwm
](
http://dwm.suckless.org/
)
and inspired by
[
xmonad
](
http://xmonad.org/
)
.
...
...
@@ -10,10 +10,11 @@ It is based on [dwm](http://dwm.suckless.org/) and inspired by
build
-----
stwm requires Xlib and Xinerama to be installed on the system. It is also highly
recommended to install dmenu, since some workspace-related actions rely on it.
karuiwm requires Xlib and Xinerama to be installed on the system. It is also
highly recommended to install dmenu, since some workspace-related actions rely
on it.
This will create the binary
<code>
st
wm
</code>
:
This will create the binary
<code>
karui
wm
</code>
:
make
...
...
@@ -23,8 +24,8 @@ install
make install
as root will install
st
wm to
<code>
/usr/local/bin
</code>
by default; modify
the
Makefile to change the installation directory.
as root will install
karui
wm to
<code>
/usr/local/bin
</code>
by default; modify
the
Makefile to change the installation directory.
uninstall
...
...
@@ -32,9 +33,9 @@ uninstall
make uninstall
as root will remove
st
wm from your system. Alternatively, you may simply
delete
the
<code>
st
wm
</code>
binary from
<code>
/usr/local/bin
</code>
(or
where ever you
installed it to).
as root will remove
karui
wm from your system. Alternatively, you may simply
delete
the
<code>
karui
wm
</code>
binary from
<code>
/usr/local/bin
</code>
(or
where ever you
installed it to).
run
...
...
@@ -46,29 +47,30 @@ to your home directory, then launch <code>xinit</code>.
Here is an example
<code>
.xinitrc
</code>
:
#!/bin/sh
# xinitrc to launch
st
wm
# xinitrc to launch
karui
wm
# set sane keyboard layout:
setxkbmap -layout ch -option 'caps:swapescape' &
# launch
st
wm:
exec
st
wm
# launch
karui
wm:
exec
karui
wm
You may add other actions to
<code>
.xinitrc
</code>
, but make sure that
<code>
exec
st
wm
</code>
comes at last (since everything after that won't get
<code>
exec
karui
wm
</code>
comes at last (since everything after that won't get
executed).
configure
---------
<code>
config.h
</code>
holds the configuration of
st
wm and gets included by
<code>
st
wm.c
</code>
upon compilation.
<code>
config.h
</code>
holds the configuration of
karui
wm and gets included by
<code>
karui
wm.c
</code>
upon compilation.
<code>
config.def.h
</code>
holds the default configuration of stwm. When running
<code>
make
</code>
, this file will be used to generate a
<code>
config.h
</code>
if
that one doesn't exist yet. This protects your configuration from being
overwritten by the default upon checking out the git repository.
<code>
config.def.h
</code>
holds the default configuration of karuiwm. When
running
<code>
make
</code>
, this file will be used to generate a
<code>
config.h
</code>
if that one doesn't exist yet. This protects your
configuration from being overwritten by the default upon checking out the git
repository.
These are the default settings defined by the
<code>
keys
</code>
array;
<code>
Mod
</code>
is set to the Mod1 (
<code>
Alt
</code>
) key:
...
...
@@ -143,9 +145,9 @@ These are the default settings defined by the <code>keys</code> array;
**Session**
*
<code>
Mod
</code>
+
<code>
q
</code>
restart
st
wm
restart
karui
wm
*
<code>
Mod
</code>
+
<code>
Shift
</code>
+
<code>
q
</code>
quit
st
wm
quit
karui
wm
The mouse can be configured via the
<code>
buttons
</code>
array and currently
supports following actions:
...
...
@@ -159,16 +161,16 @@ supports following actions:
appendix A: layouts
-------------------
st
wm is a
*dynamically tiling window manager*
, this means that it
automatically
arranges windows following certain dynamically changable rules,
called
*layouts*
. This allows the user to focus on the workflow instead of
having to
arrange windows manually.
karui
wm is a
*dynamically tiling window manager*
, this means that it
automatically
arranges windows following certain dynamically changable rules,
called
*layouts*
. This allows the user to focus on the workflow instead of
having to
arrange windows manually.
You can cycle through the layouts with
<code>
Mod
</code>
+
<code>
Space
</code>
; the
windows will get arranged automatically.
The layouts are defined in
<code>
layout.h
</code>
; the array at the end of the
file contains the layouts that will be actually used in your personal
st
wm
file contains the layouts that will be actually used in your personal
karui
wm
setup. Every layout below the
<code>
NULL
</code>
entry will not be accessible
through the usual layout cycling.
...
...
@@ -182,9 +184,9 @@ shouldn't be a problem).
appendix B: workspaces
----------------------
Workspaces in
st
wm are arranged in a two-dimensional grid, and they are
created
and destroyed dynamically. A workspace may be considered either
*persistent*
(it remains if left) or
*temporary*
(leaving it destroys it).
Workspaces in
karui
wm are arranged in a two-dimensional grid, and they are
created
and destroyed dynamically. A workspace may be considered either
*persistent*
(it remains if left) or
*temporary*
(leaving it destroys it).
Whether a workspaces is temporary or persistent depends on the number of clients
on that workspace; an empty workspace is considered temporary, whereas it
...
...
@@ -213,8 +215,8 @@ appendix C: scratchpad
----------------------
A scratchpad is a window that can easily be displayed and dismissed, typically a
terminal emulator to spontaneously type a command. In
st
wm, the scratchpad
can
be toggled by hitting
<code>
Mod
</code>
+
<code>
Tab
</code>
.
terminal emulator to spontaneously type a command. In
karui
wm, the scratchpad
can
be toggled by hitting
<code>
Mod
</code>
+
<code>
Tab
</code>
.
At startup, no client is defined as the scratchpad (thus toggling it won't have
any effect); one first needs to define a client as the scratchpad by hitting
...
...
@@ -224,9 +226,9 @@ any effect); one first needs to define a client as the scratchpad by hitting
appendix D: Xinerama (aka multi-monitor)
----------------------------------------
st
wm comes with Xinerama support and is thus capable of handling a
multi-monitor
setup. Unlike its parent dwm however (which assigns a separate tag
set to each
monitor),
st
wm uses a unified workspace set for all monitors.
karui
wm comes with Xinerama support and is thus capable of handling a
multi-monitor
setup. Unlike its parent dwm however (which assigns a separate tag
set to each
monitor),
karui
wm uses a unified workspace set for all monitors.
Once a monitor is added, it will attempt to display the next undisplayed
workspace; if there is none, it will create a new workspace nearby and move its
...
...
@@ -244,5 +246,5 @@ Feature requests are welcome too, as long as they do not require me to add a
thousand lines of code or change the programming language.
In the unlikely case there is any need for support, visit
<code>
irc.freenode.net#
st
wm
</code>
.
<code>
irc.freenode.net#
karui
wm
</code>
.
TODO
View file @
61c81745
stwm todo list
==============
stwm
x
todo list
==============
=
* add pixmaps for rendering statusbar and WSM boxes
* draw *all* WSM boxes (removes unnecessary calculations about which one to show
...
...
config.def.h
View file @
61c81745
/*
st
wm configuration */
/*
karui
wm configuration */
#define FONTSTR "-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1"
#define NMASTER 1
/* number of clients in master area */
...
...
@@ -37,7 +37,7 @@ static char const *dmenuprompt[DMENU_LAST] = {
[
DMENU_SEND
]
=
"send to"
,
[
DMENU_SENDFOLLOW
]
=
"follow to"
,
[
DMENU_SPAWN
]
=
"spawn"
,
[
DMENU_VIEW
]
=
"
view
workspace"
,
[
DMENU_VIEW
]
=
"workspace"
,
};
static
char
const
*
dmenuargs
[]
=
{
"-l"
,
"10"
,
"-nf"
,
"#888888"
,
"-nb"
,
"#222222"
,
...
...
st
wm.c
→
karui
wm.c
View file @
61c81745
...
...
@@ -19,7 +19,7 @@
#include
<X11/extensions/Xinerama.h>
/* macros */
#define APPNAME "
st
wm"
#define APPNAME "
karui
wm"
#define APPVERSION "0.1"
#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
#define CLIENTMASK (EnterWindowMask|PropertyChangeMask|StructureNotifyMask)
...
...
layout.h
View file @
61c81745
/*
st
wm layout definitions */
/*
karui
wm layout definitions */
/* horizontally arranged master at top, horizontally arranged stack at bottom */
void
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment