update documentation slightly, delete status before installing it so

that the user doesn't have to remove it if he doesn't want to use my
status bar anymore

alt+tab now doesn't break the position of the windows, because windows
are arranged on switcherend() due to arrange() call
This commit is contained in:
speedie 2023-01-16 18:51:37 +01:00
parent 3146ce160c
commit adf96a8119
8 changed files with 125 additions and 43 deletions

View file

@ -102,6 +102,7 @@ install: all
mkdir -p ${DESTDIR}${PREFIX}/share/speedwm
mkdir -p ${DESTDIR}${PREFIX}/share/xsessions/
mkdir -p ${DESTDIR}${PREFIX}/share/pixmaps/
rm -f "${DESTDIR}${PREFIX}/bin/status"
[ -f speedwm-ipc ] && cp -f speedwm-ipc ${DESTDIR}${PREFIX}/bin || :
[ -f status ] && cp -f status ${DESTDIR}${PREFIX}/bin || :
[ -f speedwm ] && cp -f speedwm ${DESTDIR}${PREFIX}/bin || :

View file

@ -3,24 +3,30 @@
## What is speedwm?
speedwm is a window manager forked from suckless.org's dwm or dynamic window manager. It manages the user's open windows and tiles them according to a set layout (dynamic).
Just like dwm, speedwm also tries to be minimal but also has functionality and aesthetics as a goal. It is also much more minimal than other window managers like i3-gaps while offering many more features.
Tiling window managers (unlike floating window managers that you may be used to) tile windows based on a set layout making them easy to get productive on.
They also encourage the user to use their keyboard instead of the mouse so that the user doesn't have to move their hands much but there are mouse keybinds and more can be added.
speedwm is a window manager forked from suckless.org's dwm or dynamic window manager. It manages the user's open windows and tiles them according to a set layout (dynamic).
Just like dwm, speedwm also tries to be minimal but also has functionality and aesthetics as a goal. Tiling window managers (unlike floating window managers that you may be used to) tile windows based on a set layout making them easy to get productive on. They also encourage the user to use their keyboard instead of the mouse so that the user doesn't have to move his hands much but there are also mouse binds and more can be added by the user if desired.
## Installation
In order to install this build of speedwm, all dependencies must be installed.
You can see (Dependencies) for a list of all dependencies required to use this fork.
You can see 'Dependencies' for a list of all dependencies required and optionally recommended to use speedwm.
- git clone https://codeberg.org/speedie/speedwm
- cd speedwm
- make clean install
- If any warnings/errors show up, fix it by installing the missing dependency.
- If a .xinitrc is used, add 'speedwm' to the end.
- If a .xinitrc is used, add `speedwm` to the end. If you're using .xinit you can also just `startx /usr/bin/speedwm`.
- If you do not have a .xinitrc, you can add autostart commands to the file ~/.config/speedwm/autostart.sh.
- If a display manager is used, make sure it supports .desktop entries.
- NOTE: `ly` is known to have issues with dwm and speedwm.
If you see a bar or at least a cursor, your X server is likely working.
If you do **not** see a cursor or a bar, and no keys seem to do anything, your X server is most likely not configured properly.
If you get sent back to the TTY, your X server is most likely not configured properly. In this case, see your distro's wiki page on how to set up X11.
Note that speedwm is not and will **never** be compatible with Wayland. I have no interest in ever supporting or developing for it. Please don't create any issues regarding Wayland support.
If you're having any issues on operating systems with the BSD kernel, or something like NixOS, please file a bug report here.
## Layouts
@ -679,19 +685,31 @@ Below is a list of all signums and what they do.
## Status bar
speedwm has a status bar. It's the right part of the bar. It supports Pango, status2d and statuscmd markup as well as regular plain text and colored emojis or glyphs. To override this status, you can use the 'speedwm -s <status>' command.
speedwm has a status bar. It's the (by default) right part of the bar. It supports:
- Pango markup
- Colored glyphs
The regular (non-powerline) bar also supports:
- status2d markup
- This allows you to color the status bar text at any time.
- statuscmd markup
- This allows the status bar to have clickable modules.
as well as regular plain text and colored emojis or glyphs. To override this status, you can use the 'speedwm -s "status text"' command. If you prefer, you can also use `xsetroot -name` which does the same thing.
Bundled with speedwm is a fork of dwmblocks. dwmblocks is a dwm status bar that handles this all for you through a block system. This fork has been integrated into the Makefile and is (by default) installed when speedwm is compiled. The status bar can be configured in the status.c and status.h.
By default the status bar runs modules that are also bundled with speedwm (see modules/ directory). To configure these modules, you can edit ~/.config/speedwm/statusrc which should be created when a module runs.
The bundled status bar is autostarted by speedwm if it is installed. If you want to use your own status bar, comment out 'USESTATUS' in toggle.mk and remove /usr/bin/status if speedwm has been installed previously. Then simply start the status bar through autostart.h, ~/.config/speedwm/autostart.sh or .xinitrc if you are using that.
The bundled status bar is autostarted by speedwm if it is installed. If you want to use your own status bar, comment out 'USESTATUS' in toggle.mk and remove /usr/bin/status if speedwm has been installed previously. Then simply start the status bar through autostart.h, ~/.config/speedwm/autostart.sh, .xinitrc or some other means of running a program.
## Additional note on autostart
If you wish to add autostart entries without recompiling, consider using $HOME/.config/speedwm/autostart.sh. This is a path added to autostart.h and you can fill it with anything you want.
Make sure your user has permission to execute the script.
These will NOT run when speedwm restarts.
Note that this script or any other commands in autostart.h will **not** run when speedwm is restarted, only when speedwm is first started.
## Credits
I far from wrote this entire project myself. Below are people who made this project what it is through submitting patches to suckless or otherwise contributing code in some way in alphabetical order.

View file

@ -3,10 +3,6 @@
## What is speedwm?
speedwm is a window manager forked from suckless.org's dwm or dynamic window manager. It manages the user's open windows and tiles them according to a set layout (dynamic).
Just like dwm, speedwm also tries to be minimal but also has functionality and aesthetics as a goal. It is also much more minimal than other window managers like i3-gaps while offering many more features.
Tiling window managers (unlike floating window managers that you may be used to) tile windows based on a set layout making them easy to get productive on.
They also encourage the user to use their keyboard instead of the mouse so that the user doesn't have to move their hands much but there are mouse keybinds and more can be added.
speedwm is a window manager forked from suckless.org's dwm or dynamic window manager. It manages the user's open windows and tiles them according to a set layout (dynamic).
Just like dwm, speedwm also tries to be minimal but also has functionality and aesthetics as a goal. Tiling window managers (unlike floating window managers that you may be used to) tile windows based on a set layout making them easy to get productive on. They also encourage the user to use their keyboard instead of the mouse so that the user doesn't have to move his hands much but there are also mouse binds and more can be added by the user if desired.

View file

@ -1,12 +1,22 @@
## Installation
In order to install this build of speedwm, all dependencies must be installed.
You can see (Dependencies) for a list of all dependencies required to use this fork.
You can see 'Dependencies' for a list of all dependencies required and optionally recommended to use speedwm.
- git clone https://codeberg.org/speedie/speedwm
- cd speedwm
- make clean install
- If any warnings/errors show up, fix it by installing the missing dependency.
- If a .xinitrc is used, add 'speedwm' to the end.
- If a .xinitrc is used, add `speedwm` to the end. If you're using .xinit you can also just `startx /usr/bin/speedwm`.
- If you do not have a .xinitrc, you can add autostart commands to the file ~/.config/speedwm/autostart.sh.
- If a display manager is used, make sure it supports .desktop entries.
- NOTE: `ly` is known to have issues with dwm and speedwm.
If you see a bar or at least a cursor, your X server is likely working.
If you do **not** see a cursor or a bar, and no keys seem to do anything, your X server is most likely not configured properly.
If you get sent back to the TTY, your X server is most likely not configured properly. In this case, see your distro's wiki page on how to set up X11.
Note that speedwm is not and will **never** be compatible with Wayland. I have no interest in ever supporting or developing for it. Please don't create any issues regarding Wayland support.
If you're having any issues on operating systems with the BSD kernel, or something like NixOS, please file a bug report here.

View file

@ -1,10 +1,21 @@
## Status bar
speedwm has a status bar. It's the right part of the bar. It supports Pango, status2d and statuscmd markup as well as regular plain text and colored emojis or glyphs. To override this status, you can use the 'speedwm -s <status>' command.
speedwm has a status bar. It's the (by default) right part of the bar. It supports:
- Pango markup
- Colored glyphs
The regular (non-powerline) bar also supports:
- status2d markup
- This allows you to color the status bar text at any time.
- statuscmd markup
- This allows the status bar to have clickable modules.
as well as regular plain text and colored emojis or glyphs. To override this status, you can use the 'speedwm -s "status text"' command. If you prefer, you can also use `xsetroot -name` which does the same thing.
Bundled with speedwm is a fork of dwmblocks. dwmblocks is a dwm status bar that handles this all for you through a block system. This fork has been integrated into the Makefile and is (by default) installed when speedwm is compiled. The status bar can be configured in the status.c and status.h.
By default the status bar runs modules that are also bundled with speedwm (see modules/ directory). To configure these modules, you can edit ~/.config/speedwm/statusrc which should be created when a module runs.
The bundled status bar is autostarted by speedwm if it is installed. If you want to use your own status bar, comment out 'USESTATUS' in toggle.mk and remove /usr/bin/status if speedwm has been installed previously. Then simply start the status bar through autostart.h, ~/.config/speedwm/autostart.sh or .xinitrc if you are using that.
The bundled status bar is autostarted by speedwm if it is installed. If you want to use your own status bar, comment out 'USESTATUS' in toggle.mk and remove /usr/bin/status if speedwm has been installed previously. Then simply start the status bar through autostart.h, ~/.config/speedwm/autostart.sh, .xinitrc or some other means of running a program.

View file

@ -1,5 +1,6 @@
## Additional note on autostart
If you wish to add autostart entries without recompiling, consider using $HOME/.config/speedwm/autostart.sh. This is a path added to autostart.h and you can fill it with anything you want.
Make sure your user has permission to execute the script.
These will NOT run when speedwm restarts.
Note that this script or any other commands in autostart.h will **not** run when speedwm is restarted, only when speedwm is first started.

View file

@ -26,21 +26,18 @@ layout (dynamic).
.PP
Just like dwm, speedwm also tries to be minimal but also has
functionality and aesthetics as a goal.
It is also much more minimal than other window managers like i3-gaps
while offering many more features.
.PP
Tiling window managers (unlike floating window managers that you may be
used to) tile windows based on a set layout making them easy to get
productive on.
They also encourage the user to use their keyboard instead of the mouse
so that the user doesn\[cq]t have to move their hands much but there are
mouse keybinds and more can be added.
.SS Installation
so that the user doesn\[cq]t have to move his hands much but there are
also mouse binds and more can be added by the user if desired.
## Installation
.PP
In order to install this build of speedwm, all dependencies must be
installed.
You can see (Dependencies) for a list of all dependencies required to
use this fork.
You can see `Dependencies' for a list of all dependencies required and
optionally recommended to use speedwm.
.IP \[bu] 2
git clone https://codeberg.org/speedie/speedwm
.IP \[bu] 2
@ -53,12 +50,33 @@ If any warnings/errors show up, fix it by installing the missing
dependency.
.RE
.IP \[bu] 2
If a .xinitrc is used, add `speedwm' to the end.
If a .xinitrc is used, add \f[V]speedwm\f[R] to the end.
If you\[cq]re using .xinit you can also just
\f[V]startx /usr/bin/speedwm\f[R].
.RS 2
.IP \[bu] 2
If you do not have a .xinitrc, you can add autostart commands to the
file \[ti]/.config/speedwm/autostart.sh.
.RE
.IP \[bu] 2
If a display manager is used, make sure it supports .desktop entries.
.IP \[bu] 2
NOTE: \f[V]ly\f[R] is known to have issues with dwm and speedwm.
.PP
If you see a bar or at least a cursor, your X server is likely working.
If you do \f[B]not\f[R] see a cursor or a bar, and no keys seem to do
anything, your X server is most likely not configured properly.
If you get sent back to the TTY, your X server is most likely not
configured properly.
In this case, see your distro\[cq]s wiki page on how to set up X11.
.PP
Note that speedwm is not and will \f[B]never\f[R] be compatible with
Wayland.
I have no interest in ever supporting or developing for it.
Please don\[cq]t create any issues regarding Wayland support.
.PP
If you\[cq]re having any issues on operating systems with the BSD
kernel, or something like NixOS, please file a bug report here.
.SS Layouts
.PP
speedwm comes with the following layouts:
@ -1341,10 +1359,32 @@ Below is a list of all signums and what they do.
.SS Status bar
.PP
speedwm has a status bar.
It\[cq]s the right part of the bar.
It supports Pango, status2d and statuscmd markup as well as regular
plain text and colored emojis or glyphs.
To override this status, you can use the `speedwm -s ' command.
It\[cq]s the (by default) right part of the bar.
It supports:
.IP \[bu] 2
Pango markup
.IP \[bu] 2
Colored glyphs
.PP
The regular (non-powerline) bar also supports:
.IP \[bu] 2
status2d markup
.RS 2
.IP \[bu] 2
This allows you to color the status bar text at any time.
.RE
.IP \[bu] 2
statuscmd markup
.RS 2
.IP \[bu] 2
This allows the status bar to have clickable modules.
.RE
.PP
as well as regular plain text and colored emojis or glyphs.
To override this status, you can use the `speedwm -s \[lq]status
text\[rq]' command.
If you prefer, you can also use \f[V]xsetroot -name\f[R] which does the
same thing.
.PP
Bundled with speedwm is a fork of dwmblocks.
dwmblocks is a dwm status bar that handles this all for you through a
@ -1363,15 +1403,19 @@ If you want to use your own status bar, comment out `USESTATUS' in
toggle.mk and remove /usr/bin/status if speedwm has been installed
previously.
Then simply start the status bar through autostart.h,
\[ti]/.config/speedwm/autostart.sh or .xinitrc if you are using that.
.SS Additional note on autostart
\[ti]/.config/speedwm/autostart.sh, .xinitrc or some other means of
running a program.
## Additional note on autostart
.PP
If you wish to add autostart entries without recompiling, consider using
$HOME/.config/speedwm/autostart.sh.
This is a path added to autostart.h and you can fill it with anything
you want.
Make sure your user has permission to execute the script.
.PP
These will NOT run when speedwm restarts.
Note that this script or any other commands in autostart.h will
\f[B]not\f[R] run when speedwm is restarted, only when speedwm is first
started.
## Credits
.PP
I far from wrote this entire project myself.

View file

@ -3680,6 +3680,8 @@ switcherend()
selmon->nclients = 0;
XUnmapWindow(dpy, selmon->tabwin);
XDestroyWindow(dpy, selmon->tabwin);
arrange(selmon);
}
void
@ -3775,7 +3777,7 @@ switcherstart(const Arg *arg)
++m->nclients;
}
if (m->nclients > 0) {
if (m->nclients > 1) {
m->clientsnext = (Client **) malloc(m->nclients * sizeof(Client *));
int listIndex = 0;
@ -3818,10 +3820,9 @@ switcherstart(const Arg *arg)
}
}
c = selmon->sel;
switcherend(); /* end the alt-tab functionality */
XUngrabKeyboard(dpy, CurrentTime); /* stop taking all input from keyboard */
focus(c);
focus(selmon->sel);
selmon->allowwarp = 1;
restack(selmon);