You are not logged in.
How would i use 'urxvtcd -e tmux' as my spawn_term command, so that when I hit Mod+Shift+Return, urxvtcd opens and runs tmux? I put "urxvtcd -e tmux" in .scrotwm.conf, with and without quotes, but neither works.
urxvtd is the daemon, urxvtc is the client. I'm not sure of the syntax for the scrotwm.conf, but you should probably try "urxvtc -e tmux" - and lauch the daemon from your .xinitrc...
Offline
As an another example, here's my baraction.sh
It's a lot simpler than the wiki example, but in addition it also gives me some basic info about the status of my Internet connection and the main processes running.
#!/bin/bash
# baraction.sh for scrotwm status bar
SLEEP_SEC=5
#loops forever outputting a line every SLEEP_SEC secs
while :; do
BAT_CHGSTATE=$(cat /proc/acpi/battery/BAT0/state | awk '/charging state/ {print $3}')
if [[ $BAT_CHGSTATE = discharging ]]; then
AC_STATUS="ON BATT"
else
AC_STATUS="ON AC"
fi
POWER_STR="$AC_STATUS $BAT_CHGSTATE"
#scrotwm bar_print can't handle UTF-8 characters, such as degree symbols
CORE0TEMP=$(cat /proc/acpi/thermal_zone/TZS0/temperature | awk '{print $2}')
CORE1TEMP=$(cat /proc/acpi/thermal_zone/TZS1/temperature | awk '{print $2}')
TEMP_STR="Cpu temp = $CORE0TEMP,$CORE1TEMP"
if [[ -n $(grep eth0 /proc/net/route) ]]; then
NET_STR="Wired connection"
elif [[ -n $(grep wlan0 /proc/net/route) ]]; then
WLAN_ESSID=$(iwconfig wlan0 | awk -F "\"" '/wlan0/ {print $2}')
NET_STR="Connected to $WLAN_ESSID"
else
NET_STR="No connection"
fi
CPULOAD_STR="Load:$(uptime | sed 's/.*://; s/,//g')"
if [[ -n $(amixer get PCM | grep off) ]]; then
VOL_STR="Mute"
else
VOLUME=$(amixer get PCM | tail -1 | awk '{print $5}' | tr -d '[]')
VOL_STR="Vol. $VOLUME"
fi
eval $(top -b -n 1 | awk 'NR==8,NR==10 {print $12,$9,$10}' | tr '\n' ' ' | awk '{printf "PROC1=%s; PROC1_C=%s; PROC1_M=%s;\
PROC2=%s; PROC2_C=%s; PROC2_M=%s; PROC3=%s; PROC3_C=%s; PROC3_M=%s", $1,$2,$3,$4,$5,$6,$7,$8,$9};' -)
PROC_STR="$PROC1: Cpu $PROC1_C% Mem $PROC1_M% :: $PROC2: Cpu $PROC2_C% Mem $PROC2_M% :: $PROC3: Cpu $PROC3_C% Mem $PROC3_M%"
eval $(date "+DATE_DAY=%a DATE_MTH=%b DATE_NUM=%d DATE_TM=%R")
DATE_STR="$DATE_DAY, $DATE_MTH $DATE_NUM :: $DATE_TM"
echo -e "$POWER_STR | $TEMP_STR | $CPULOAD_STR | $NET_STR | $VOL_STR | $PROC_STR | $DATE_STR"
sleep $SLEEP_SEC
done
Edited: Much simpler version, and added volume info.
Last edited by riverrun (2010-09-27 08:25:10)
Offline
urxvtd is the daemon, urxvtc is the client. I'm not sure of the syntax for the scrotwm.conf, but you should probably try "urxvtc -e tmux" - and lauch the daemon from your .xinitrc...
Thanks, Jason. Actually, urxvtcd is this script:
#!/bin/sh
urxvtc "$@"
if [ $? -eq 2 ]; then
urxvtd -q -o -f
urxvtc "$@"
fi
Basically, it tries to run the client and it if can't because the server is not running, it starts the server and then tries to launch the client again.
Anyway, I will try updating to a more recent version of scrotwm and see if that makes this any easier.
Offline
My spawn_term command launched (not using scrotwm atm, but it's still installed) the same script as that and works. I don't pass in any parameters in that one, but other program specs call the same script and do pass in -e parameters. They all work too. None of them are called with quotes.
You could wrap the urxvtcd script with one that passes the -e tmux call and call that from scrotwm?
"...one cannot be angry when one looks at a penguin." - John Ruskin
"Life in general is a bit shit, and so too is the internet. And that's all there is." - scepticisle
Offline
Yes, I created a script called turxvtcd which consists of the line 'urxvtcd -e tmux'. I would still rather find a nicer solution, but I also like stuff that works.
Offline
Several patches went into the cvs repository the big one being basic support for EWMH. Please test and report back.
I broke down due to community pressure and put up a wiki at http://opensource.conformal.com/wiki/Scrotwm
The CVS repo also moved to conformal and it is at: CVSROOT=anoncvs@opensource.conformal.com:/anoncvs/scrotwm
Offline
Great news, but it tells me:
Makefile:2: *** missing separator. Stop.
when I do:
make PREFIX=/usr
Offline
Great news, but it tells me:
Makefile:2: *** missing separator. Stop.
when I do:
make PREFIX=/usr
User error.
Compiles w/o problem on OpenBSD and Arch.
cd linux
make PREFIX=/usr
sudo make install
Offline
Yes, certainly, there was no "linux" directory last time I revised my PKGBUILD for scrotwm. Thanks.
Offline
Yes, certainly, there was no "linux" directory last time I revised my PKGBUILD for scrotwm. Thanks.
export CVS_RSH=/usr/bin/ssh
cvs -d anoncvs@opensource.conformal.com:/anoncvs/scrotwm get scrotwm
Offline
Yes, certainly, there was no "linux" directory last time I revised my PKGBUILD for scrotwm. Thanks.
Feel free to crib from http://aur.archlinux.org/packages.php?ID=23487 and http://aur.archlinux.org/packages.php?ID=31789
Offline
I have been trying out ScrotWM on my new notebook and I quite like it. Having trouble customizing the themes though, is there a specific location that ScrotWM looks for GTK themes? And if it just defaults off of the default location, where is it?
Nevermind, I figured it out, I had some files named improperly. Loving ScrotWM thus far, definitely will be using it from now on.
Last edited by forwardslash (2010-10-13 14:34:17)
Offline
I dropped a new version.
Offline
Whooo EWMH. So, what does this mean? You can have a tray. Or a dock. And it won't fill up half your screen.
If you like eye candy and wasting screen real estate: lightest tray is trayer (in extra). Lightest dock/launcher is adeskbar (in AUR).
Marco, I do believe you can close that one feature request :-)
But it is replaced with two more feature requests. I can't seem to reserve space for the bar. Tried setting a smaller region, to no avail. It also does not carry across workspaces. (Or did I miss a quirk?)
Also, there is not enough support of the standard to make wmctrl useful.
Offline
Please log requests at: http://opensource.conformal.com/flyspra … t=8&status[]=
You can fart with regions to get the are for the bar but that blows. I'll do something simpler in the future. Just make sure you log the requests so that I don't forget.
Diffs welcome too :-)
Offline
Super alpha why-am-even-posting-this patch. Tabs/spaces are messed up and it does not handle the Mod+b elegantly. Needs testing. I have no clue what it will do on multihead.
This patch makes it simple to reserve a chunk of the edge of the screen and shows select apps on all workspaces.
Add
edge = N/E/S/W
to your conf, where N is the pixels on the north edge, etc. So "edge = 0/0/0/0" reserves no space.
There is a new quirk, PINNED, that will carry apps across all workspaces. It is automatically applied to docks/trays/whatnot. I am considering rewriting send_to_ws(). Right now you can not tell it to move a particular window. Instead it finds the focused window and moves that. Little too magic for my taste, and this patch has to dance around it. Will probably break it into send_win_to_ws() and send_focused_to_ws(), the latter being a thin wrapper.
--- scrotwm.c.orig 2010-10-22 02:28:47.000000000 -0400
+++ scrotwm.c 2010-10-23 12:52:15.000000000 -0400
@@ -203,6 +203,7 @@ int bar_extra = 1;
int bar_extra_running = 0;
int bar_verbose = 1;
int bar_height = 0;
+int edge[] = {0,0,0,0};
int stack_enabled = 1;
int clock_enabled = 1;
char *clock_format = NULL;
@@ -400,6 +401,7 @@ struct quirk {
#define SWM_Q_ANYWHERE (1<<2) /* don't position this window */
#define SWM_Q_XTERM_FONTADJ (1<<3) /* adjust xterm fonts when resizing */
#define SWM_Q_FULLSCREEN (1<<4) /* remove border */
+#define SWM_Q_PINNED (1<<5) /* pin to all workspaces */
};
int quirks_size = 0, quirks_length = 0;
struct quirk *quirks = NULL;
@@ -549,7 +551,7 @@ ewmh_autoquirk(struct ws_win *win)
type == ewmh[_NET_WM_WINDOW_TYPE_TOOLBAR].atom ||
type == ewmh[_NET_WM_WINDOW_TYPE_UTILITY].atom) {
win->floating = 1;
- win->quirks = SWM_Q_FLOAT | SWM_Q_ANYWHERE;
+ win->quirks = SWM_Q_FLOAT | SWM_Q_ANYWHERE | SWM_Q_PINNED;
break;
}
if (type == ewmh[_NET_WM_WINDOW_TYPE_SPLASH].atom ||
@@ -1851,6 +1853,18 @@ switchws(struct swm_region *r, union arg
return;
if (new_ws == old_ws)
return;
+
+ /* drag pinned apps along */
+ a.id = new_ws->idx;
+ TAILQ_FOREACH(win, &old_ws->winlist, entry) {
+ if (win->quirks && SWM_Q_PINNED) {
+ /* what to move is inferred from what is focused */
+ old_ws->focus_prev = old_ws->focus;
+ old_ws->focus = win;
+ send_to_ws(win->ws->r, &a);
+ }
+ }
other_r = new_ws->r;
if (other_r == NULL) {
@@ -2224,6 +2238,11 @@ stack(void) {
g.y += bar_height;
g.h -= bar_height;
}
+ /* should probably use max(bar_height, edge[0]) */
+ g.x += edge[3];
+ g.y += edge[0];
+ g.w -= edge[1] + edge[3];
+ g.h -= edge[0] + edge[2];
r->ws->cur_layout->l_stack(r->ws, &g);
/* save r so we can track region changes */
r->ws->old_r = r;
@@ -3786,6 +3805,7 @@ const char *quirkname[] = {
"ANYWHERE",
"XTERM_FONTADJ",
"FULLSCREEN",
+ "PINNED",
};
/* SWM_Q_WS: retain '|' for back compat for now (2009-08-11) */
@@ -3943,12 +3963,13 @@ enum { SWM_S_BAR_DELAY, SWM_S_BAR_ENABLE
SWM_S_TITLE_CLASS_ENABLED, SWM_S_TITLE_NAME_ENABLED,
SWM_S_FOCUS_MODE, SWM_S_DISABLE_BORDER, SWM_S_BAR_FONT,
SWM_S_BAR_ACTION, SWM_S_SPAWN_TERM, SWM_S_SS_APP, SWM_S_DIALOG_RATIO,
- SWM_S_BAR_AT_BOTTOM
+ SWM_S_BAR_AT_BOTTOM, SWM_S_NESW_EDGES
};
int
setconfvalue(char *selector, char *value, int flags)
{
+ int i;
switch (flags) {
case SWM_S_BAR_DELAY:
bar_delay = atoi(value);
@@ -4025,6 +4046,16 @@ setconfvalue(char *selector, char *value
if (dialog_ratio > 1.0 || dialog_ratio <= .3)
dialog_ratio = .6;
break;
+ case SWM_S_NESW_EDGES:
+ /* messy, but I figured adding scratch vars was worse */
+ for (i=0; i<3; i++)
+ {
+ *(strchr(value, '/')) = '\0';
+ edge[i] = atoi(value);
+ value += strlen(value) + 1;
+ }
+ edge[3] = atoi(value);
+ break;
default:
return (1);
}
@@ -4097,6 +4128,7 @@ struct config_option configopt[] = {
{ "title_name_enabled", setconfvalue, SWM_S_TITLE_NAME_ENABLED },
{ "focus_mode", setconfvalue, SWM_S_FOCUS_MODE },
{ "disable_border", setconfvalue, SWM_S_DISABLE_BORDER },
+ { "edge", setconfvalue, SWM_S_NESW_EDGES },
};
Last edited by keenerd (2010-10-23 17:20:00)
Offline
ssh: Could not resolve hostname opensource.conformal.com: Name or service not known
I hope, it's a temporary problem.
Offline
I emailed Marco about it. In the meantime, here is a mirror:
http://kmkeen.com/tmp/scrotwm-0.9.27.tgz
If it stays down another day or two I'll tweak the pkgbuild.
Offline
Hi everyone! I'm having a problem with scrotwm-cvs when i yaourt -S scrotwm-cvs.. This is the output:
==> Downloading scrotwm-cvs PKGBUILD from AUR...
x LICENSE
x PKGBUILD
x baraction.sh
x scrotwm.desktop
First Submitted: Fri, 06 Nov 2009 19:38:39 +0000
scrotwm-cvs 20101022-1 : A minimalistic dynamic tiling window manager that tries to stay out of the way.
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n
==> scrotwm-cvs dependencies:
- dmenu (already installed)
- libxrandr (already installed)
- profont (already installed)
- cvs (already installed)
- openssh (already installed)
==> scrotwm-cvs conflicts:
- scrotwm-0.9.28-1
==> Continue building scrotwm-cvs ? [Y/n]
==> -------------------------------------
==>
==> Building and installing package
==> Determining latest cvs revision...
-> Version found: 20110223
==> Making package: scrotwm-cvs 20110223-1 (Wed Feb 23 13:31:27 CET 2011)
==> Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
==> Extracting Sources...
==> Starting build()...
==> Connecting to anoncvs.freedaemon.com CVS server....
cvs server: Updating scrotwm
U scrotwm/Makefile
U scrotwm/baraction.sh
U scrotwm/initscreen.sh
U scrotwm/release.sh
U scrotwm/screenshot.sh
U scrotwm/scrotwm.1
U scrotwm/scrotwm.c
U scrotwm/scrotwm.conf
U scrotwm/scrotwm_es.1
U scrotwm/scrotwm_it.1
U scrotwm/scrotwm_pt.1
U scrotwm/scrotwm_ru.1
cvs server: Updating scrotwm/html
U scrotwm/html/cygwin.html
U scrotwm/html/cygwin.png
U scrotwm/html/cygwin_pt.html
U scrotwm/html/cygwin_small.png
U scrotwm/html/license.html
U scrotwm/html/man.html
U scrotwm/html/man_es.html
U scrotwm/html/man_it.html
U scrotwm/html/man_pt.html
U scrotwm/html/man_ru.html
U scrotwm/html/osx.html
U scrotwm/html/osx.jpg
U scrotwm/html/osx1.png
U scrotwm/html/osx2.png
U scrotwm/html/osx3.png
U scrotwm/html/osx4.png
U scrotwm/html/osx5.png
U scrotwm/html/osx_pt.html
U scrotwm/html/osx_small.jpg
U scrotwm/html/scrotwm.html
U scrotwm/html/scrotwm.jpg
U scrotwm/html/scrotwm2.jpg
U scrotwm/html/scrotwm2_small.jpg
U scrotwm/html/scrotwm3.jpg
U scrotwm/html/scrotwm3_small.jpg
U scrotwm/html/scrotwm4.jpg
U scrotwm/html/scrotwm4_small.jpg
U scrotwm/html/scrotwm5.jpg
U scrotwm/html/scrotwm5_small.jpg
U scrotwm/html/scrotwm_es.html
U scrotwm/html/scrotwm_it.html
U scrotwm/html/scrotwm_pt.html
U scrotwm/html/scrotwm_ru.html
U scrotwm/html/scrotwm_small.jpg
cvs server: Updating scrotwm/lib
U scrotwm/lib/Makefile
U scrotwm/lib/shlib_version
U scrotwm/lib/swm_hack.c
cvs server: Updating scrotwm/linux
U scrotwm/linux/Makefile
U scrotwm/linux/linux.c
U scrotwm/linux/util.h
cvs server: Updating scrotwm/osx
U scrotwm/osx/Makefile
U scrotwm/osx/osx.c
U scrotwm/osx/osx.h
cvs server: Updating scrotwm/port
U scrotwm/port/Makefile
U scrotwm/port/distinfo
cvs server: Updating scrotwm/port/patches
U scrotwm/port/patches/patch-scrotwm_c
U scrotwm/port/patches/patch-scrotwm_conf
cvs server: Updating scrotwm/port/pkg
U scrotwm/port/pkg/DESCR
U scrotwm/port/pkg/PFRAG.shared
U scrotwm/port/pkg/PLIST
==> CVS checkout done or server timeout
==> Starting make...
ln -sf ../scrotwm.c
gcc -march=i686 -mtune=generic -O2 -pipe -Wall -ggdb -D_GNU_SOURCE -I. -DSWM_LIB=\"/usr/lib/libswmhack.so.0.0\" -c -o scrotwm.o scrotwm.c
scrotwm.c: In function ‘send_to_ws’:
scrotwm.c:2789:6: warning: pointer targets in passing argument 1 of ‘snprintf’ differ in signedness
/usr/include/stdio.h:383:12: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
scrotwm.c: In function ‘manage_window’:
scrotwm.c:4310:3: warning: pointer targets in passing argument 1 of ‘strtonum’ differ in signedness
./util.h:15:11: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
scrotwm.c:4348:6: warning: pointer targets in passing argument 1 of ‘snprintf’ differ in signedness
/usr/include/stdio.h:383:12: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
gcc -march=i686 -mtune=generic -O2 -pipe -Wall -ggdb -D_GNU_SOURCE -I. -DSWM_LIB=\"/usr/lib/libswmhack.so.0.0\" -c -o linux.o linux.c
gcc -Wl,--hash-style=gnu -Wl,--as-needed -o scrotwm scrotwm.o linux.o -lX11 -lXrandr
ln -sf ../lib/swm_hack.c
gcc -march=i686 -mtune=generic -O2 -pipe -Wall -ggdb -D_GNU_SOURCE -I. -DSWM_LIB=\"/usr/lib/libswmhack.so.0.0\" -c -fpic -DPIC swm_hack.c -o swm_hack.so
swm_hack.c: In function ‘set_property’:
swm_hack.c:92:8: warning: pointer targets in passing argument 7 of ‘XChangeProperty’ differ in signedness
/usr/include/X11/Xlib.h:2075:12: note: expected ‘const unsigned char *’ but argument is of type ‘char *’
gcc -shared -fpic -o libswmhack.so.0.0 swm_hack.so -lX11 -lXrandr
==> Entering fakeroot environment...
==> Starting package()...
/tmp/yaourt-tmp-robin/aur-scrotwm-cvs/./PKGBUILD: line 51: cd: /tmp/yaourt-tmp-robin/aur-scrotwm-cvs/src/_cvsmod/linux: No such file or directory
Aborting...
==> ERROR: Makepkg was unable to build scrotwm-cvs.
==> Restart building scrotwm-cvs
any ideas??
Moderator: [ewaller] Please use code tags around program output; especially long listings. I added them for you.
Last edited by ewaller (2011-05-08 03:14:33)
http://dotshare.it >> #dotshare@freenode
Offline
Fixed.
Offline
First of all, really excellent work! This has become my wm of choice.
One thing that I've not managed to sort out -- I tried making a quirk for fullscreen flash video in chromium (youtube etc), but it doesn't seem to work. Has anyone got one which works? Without one, it just opens as a new window, and only displays half of the output.
Last edited by neurolysis (2011-04-03 17:50:19)
Offline
First of all, really excellent work! This has become my wm of choice.
One thing that I've not managed to sort out -- I tried making a quirk for fullscreen flash video in chromium (youtube etc), but it doesn't seem to work. Has anyone got one which works? Without one, it just opens as a new window, and only displays half of the output.
Not sure if chromium flash works like firefox, but I got flash to work full screen for firefox by adding the following to scrotwm.conf:
quirk[Npviewer.bin:npviewer.bin] = FLOAT + FULLSCREEN
Last edited by Splex (2011-04-05 01:23:59)
Offline
Really really really nice: easy, lightweight, simple. It could be my favorite wm but...
I can't use Super_L (win key) as modkey.
The versions I've tried:
- scrotwm-0.9.28 in the snapshot repo
- scrotwm V0.9.29 (CVS version)
Super_L works perfectly in another WMs (wmii, dwm, wmfs) so is definitely not an xmodmap, xev, keyboard related issue.
None of the tips mentioned here works:
https://bbs.archlinux.org/viewtopic.php?id=102116
https://bbs.archlinux.org/viewtopic.php?id=76119
Any suggestion before I left scrotwm behind?
Thank you in advance.
arst
Offline
Strange. By default the Arch package uses Mod4/Super/WIndows. "modkey = Mod4" should just work. What do you have in your .scrotwm.conf ?
Offline
weird...
Scrotwm was using the default conf file located at default directory (like /foo/bar/scrotwm/scrotwm.conf; downloaded and compiled by myself), It solved when I copy /foo/bar/scrotwm/scrotwm.conf to $HOME/.scrotwm.conf
Thank you for replying.
Another weird thing: is it normal a random (a little bit annoying) blinking in border and mouse cursor?
It stops when the layout is changed, but this is not an elegant solution.
arst
Offline