Re: [dev][st] OSC-52 payload being truncated

2017-08-18 Thread Suraj N. Kurapati
On Thu, 17 Aug 2017 23:40:34 -0700, Suraj N. Kurapati wrote:
> On Tue, 15 Aug 2017 01:05:47 -0700, Suraj N. Kurapati wrote:
> > I'm using st master at 7f990328e4fec8dfaaad311cb8af2304b58c872e
> > where this OSC-52 payload is exceeding strescseq.buf's STR_BUF_SIZE
>
> The second patch expands strescseq.buf's length to support copying up
> to 131k base64 (or 43k plain text) characters via the OSC-52 payload.

Oops, I made a mistake in that second patch.  The corrected version is
attached and available at https://github.com/sunaku/.st/compare/OSC-52

STR_BUF_SIZ: 131k payload (43k text) for OSC-52

diff --git a/st.c b/st.c
index 7c7ddff..3f56e28 100644
--- a/st.c
+++ b/st.c
@@ -48,7 +48,7 @@ char *argv0;
 #define UTF_INVALID   0xFFFD
 #define ESC_BUF_SIZ   (128*UTF_SIZ)
 #define ESC_ARG_SIZ   16
-#define STR_BUF_SIZ   ESC_BUF_SIZ
+#define STR_BUF_SIZ   (256*ESC_BUF_SIZ) /* OSC-52: 131k payload (43k text) */
 #define STR_ARG_SIZ   ESC_ARG_SIZ
 
 /* macros */
From 21748d80b1275bc9521fe3b2448e2f4ebd4a4f12 Mon Sep 17 00:00:00 2001
From: "Suraj N. Kurapati" <sun...@riseup.net>
Date: Thu, 17 Aug 2017 23:14:03 -0700
Subject: [PATCH 2/2] STR_BUF_SIZ: 131k payload (43k text) for OSC-52

---
 st.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/st.c b/st.c
index 7c7ddff..3f56e28 100644
--- a/st.c
+++ b/st.c
@@ -48,7 +48,7 @@ char *argv0;
 #define UTF_INVALID   0xFFFD
 #define ESC_BUF_SIZ   (128*UTF_SIZ)
 #define ESC_ARG_SIZ   16
-#define STR_BUF_SIZ   ESC_BUF_SIZ
+#define STR_BUF_SIZ   (256*ESC_BUF_SIZ) /* OSC-52: 131k payload (43k text) */
 #define STR_ARG_SIZ   ESC_ARG_SIZ
 
 /* macros */
-- 
2.14.1



pgpyl4ZbEuI6B.pgp
Description: OpenPGP digital signature


[dev] Re: [st] OSC-52 payload being truncated

2017-08-18 Thread Suraj N. Kurapati
On Tue, 15 Aug 2017 01:05:47 -0700, Suraj N. Kurapati wrote:
> I'm using st master at 7f990328e4fec8dfaaad311cb8af2304b58c872e where
> this OSC-52 payload is exceeding strescseq.buf's STR_BUF_SIZE length:
> 
> printf
> '\033]52;;Rm9yIGRlYnVnZ2luZywgcnVubmluZyB0bXV4IHdpdGggLXYgb3IgLXZ2IHdpbGwgZ2VuZXJhdGUgc2VydmVyIGFuZCBjbGllbnQgbG9nCmZpbGVzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCnRtdXggbWFpbGluZyBsaXN0cyBhcmUgYXZhaWxhYmxlLiBGb3IgZ2VuZXJhbCBkaXNjdXNzaW9uIGFuZCBidWcgcmVwb3J0czoKCiAgICAgICAgaHR0cHM6Ly9ncm91cHMuZ
> 29vZ2xlLmNvbS9mb3J1bS8jIWZvcnVtL3RtdXgtdXNlcnMKCkFuZCBmb3IgR2l0IGNvbW1pdCBlbWFpbHM6CgogICAgICAgIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyFmb3J1bS90bXV4LWdpdAoKU3Vic2NyaWJlIGJ5IHNlbmRpbmcgYW4gZW1haWwgdG8gPHRtdXgtdXNlcnMrcw==\a'

I've written two patches to address this issue, which are attached
herein and available at https://github.com/sunaku/.st/compare/OSC-52

The first patch addresses the intolerance of linebreaks in base64dec():

base64dec: skip non-printable characters like \r\n

Non-printable characters, such as line breaks, in a base64 encoded
string violate the "string length must be a multiple of four" rule.

This patch pads the result buffer by one extra unit of four bytes,
and skips over non-printable characters found in the input string.

The second patch expands strescseq.buf's length to support copying up
to 131k base64 (or 43k plain text) characters via the OSC-52 payload.

Please review these patches, optionally morphing them per your taste,
and add their functionality into st on behalf of tmux users like me.

Thanks for your consideration.
From a9c4772bc66057d78d346b9a7e8b45b220c5b812 Mon Sep 17 00:00:00 2001
From: "Suraj N. Kurapati" <sun...@riseup.net>
Date: Thu, 17 Aug 2017 23:00:10 -0700
Subject: [PATCH 1/2] base64dec: skip non-printable characters like \r\n

Non-printable characters, such as line breaks, in a base64 encoded
string violate the "string length must be a multiple of four" rule.

This patch pads the result buffer by one extra unit of four bytes,
and skips over non-printable characters found in the input string.
---
 st.c | 17 -
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/st.c b/st.c
index ae93ade..7c7ddff 100644
--- a/st.c
+++ b/st.c
@@ -386,6 +386,13 @@ static const char base64_digits[] = {
 	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 };
 
+char
+base64dec_getc(const char **src)
+{
+	while (**src && !isprint(**src)) (*src)++;
+	return *((*src)++);
+}
+
 char *
 base64dec(const char *src)
 {
@@ -393,13 +400,13 @@ base64dec(const char *src)
 	char *result, *dst;
 
 	if (in_len % 4)
-		return NULL;
+		in_len += 4 - (in_len % 4);
 	result = dst = xmalloc(in_len / 4 * 3 + 1);
 	while (*src) {
-		int a = base64_digits[(unsigned char) *src++];
-		int b = base64_digits[(unsigned char) *src++];
-		int c = base64_digits[(unsigned char) *src++];
-		int d = base64_digits[(unsigned char) *src++];
+		int a = base64_digits[(unsigned char) base64dec_getc()];
+		int b = base64_digits[(unsigned char) base64dec_getc()];
+		int c = base64_digits[(unsigned char) base64dec_getc()];
+		int d = base64_digits[(unsigned char) base64dec_getc()];
 
 		*dst++ = (a << 2) | ((b & 0x30) >> 4);
 		if (c == -1)
-- 
2.14.1

From 1b2f24c5f2c4a920c6d23a6b686d72e0613e9d1b Mon Sep 17 00:00:00 2001
From: "Suraj N. Kurapati" <sun...@riseup.net>
Date: Thu, 17 Aug 2017 23:14:03 -0700
Subject: [PATCH 2/2] OSC-52: allow 131k base64 (43k plain) text payload

---
 st.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/st.c b/st.c
index 7c7ddff..912af98 100644
--- a/st.c
+++ b/st.c
@@ -48,7 +48,7 @@ char *argv0;
 #define UTF_INVALID   0xFFFD
 #define ESC_BUF_SIZ   (128*UTF_SIZ)
 #define ESC_ARG_SIZ   16
-#define STR_BUF_SIZ   ESC_BUF_SIZ
+#define STR_BUF_SIZ   (256*UTF_SIZ) /* OSC-52: 131k base64 (43k plain) text */
 #define STR_ARG_SIZ   ESC_ARG_SIZ
 
 /* macros */
-- 
2.14.1



pgp0M_bzRPfrh.pgp
Description: OpenPGP digital signature


[dev] [st] OSC-52 payload being truncated

2017-08-15 Thread Suraj N. Kurapati
Hello,

I'm using st master at 7f990328e4fec8dfaaad311cb8af2304b58c872e where
this OSC-52 payload is exceeding strescseq.buf's STR_BUF_SIZE length:

printf
'\033]52;;Rm9yIGRlYnVnZ2luZywgcnVubmluZyB0bXV4IHdpdGggLXYgb3IgLXZ2IHdpbGwgZ2VuZXJhdGUgc2VydmVyIGFuZCBjbGllbnQgbG9nCmZpbGVzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCnRtdXggbWFpbGluZyBsaXN0cyBhcmUgYXZhaWxhYmxlLiBGb3IgZ2VuZXJhbCBkaXNjdXNzaW9uIGFuZCBidWcgcmVwb3J0czoKCiAgICAgICAgaHR0cHM6Ly9ncm91cHMuZ
29vZ2xlLmNvbS9mb3J1bS8jIWZvcnVtL3RtdXgtdXNlcnMKCkFuZCBmb3IgR2l0IGNvbW1pdCBlbWFpbHM6CgogICAgICAgIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyFmb3J1bS90bXV4LWdpdAoKU3Vic2NyaWJlIGJ5IHNlbmRpbmcgYW4gZW1haWwgdG8gPHRtdXgtdXNlcnMrcw==\a'

This triggers the following conditional in st.c, starting at line 2393:

if (strescseq.len+len >= sizeof(strescseq.buf)-1) {
/*
 * Here is a bug in terminals. If the user never sends
 * some code to stop the str or esc command, then st
 * will stop responding. But this is better than
 * silently failing with unknown characters. At least
 * then users will report back.
 *
 * In the case users ever get fixed, here is the code:
 */
/*
 * term.esc = 0;
 * strhandle();
 */
return;
}

Going one frame above in the backtrace, to ttyread() on line 832, the
OSC-52 payload's last base64 unit "cw==" is currently being processed.

What's the best way to fix this?  Is lengthening `strescseq.buf` okay?

Thanks for your consideration.

P.S. You can also watch an ASCII screencast of this issue at:
 https://asciinema.org/a/XIIcBrnZksfZ2EIsMtJkJxLLa?t=17


pgpnHuNpNNrHT.pgp
Description: OpenPGP digital signature


Re: [dev] [st] patch for bold, italic, underline colors

2017-04-23 Thread Suraj N. Kurapati
On Sun, 23 Apr 2017 21:35:33 +0200, Jochen Sprickerhof wrote:
> I think we don't need it, as you can do it using environment
> variables:
> 
> https://unix.stackexchange.com/questions/119/colors-in-man-pages

Thanks for the tip!  Perhaps this patch may still be useful for cases
where less(1) is not involved and the user still wants colored styles?
For example, the first 4 lines in git-diff(1) output are unaffected by
LESS_TERMCAP_* environment variables, whereas this patch affects them.


pgpbq1v93a_1y.pgp
Description: OpenPGP digital signature


Re: [dev] [st] patch for bold, italic, underline colors

2017-04-23 Thread Suraj N. Kurapati
On Sun, 23 Apr 2017 22:23:56 -0300, Lucas Gabriel Vuotto wrote:
> usually, git protocol is read-only. Have you tried pushing with
> the remote set to http://git.suckless.org/sites ?

Yes I tried that, but a similar failure occurred:

$ git remote set-url origin http://git.suckless.org/sites

$ git remote -v
origin  http://git.suckless.org/sites (fetch)
origin  http://git.suckless.org/sites (push)

$ git push
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 8.82 KiB | 0 bytes/s, done.
Total 7 (delta 3), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
exit 1

Sorry I didn't mention this in my original email.

Thanks.


pgpvOXame04J0.pgp
Description: OpenPGP digital signature


[dev] [st] patch for bold, italic, underline colors

2017-04-23 Thread Suraj N. Kurapati
Hello,

I was unable to push the attached patch to the st wiki:

$ git push
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 8.82 KiB | 0 bytes/s, done.
Total 7 (delta 3), reused 0 (delta 0)
fatal: read error: Connection reset by peer
fatal: The remote end hung up unexpectedly
exit 128

$ git remote -v
origin  git://git.suckless.org/sites (fetch)
origin  git://git.suckless.org/sites (push)

Please review and apply the attached patch on my behalf.

Thanks.
From f58e4a935dcc71f605866d3044667476e41e3fcb Mon Sep 17 00:00:00 2001
From: "Suraj N. Kurapati" <sun...@riseup.net>
Date: Sun, 23 Apr 2017 11:42:22 -0700
Subject: [PATCH] [st/boldcolor] Adding new "boldcolor" patch for st

---
 st.suckless.org/patches/boldcolor.md   |  19 +++
 .../patches/st-boldcolor-20170410-5a10aca.diff |  59 +
 st.suckless.org/patches/st-boldcolor.png   | Bin 0 -> 8245 bytes
 3 files changed, 78 insertions(+)
 create mode 100644 st.suckless.org/patches/boldcolor.md
 create mode 100644 st.suckless.org/patches/st-boldcolor-20170410-5a10aca.diff
 create mode 100644 st.suckless.org/patches/st-boldcolor.png

diff --git a/st.suckless.org/patches/boldcolor.md b/st.suckless.org/patches/boldcolor.md
new file mode 100644
index 000..00d823a
--- /dev/null
+++ b/st.suckless.org/patches/boldcolor.md
@@ -0,0 +1,19 @@
+boldcolor
+=
+
+Description
+---
+
+Adds color to bold, italic, and underline styles.
+
+[![Preview](st-boldcolor.png)](st-boldcolor.png)
+
+Download
+
+
+ * [st-boldcolor-20170410-5a10aca.diff](st-boldcolor-20170410-5a10aca.diff)
+
+Authors
+---
+
+ * Suraj N. Kurapati - <https://github.com/sunaku>
diff --git a/st.suckless.org/patches/st-boldcolor-20170410-5a10aca.diff b/st.suckless.org/patches/st-boldcolor-20170410-5a10aca.diff
new file mode 100644
index 000..1938555
--- /dev/null
+++ b/st.suckless.org/patches/st-boldcolor-20170410-5a10aca.diff
@@ -0,0 +1,59 @@
+diff --git a/config.def.h b/config.def.h
+index 877afab..023c355 100644
+--- a/config.def.h
 b/config.def.h
+@@ -120,6 +120,9 @@ unsigned int defaultfg = 7;
+ unsigned int defaultbg = 0;
+ unsigned int defaultcs = 256;
+ unsigned int defaultrcs = 257;
++unsigned int defaultbd = 3;
++unsigned int defaultit = 2;
++unsigned int defaultul = 6;
+ 
+ /*
+  * Default shape of cursor
+diff --git a/st.c b/st.c
+index ae93ade..901ce21 100644
+--- a/st.c
 b/st.c
+@@ -1378,15 +1378,21 @@ tsetattr(int *attr, int l)
+ 			break;
+ 		case 1:
+ 			term.c.attr.mode |= ATTR_BOLD;
++			if (term.c.attr.fg == defaultfg)
++term.c.attr.fg = defaultbd;
+ 			break;
+ 		case 2:
+ 			term.c.attr.mode |= ATTR_FAINT;
+ 			break;
+ 		case 3:
+ 			term.c.attr.mode |= ATTR_ITALIC;
++			if (term.c.attr.fg == defaultfg)
++term.c.attr.fg = defaultit;
+ 			break;
+ 		case 4:
+ 			term.c.attr.mode |= ATTR_UNDERLINE;
++			if (term.c.attr.fg == defaultfg)
++term.c.attr.fg = defaultul;
+ 			break;
+ 		case 5: /* slow blink */
+ 			/* FALLTHROUGH */
+@@ -1404,12 +1410,15 @@ tsetattr(int *attr, int l)
+ 			break;
+ 		case 22:
+ 			term.c.attr.mode &= ~(ATTR_BOLD | ATTR_FAINT);
++			term.c.attr.fg = defaultfg;
+ 			break;
+ 		case 23:
+ 			term.c.attr.mode &= ~ATTR_ITALIC;
++			term.c.attr.fg = defaultfg;
+ 			break;
+ 		case 24:
+ 			term.c.attr.mode &= ~ATTR_UNDERLINE;
++			term.c.attr.fg = defaultfg;
+ 			break;
+ 		case 25:
+ 			term.c.attr.mode &= ~ATTR_BLINK;
+-- 
+2.12.2
+
diff --git a/st.suckless.org/patches/st-boldcolor.png b/st.suckless.org/patches/st-boldcolor.png
new file mode 100644
index ..a7c743ea0747fbe860ea4b28ffc5dcda9dc307ae
GIT binary patch
literal 8245
zcmbt)c{p2Z*LO-w2dbw|t4gV=>Y=6TC~An)St&)ysj)4ZqK=ivHt(t0z))1$h
zDrw{tkr<;jq{dK^l!&1bN<>Hmi43oEp7;6Q?|R<v`iATKWAAHS_r30W@B3P7uk~BM
zwV~x~jbU@NNJAplpBbk}Cipmka=GOWrBBH4+4%)dB$8V*5+K+<G#`VK`*d3F?45
z&?-aAOWc~Ci3U{f`iu1jJMCkm7R4^_rVvzMD$r;Oyje`~jIyHNG$AF|%{&`B*o
z+x%|<fbTk*vbP5SrHU8M0(N!-+V1KInar|p_XaaF{fufY$Fv91{fJ4u#jUlAl4*qP
zBou+j98Dm1YI+_oe&)<Q!zF6qr5q<O(nC+*%}CU;<vnrio?G|oZOH3j+;~;pHk0&>
z#^1@G%4op*O`21yR29WkzfklLTqL{Q;)n2*%q@+AJr}7}QKwv)qjgtrWOfIE3y-9-
zdbMxLM$I<Zbu}V*cXYqOIjajX=1@WNOHWkWe9iUENT}K~zfjg?{nOmAH)
zH>6+khen3QP1NlqKjTkaa9#UC)-mowLR2%UF0v2Wo@9ml=903)#;0OR?Wz0uZ
zrVKt78WykT+?&{zQd@96)TKG6r}?thnI^M?d6p|DuXExsNZ`u#KOp=Qodaq7uFf%(
zt+Cx-r%>0JU%o?dxzo+-ea?a~!#iWEop>l$l*<@OXF#QRT^o4d(>q<}bn@?4sYL3}
zc9`?Ds>~;SxE7pYte{@F=;G-7=%yAWKQ!6OwVQ`VF=8Rm7z!3#Q)TU<Sq@(C
z)y|!3DHBZ4u;Wd8WL-64+xL!@6*Tn3yN%n%7XtvX8Yi_iiEyhsXage!K+0v-Qznws
z1Ss9}PkSb0DFL>mqsQg{lC})ICH*z9CH)_!ki2se5*a1ilp&2>WJ;%|8N!
zuKOyC%op||Llw_|01gqf`7G%R+SYf6Az4g{3mzc!KD<W<tEv0L6w;t~-I^YM|I
zz5~kS0nsfx-YhPxM%^t^0PMfg?WN<9yCZ>r@ho6)z^my^g(@SN2FTi%4N

Re: [dev] structural regular expression support for vis

2016-04-12 Thread Suraj N. Kurapati
On Wed, 06 Apr 2016 18:45:57 -0500, Joshua Haase wrote:
> Marc André Tanner  writes:
> > you do not have to prefix your sam command with `ggvG` because
> > in normal mode it will by default be applied to the whole file.  
> 
> Or you could use `:,` to mean the whole file (i. e. `:,y/\n/i/FOO`).

Or use `:%` instead because `%` already means the whole file in Vim.



Re: [dev] [dwm] Optional status bar

2012-01-28 Thread Suraj N. Kurapati
On Sat 28 Jan 2012 09:03:26 PM PST, Bjartur Thorlacius wrote:
 Þann lau 28.jan 2012 19:13, skrifaði Tom Vincent:
  targeting ewmh/icccm is out of the question. How about a new
  suckless protocol between dwm and its status bar?

 _NET_WM_TYPE_DOCK support and XEmbed tag switcher would do half
 the job. A XID would still have to be sent. Any more complicated
 protocol would have to go over DBus, which is not an option.

DBus is overkill.  A named pipe or UNIX domain socket would suffice.

-- 
Long computations which yield zero are probably all for naught.



Re: [dev] suckless vs. security? - Was: [slock] kill slock with Ctrl+Alt+Multiply

2012-01-25 Thread Suraj N. Kurapati
On Mon 23 Jan 2012 07:10:57 PM PST, Bjartur Thorlacius wrote:
 On Mon, 23 Jan 2012 11:04:55 -, Nick wrote:
  On Mon, Jan 23, 2012 at 11:57:42AM +0100, hiro wrote:
  Security is not a feature.
  I thought you were restricting yourself to Sundays.
 Yes, on Sundays ;)

Ah, such comedians!  I love reading this mailing list. :)

-- 
Some of my readers ask me what a Serial Port is.
The answer is: I don't know.
Is it some kind of wine you have with breakfast?



Re: [dev] Patch for st tabbed

2012-01-20 Thread Suraj N. Kurapati
On Fri 20 Jan 2012 03:42:54 PM PST, Matt Carter wrote:
 please excuse me if this should have went to hackers instead of dev.

Wow, the hackers mailing list still exists?  I guess the dev
mailing list isn't exclusive or elitist enough for some people.  :-/

-- 
The words fly away, the writings remain.



Re: [dev] Patch for st tabbed

2012-01-20 Thread Suraj N. Kurapati
On Fri 20 Jan 2012 04:32:24 PM PST, Kurt H Maier wrote:
 On Fri, Jan 20, 2012 at 12:58:06PM -0800, Suraj N. Kurapati wrote:
  Wow, the hackers mailing list still exists?  I guess the dev
  mailing list isn't exclusive or elitist enough for some people.  :-/
 
 don't get your panties in a twist.  hackers@ is where commit messages
 go.  they're kept separate from dev@ because not everyone gives a shit
 about every single commit on every repository.

That seems reasonable; thanks for clarifying.  I was afraid of being
left behind for not being elitist enough to earn hackers@ membership.

-- 
A lifetime isn't nearly long enough to figure out what it's all about.



Re: [dev] interested in issue tracker dev

2012-01-14 Thread Suraj N. Kurapati
On Sun 15 Jan 2012 08:06:55 AM PST, Anselm R Garbe wrote:
 If someone is unhappy that a bug was closed, issue a new bug. Closing
 a bug should be a final operation (in my experience this is one
 problem with the existing BTS that allow re-opening closed bugs, but
 re-opening closed bugs means your working style sucks)

Perhaps the BTS could do this automatically on behalf of lazy users?

If I add a new comment to a closed bug, the BTS could create a new bug
for me, setting my comment as the bug description, while linking the two
bugs together.

-- 
Civilization, as we know it, will end sometime this evening.
See SYSNOTE tomorrow for more information.



Re: [dev] wmii falling out of favor

2012-01-08 Thread Suraj N. Kurapati
On Sun 08 Jan 2012 04:30:47 PM PST, John Matthewman wrote:
 I would like a window manager that has wmii's acme-like window
 management, but without the 9P filesystem, wmiir, support for
 configuration via python, ruby, etc.

Try i3, which was inspired by wmii: http://i3wm.org/
-- 
If something has not yet gone wrong then it would ultimately have been
beneficial for it to go wrong.



Re: [dev] wmii falling out of favor

2012-01-01 Thread Suraj N. Kurapati
On Sat 24 Dec 2011 12:13:04 PM PST, dtk wrote:
 On 12/22/2011 05:54 PM, Suraj N. Kurapati wrote:
  I'm another WMII expatriate and I'm still not completely used to
  DWM's lack of on-the-fly tag creation: especially when some new
  random task comes up and all of my tags are currently occupied.
  I'm forced to go to the least important tag and perform my new
  task there while tip-toeing around existing stuff.

 Yeah, well, really don't see me doin' that kind of stuff after I
 had a taste of WMII. How could I? Real show stopper for me. I
 assume, cls' suggestion of having 32 (hidden) static tags and
 renaming them at runtime might serve for a compromise. That whole
 static layouts thing, tho... :/

Good point.  After seeing people take SLOC minimalism further than
the suckless community's beloved DWM (c.f. MonsterWM), I realized
that it all came down to *choice* and that I actually had a choice.

So I considered the trade-offs between SLOC minimalism, project and
community activity, and my productivity in DWM vs. WMII and finally
decided to switch back to WMII (which I used since six years prior).

However, the experience of using DWM for a month was not fruitless,
because I applied that knowledge to further simplify my WMII config.
Thanks for not giving up on WMII; you reminded me of its true value.

Cheers.

-- 
Depart not from the path which fate has assigned you.



Re: [dev] monsterwm - 700 SLOC dwm fork

2011-12-29 Thread Suraj N. Kurapati
On Thu 29 Dec 2011 07:20:21 PM PST, Nick wrote:
 The Arch community [...] seem to have [...] uninformed people
 doing strange things in their midst.  All good practise and
 experimentation and whathaveyou, but

It's a bazaar of artist/tinkerers sharing, learning, and having fun.

 can be annoying to see such works referenced before they have
 become interesting.

I felt it was interesting enough to share because it follows the
less SLOC is better approach championed by the suckless community.
Besides, I enjoy reading Kurt's and others' scathing criticisms. ;)

-- 
You can't push on a string.


signature.asc
Description: PGP signature


[dev] dwm in Deus Ex 3 concept art

2011-12-25 Thread Suraj N. Kurapati
Hello,

I recently finished playing Deus Ex 3 and while reading about its
development, I found this DWM reference in a concept art poster:

http://www.stuffwelike.com/stuffwelike/wp-content/uploads/2008/11/deusex3_169801.jpg

It's a long shot, but I like to think it refers to the DWM WM. ;)

Happy Xmas.

-- 
The optimist thinks that this is the best of all possible worlds,
and the pessimist knows it.
-- J. Robert Oppenheimer, Bulletin of Atomic Scientists



Re: [dev] wmii falling out of favor

2011-12-23 Thread Suraj N. Kurapati
On Fri 23 Dec 2011 10:24:54 AM PST, Jakub Lach wrote:
 They work day to day in Gnome, then try to emulate it's insanity
 in currently acceptable flavour of the month wm, then brag
 on their home forum with screenshots (arch forum anyone?), 
 seeking peer approval.

Touché!  s/Gnome/wmii/ and you'll have caught me red-handed.  ;-)

-- 
Goodbye, cool world.



Re: [dev] network usage graphs

2011-12-23 Thread Suraj N. Kurapati
On Fri 23 Dec 2011 11:16:46 PM PST, hiro wrote:
 bourne shell sucks (better use awk for tabular calculations)

Indeed, see http://c2.com/doc/expense/ (via Christian Neukirchen).

 After several hours my QOS now seems to work properly:
 http://h1ro.dyndns.org/uplink2.png

The graph you originally mentioned looks like it was made by RRDtool:

http://oss.oetiker.ch/rrdtool/

-- 
Stinginess with privileges is kindness in disguise.
-- Guide to VAX/VMS Security, Sep. 1984



Re: [dev] [wmii] widgets with graphics?

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 02:44:54 PM PST, dtk wrote:
 is there a way to have widgets in the status bar display images
 instead of utf8 symbols?

I gave up on this approach for DWM and used dzen2 as my status bar
instead:  https://github.com/sunaku/.dwm/blob/master/dwm-statusbar

(Pictured at bottom of this screenshot: http://ompldr.org/vYnUyNg)

dzen2 supports XBM and XPM images, which I use from sm4tik's icon set:
https://github.com/sunaku/.dwm/tree/master/dwm-statusbar-icons

Finally, the SVN version of dzen2 supports clickable areas, so I get
nearly the same level of functionality as I did with WMII's statusbar.
For instance, all of my statusbar widgets refresh the entire statusbar
after their click handler has been executed.

This makes it feel responsive.  For example, if I change the current
song using my MPD statusbar widget, I want to see the new song title
immediately, rather than waiting for the next update (at most, 30
seconds later).

Cheers.

-- 
panic: can't find /



Re: [dev] wmii falling out of favor

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 04:36:55 PM PST, dtk wrote:
 I just cannot see how to do the stuff I feel I need with static
 layouts. And since I don't believe that manual layouts are what
 bloat wmii, I fail to understand why I cannot haz them :/ Worse, I
 fail to see why I'm the only one who wants them *lonely* -.-

Well, you're not alone.  I'm another WMII expatriate and I'm still
not completely used to DWM's lack of on-the-fly tag creation:
especially when some new random task comes up and all of my tags are
currently occupied.  I'm forced to go to the least important tag and
perform my new task there while tip-toeing around existing stuff.

The holidays are coming up, so maybe I'll finally write a patch. :)

-- 
The disks are getting full; purge a file today.



Re: [dev] wmii falling out of favor

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 04:57:24 PM PST, Connor Lane Smith wrote:
 In dwm you can view multiple tags at the same time, which pulls all
 clients with that tag into view. (Which is really amazing once you get
 used to it. Other window managers just make me feel really
 constrained.)

Now that you mention it, I rarely use this feature because it's too
coarse grained.  For instance, I have tags pre-allocated for particular
tasks so viewing more than one of them simultaneously pulls in too many
unrelated clients into my view when I'm usually interested in a subset.

In contrast, WMII has fine-grained multi-tagging (a client can appear
on multiple views) so I would either (1) choose a client from dmenu to
pull into my current view or (2) go to the tag I want and multi-tag the
clients that I'm interested in to appear on my combined view.

tl;dr Multi-tagging is cool and useful, but too coarse grained in DWM.

-- 
Prof:So the American government went to IBM to come up with a data
 encryption standard and they came up with ...
Student: EBCDIC!



Re: [dev] wmii falling out of favor

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 06:07:05 PM PST, Connor Lane Smith wrote:
 On 22 December 2011 18:02, Suraj N. Kurapati wrote:
  Multi-tagging is cool and useful, but too coarse grained in DWM.

 I don't understand what you mean. In dwm a single client can have
 multiple tags, and one can also view multiple tags. It's a strict
 superset of wmii's functionality.

You're right.  I forgot about the ability to multi-tag clients, sorry.

* toggleview is the coarse-grained control that pulls in entire tags.
* toggletag is the fine-grained control that pulls in certain clients.

-- 
Is your job running?  You'd better go catch it!



Re: [dev] wmii falling out of favor

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 02:05:36 PM PST, Jacob Todd wrote:
 On Dec 22, 2011 12:03 PM, Suraj N. Kurapati sun...@gmail.com
 wrote:
  Now that you mention it, I rarely use this feature because it's too
  coarse grained.  For instance, I have tags pre-allocated for
  particular tasks so viewing more than one of them simultaneously
  pulls in too many unrelated clients into my view when I'm usually
  interested in a subset.
 
 I'm almost certain you're using dwm wrong.

Yeah, it's only been a month since I switched from 6+ years of WMII.

-- 
Message from Our Sponsor on ttyTV at 13:58 ...



Re: [dev] network usage graphs

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 01:58:45 PM PST, hiro wrote:
 I want to display a more complicated network with multiple streams
 of different services, multiple interfaces, multiple clients,
 multiple uplinks.

 http://wiki.linuxwall.info/lib/exe/fetch.php/fr:ressources:dossiers:networking:figure9-tcgraph.png

 What tools do you know that are able to render such graphics and
 update once per second or so?

Is this for your own personal use or for infrastructure monitoring?

If personal, try conky[1].  If you want a statusbar, try dzen2[2].
You can search the Arch Linux forums for configuration examples.

For infrastructure, try ganglia[3] and rrdtool[4] for graphing.

[1] http://conky.sourceforge.net
[2] https://sites.google.com/site/gotmor/dzen
[3] http://ganglia.sourceforge.net/
[4] http://oss.oetiker.ch/rrdtool/

-- 
The trouble with computers is that they do what you tell them, not
what you want.
-- D. Cohen



Re: [dev] [wmii] widgets with graphics?

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 11:54:21 AM PST, Seth Hover wrote:
 Is there a reason you're not just using awesome?

Subjectively, I like C and Ruby better than Lua.  Architecturally, I
like that DWM is minimal, having a very limited statusbar, because
I can use a better tool for the job (dzen2) or even go overboard
(conky) without introducing complexity into the WM itself.

-- 
news: gotcha



Re: [dev] flextile - nmaster redundant

2011-12-22 Thread Suraj N. Kurapati
On Thu 22 Dec 2011 03:49:32 PM PST, Connor Lane Smith wrote:
 you may be interested in flextile [1].
 [1]: http://dwm.suckless.org/patches/flextile

This patch needs some love.  Particularly, nmaster is built into
dwm now so the mastersplit and shiftmastersplit() are redundant.

-- 
HOST SYSTEM RESPONDING, PROBABLY UP...



[dev] [dwm][patch] invert seltag colors

2011-12-20 Thread Suraj N. Kurapati
Hello,

This patch inverts colors when drawing currently selected tag.
( See a screenshot here: http://ompldr.org/vYnUyNg ).  Cheers.

diff --git a/dwm.c b/dwm.c
index 1d78655..7b29955 100644
--- a/dwm.c
+++ b/dwm.c
@@ -731,9 +731,10 @@ drawbar(Monitor *m) {
for(i = 0; i  LENGTH(tags); i++) {
dc.w = TEXTW(tags[i]);
col = m-tagset[m-seltags]  1  i ? dc.sel :
dc.norm;
-   drawtext(tags[i], col, urg  1  i);
+   Bool invert = col == dc.sel || urg  1  i;
+   drawtext(tags[i], col, invert);
drawsquare(m == selmon  selmon-sel 
selmon-sel-tags  1  i,
-  occ  1  i, urg  1  i, col);
+  occ  1  i, invert, col);
dc.x += dc.w;
}
dc.w = blw = TEXTW(m-ltsymbol);
-- 
A thing is not necessarily true because a man dies for it.
-- Oscar Wilde, The Portrait of Mr. W.H.



Re: [dev] [dmenu] bug:

2011-12-09 Thread Suraj N. Kurapati
On Thu 08 Dec 2011 09:48:07 PM PST, Kaibin Li wrote:
 In current hg tip, after launching a program from dmenu, the process
 of dmenu_run will not exit until the program launched by it exits.

Good find!  Here is my patch to fix the problem.  Cheers.

diff --git a/dmenu_run b/dmenu_run
index 35a4db3..c5485e7 100755
--- a/dmenu_run
+++ b/dmenu_run
@@ -6,10 +6,11 @@ else
cache=$HOME/.dmenu_cache
 fi
 (
+   echo -n exec 
IFS=:
if [ `ls -dt $PATH $cache | head -n 1` != $cache ]; then
lsx $PATH | sort -u | tee $cache | dmenu $@
else
dmenu $@  $cache
fi
-) | exec ${SHELL:-/bin/sh}
+) | exec ${SHELL:-/bin/sh} 

-- 
If the path be beautiful, let us not ask where it leads.
-- Anatole France



Re: [dev] [dmenu] bug:

2011-12-09 Thread Suraj N. Kurapati
On Fri 09 Dec 2011 01:12:52 AM PST, Suraj N. Kurapati wrote:
 -) | exec ${SHELL:-/bin/sh}
 +) | exec ${SHELL:-/bin/sh} 

We can remove this outer exec entirely; it's a no-op on my system.

diff --git a/dmenu_run b/dmenu_run
index 35a4db3..2257ce0 100755
--- a/dmenu_run
+++ b/dmenu_run
@@ -6,10 +6,11 @@ else
cache=$HOME/.dmenu_cache
 fi
 (
+   echo -n exec 
IFS=:
if [ `ls -dt $PATH $cache | head -n 1` != $cache ]; then
lsx $PATH | sort -u | tee $cache | dmenu $@
else
dmenu $@  $cache
fi
-) | exec ${SHELL:-/bin/sh}
+) | ${SHELL:-/bin/sh} 

-- 
If you want divine justice, die.
-- Nick Seldon



[dev] Re: [dmenu] history patch updated r471

2011-12-08 Thread Suraj N. Kurapati
On Wed 07 Dec 2011 11:18:30 PM PST, Suraj N. Kurapati wrote:
 I have updated (attached) the dmenu history patch[1] to apply against
 the current tip revision 471:60d97462ff9d.  

There was a bug in my adaptation: only 1 item was written to histfile.
I'm attaching a new patch that fixes this bug and also removes the
HIST_SIZE limit, allowing the history to be infinitely long.  I'll
leave it to the user to prune their history file if it's getting big.

 [1]: http://tools.suckless.org/dmenu/patches/history
 [2]: https://github.com/sunaku/.dmenu/compare/tip...history

-- 
If Machiavelli were a hacker, he'd have worked for the CSSG.
-- Phil Lapsley
From ed83ee03b913ef76b48556c6c65c54ca9f6871a8 Mon Sep 17 00:00:00 2001
From: Suraj N. Kurapati sun...@gmail.com
Date: Wed, 7 Dec 2011 22:33:10 -0800
Subject: [PATCH] dmenu-tip-history.diff (adapted to new hg tip)

http://tools.suckless.org/dmenu/patches/history
---
 dmenu.1 |5 
 dmenu.c |   66 +-
 2 files changed, 57 insertions(+), 14 deletions(-)

diff --git a/dmenu.1 b/dmenu.1
index 5f74463..33a9599 100644
--- a/dmenu.1
+++ b/dmenu.1
@@ -20,6 +20,8 @@ dmenu \- dynamic menu
 .IR color ]
 .RB [ \-sf
 .IR color ]
+.RB [ \-hist
+.IR filename ]
 .RB [ \-v ]
 .P
 .BR dmenu_run  ...
@@ -70,6 +72,9 @@ defines the selected background color.
 .BI \-sf  color
 defines the selected foreground color.
 .TP
+.BI \-hist  histfile
+the file to use for history
+.TP
 .B \-v
 prints version information to stdout, then exits.
 .SH USAGE
diff --git a/dmenu.c b/dmenu.c
index 019fa3e..50d4142 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -61,9 +61,36 @@ static Item *prev, *curr, *next, *sel;
 static Window win;
 static XIC xic;
 
+static char *histfile = NULL;
+static size_t histsize = 0;
+
 static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;
 static char *(*fstrstr)(const char *, const char *) = strstr;
 
+static int
+writehistory(char *command) {
+	size_t i = 0;
+	FILE *f;
+
+	if(!histfile || strlen(command) = 0)
+		return 0;
+
+	if((f = fopen(histfile, w))) {
+		fputs(command, f);
+		fputc('\n', f);
+		for(; i  histsize; i++) {
+			if(strcmp(command, items[i].text) != 0) {
+fputs(items[i].text, f);
+fputc('\n', f);
+			}
+		}
+		fclose(f);
+		return 1;
+	}
+
+	return 0;
+}
+
 int
 main(int argc, char *argv[]) {
 	Bool fast = False;
@@ -100,6 +127,8 @@ main(int argc, char *argv[]) {
 			selbgcolor = argv[++i];
 		else if(!strcmp(argv[i], -sf))  /* selected foreground color */
 			selfgcolor = argv[++i];
+		else if(!strcmp(argv[i], -hist))
+			histfile = argv[++i];
 		else
 			usage();
 
@@ -352,6 +381,7 @@ keypress(XKeyEvent *ev) {
 	case XK_Return:
 	case XK_KP_Enter:
 		puts((sel  !(ev-state  ShiftMask)) ? sel-text : text);
+		writehistory(sel ? sel-text : text);
 		exit(EXIT_SUCCESS);
 	case XK_Right:
 		if(text[cursor] != '\0') {
@@ -459,20 +489,28 @@ paste(void) {
 void
 readstdin(void) {
 	char buf[sizeof text], *p, *maxstr = NULL;
-	size_t i, max = 0, size = 0;
-
-	/* read each line from stdin and add it to the item list */
-	for(i = 0; fgets(buf, sizeof buf, stdin); i++) {
-		if(i+1 = size / sizeof *items)
-			if(!(items = realloc(items, (size += BUFSIZ
-eprintf(cannot realloc %u bytes:, size);
-		if((p = strchr(buf, '\n')))
-			*p = '\0';
-		if(!(items[i].text = strdup(buf)))
-			eprintf(cannot strdup %u bytes:, strlen(buf)+1);
-		if(strlen(items[i].text)  max)
-			max = strlen(maxstr = items[i].text);
+	size_t i = 0, max = 0, size = 0;
+#define readstdin_internals(the_input_file) \
+	for(; fgets(buf, sizeof buf, the_input_file); i++) {\
+		if(i+1 = size / sizeof *items)\
+			if(!(items = realloc(items, (size += BUFSIZ\
+eprintf(cannot realloc %u bytes:, size);\
+		if((p = strchr(buf, '\n')))\
+			*p = '\0';\
+		if(!(items[i].text = strdup(buf)))\
+			eprintf(cannot strdup %u bytes:, strlen(buf)+1);\
+		if(strlen(items[i].text)  max)\
+			max = strlen(maxstr = items[i].text);\
+	}\
+	/* lines from the history file must appear first in menu */
+	FILE *f;
+	if(histfile  (f = fopen(histfile, r))) {
+		readstdin_internals(f);
+		histsize = i;
+		fclose(f);
 	}
+	/* read each line from stdin and add it to the item list */
+	readstdin_internals(stdin);
 	if(items)
 		items[i].text = NULL;
 	inputw = maxstr ? textw(dc, maxstr) : 0;
@@ -594,7 +632,7 @@ setup(void) {
 
 void
 usage(void) {
-	fputs(usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-fn font]\n
+	fputs(usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-hist file] [-fn font]\n
 	   [-nb color] [-nf color] [-sb color] [-sf color] [-v]\n, stderr);
 	exit(EXIT_FAILURE);
 }
-- 
1.7.8



Re: [dev] DWM equivalent of wihack?

2011-12-08 Thread Suraj N. Kurapati
On Wed 07 Dec 2011 09:58:17 PM PST, Carlos Torres wrote:
 On Wed, Dec 7, 2011 at 9:46 PM, Suraj N. Kurapati wrote:
  I want to launch a terminal with EWMH window type dialog so
  that it opens in the floating layer

 you can set the -name of the terminal; that will set the WM_CLASS
 to name, XTerm [...] you can then set a line in config.h of
 dwm for that specific XTerm instance.

Thanks, that works well, and for any client with that WM_CLASS. :)

  static const Rule rules[] = {
{ NULL, DIALOG, NULL, 0, True, -1 },
  };

$ urxvt -name DIALOG -e top 
$ xterm -name DIALOG -e top 

-- 
It's not just a computer -- it's your ass.
-- Cal Keegan



[dev] DWM equivalent of wihack?

2011-12-07 Thread Suraj N. Kurapati
Hello,

I want to launch a terminal with EWMH window type dialog so that it
opens in the floating layer but I don't want to add a rule to put *all*
terminals in the floating layer.  In wmii, I would use the wihack tool
to accomplish this.  How could I achieve this in DWM?

In particular, I'm trying to launch top(1) in a terminal when I click a
region that shows the current system load average in my dzen2 statusbar.

Thanks.

-- 
Illusion is the first of all pleasures.
-- Voltaire



[dev] [dmenu] history patch updated r471

2011-12-07 Thread Suraj N. Kurapati
Hello,

I have updated (attached) the dmenu history patch[1] to apply against
the current tip revision 471:60d97462ff9d.  Parts of the readstdin()
function had to be run twice, so I did a quick  dirty #define, knowing
that the C experts in the Suckless Community can suggest better ways.

This patch is also available[2] in my dmenu mirror on GitHub.  Cheers.

[1]: http://tools.suckless.org/dmenu/patches/history
[2]: https://github.com/sunaku/.dmenu/compare/tip...history

-- 
Nobody said computers were going to be polite.
From eec5666cb9d666dd67d0b7ebf6f4f0b399e9fbdf Mon Sep 17 00:00:00 2001
From: Suraj N. Kurapati sun...@gmail.com
Date: Wed, 7 Dec 2011 22:33:10 -0800
Subject: [PATCH] dmenu-tip-history.diff (adapted to new hg tip)

http://tools.suckless.org/dmenu/patches/history
---
 dmenu.1 |5 
 dmenu.c |   68 ++-
 2 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/dmenu.1 b/dmenu.1
index 5f74463..33a9599 100644
--- a/dmenu.1
+++ b/dmenu.1
@@ -20,6 +20,8 @@ dmenu \- dynamic menu
 .IR color ]
 .RB [ \-sf
 .IR color ]
+.RB [ \-hist
+.IR filename ]
 .RB [ \-v ]
 .P
 .BR dmenu_run  ...
@@ -70,6 +72,9 @@ defines the selected background color.
 .BI \-sf  color
 defines the selected foreground color.
 .TP
+.BI \-hist  histfile
+the file to use for history
+.TP
 .B \-v
 prints version information to stdout, then exits.
 .SH USAGE
diff --git a/dmenu.c b/dmenu.c
index 019fa3e..4f3a8d3 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -18,6 +18,8 @@
 #define MIN(a,b)  ((a)  (b) ? (a) : (b))
 #define MAX(a,b)  ((a)  (b) ? (a) : (b))
 
+#define HIST_SIZE 20
+
 typedef struct Item Item;
 struct Item {
 	char *text;
@@ -61,9 +63,37 @@ static Item *prev, *curr, *next, *sel;
 static Window win;
 static XIC xic;
 
+static char hist[HIST_SIZE][1024];
+static char *histfile = NULL;
+static int hcnt = 0;
+
 static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;
 static char *(*fstrstr)(const char *, const char *) = strstr;
 
+static int
+writehistory(char *command) {
+	int i = 0;
+	FILE *f;
+
+	if(!histfile || strlen(command) = 0)
+		return 0;
+
+	if((f = fopen(histfile, w))) {
+		fputs(command, f);
+		fputc('\n', f);
+		for(; i  hcnt; i++) {
+			if(strcmp(command, hist[i]) != 0) {
+fputs(hist[i], f);
+fputc('\n', f);
+			}
+		}
+		fclose(f);
+		return 1;
+	}
+
+	return 0;
+}
+
 int
 main(int argc, char *argv[]) {
 	Bool fast = False;
@@ -100,6 +130,8 @@ main(int argc, char *argv[]) {
 			selbgcolor = argv[++i];
 		else if(!strcmp(argv[i], -sf))  /* selected foreground color */
 			selfgcolor = argv[++i];
+		else if(!strcmp(argv[i], -hist))
+			histfile = argv[++i];
 		else
 			usage();
 
@@ -352,6 +384,7 @@ keypress(XKeyEvent *ev) {
 	case XK_Return:
 	case XK_KP_Enter:
 		puts((sel  !(ev-state  ShiftMask)) ? sel-text : text);
+		writehistory(sel ? sel-text : text);
 		exit(EXIT_SUCCESS);
 	case XK_Right:
 		if(text[cursor] != '\0') {
@@ -459,20 +492,27 @@ paste(void) {
 void
 readstdin(void) {
 	char buf[sizeof text], *p, *maxstr = NULL;
-	size_t i, max = 0, size = 0;
-
-	/* read each line from stdin and add it to the item list */
-	for(i = 0; fgets(buf, sizeof buf, stdin); i++) {
-		if(i+1 = size / sizeof *items)
-			if(!(items = realloc(items, (size += BUFSIZ
-eprintf(cannot realloc %u bytes:, size);
-		if((p = strchr(buf, '\n')))
-			*p = '\0';
-		if(!(items[i].text = strdup(buf)))
-			eprintf(cannot strdup %u bytes:, strlen(buf)+1);
-		if(strlen(items[i].text)  max)
-			max = strlen(maxstr = items[i].text);
+	size_t i = 0, max = 0, size = 0;
+#define readstdin_internals(the_input_file) \
+	for(; fgets(buf, sizeof buf, the_input_file); i++) {\
+		if(i+1 = size / sizeof *items)\
+			if(!(items = realloc(items, (size += BUFSIZ\
+eprintf(cannot realloc %u bytes:, size);\
+		if((p = strchr(buf, '\n')))\
+			*p = '\0';\
+		if(!(items[i].text = strdup(buf)))\
+			eprintf(cannot strdup %u bytes:, strlen(buf)+1);\
+		if(strlen(items[i].text)  max)\
+			max = strlen(maxstr = items[i].text);\
+	}\
+	/* lines from the history file must appear first in menu */
+	FILE *f;
+	if(histfile  (f = fopen(histfile, r))) {
+		readstdin_internals(f);
+		fclose(f);
 	}
+	/* read each line from stdin and add it to the item list */
+	readstdin_internals(stdin);
 	if(items)
 		items[i].text = NULL;
 	inputw = maxstr ? textw(dc, maxstr) : 0;
@@ -594,7 +634,7 @@ setup(void) {
 
 void
 usage(void) {
-	fputs(usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-fn font]\n
+	fputs(usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-hist histfile] [-fn font]\n
 	   [-nb color] [-nf color] [-sb color] [-sf color] [-v]\n, stderr);
 	exit(EXIT_FAILURE);
 }
-- 
1.7.8



Re: [dev] [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-25 Thread Suraj N. Kurapati
On Fri 25 Nov 2011 01:00:58 PM PST, Bastien Dejean wrote:
 Troels Henriksen a écrit :

  look for the process indicated by the _NET_WM_PID property, then
  use the working directory of that process.

 It seems the value of _NET_WM_PID is not always useful: For urxvtc
 clients, it is equal to the pid of urxvtd.

Indeed, I already tried that approach[1] and found that it becomes
too complex (need to walk process tree) before patching DWM itself.

[1]: https://github.com/sunaku/home/blob/master/bin/xcd

-- 
Hackers are just a migratory lifeform with a tropism for computers.


signature.asc
Description: PGP signature


Re: [dev] [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-25 Thread Suraj N. Kurapati
On Fri 25 Nov 2011 10:11:35 AM PST, Kurt Van Dijck wrote:
 Suraj N. Kurapati wrote:
 the ability to open new programs in the currently focused
 client's workdir.
 https://github.com/sunaku/.dwm/compare/tip...spawn_cwd

 I don't understand the feature.

It's all about spatial locality.  When I'm editing some code in Vim,
I like to launch some new terminals (or file managers) in the same
working directory as the file I'm editing to do additional things.

Without this feature, I have to *manually* navigate to that working
directory in the helper application (terminal or file manager) that
I launched.  This becomes tiresome and inefficient as time goes on.

 I appears to assume that all clients run on the same host?

Yes, and that's good enough for me.  However, in the case that the
remote client's title contains a path that also exists on the local
machine (perhaps network mounted on both local  remote machines)
then your newly launched program will start in your local directory.

-- 
On the eighth day, God created FORTRAN.


signature.asc
Description: PGP signature


Re: [dev] [dwm] 2000 SLOC - assert() sanity checks

2011-11-25 Thread Suraj N. Kurapati
On Sun 30 Oct 2011 08:53:48 AM PDT, Martin Kopta wrote:
 4) Should be the code made smaller by witty constructions or do you 
 prefer boring and obvious constructions (which are generaly longer)?

Following this train of thought, what does the suckless community have
to say about sanity checks via assert.h?  Do you abhor them or deem
them unnecessary?  Count them in the SLOC metric or just ignore them?

I ask because I have added an assert() sanity check to my DWM patch,
thereby adding 2 SLOC; but I feel much safer with the assert in place:

https://github.com/sunaku/.dwm/commit/bc43059d4f0c9f87b4a3c43c7a4bc65e1598217f

What do you think?

-- 
From listening comes wisdom and from speaking repentance.


signature.asc
Description: PGP signature


Re: [dev] [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-25 Thread Suraj N. Kurapati
On Fri 25 Nov 2011 10:42:31 PM PST, Julian Dammann wrote:
  It's all about spatial locality.  When I'm editing some code in Vim,
  I like to launch some new terminals (or file managers) in the same
  working directory as the file I'm editing to do additional things.
 
 Ever tried :!your_terminal  in vim? Maybe that's good enough for
 you if bound to some key.
 
Thanks for the suggestion, but it's not as pleasant as being able to
press my app launching shortcut keys (for urxvt, thunar, gvim) in DWM
on any selected window and have those apps launched in its working dir.

This patch affects DWM's program menu (dmenu_run) too, for more power.

-- 
Certainly the game is rigged.

Don't let that stop you; if you don't bet, you can't win.
-- Robert Heinlein, Time Enough For Love


signature.asc
Description: PGP signature


[dev] Re: [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-25 Thread Suraj N. Kurapati
On Thu 24 Nov 2011 02:57:13 PM PST, Suraj N. Kurapati wrote:
 On Thu 24 Nov 2011 01:58:05 PM PST, Suraj N. Kurapati wrote:
  So I ported this feature to DWM using just 27 SLOC in this[2] patch,
  [2]: https://github.com/sunaku/.dwm/compare/tip...spawn_cwd
 
 It is now 29 SLOC after using DWM coding style and a free(NULL) fix.
 

I shaved off 2 SLOC used for strdup since we're going to exec anyway.

-- 
I have often regretted my speech, never my silence.
-- Publilius Syrus


signature.asc
Description: PGP signature


Re: [dev] [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-25 Thread Suraj N. Kurapati
On Sat 26 Nov 2011 08:28:26 AM PST, Patrick Haller wrote:
 autocmd BufEnter * cd %:p:h
 for when you use multiple buffers in vim.

set autochdir

-- 
Bus error -- please leave by the rear door.


signature.asc
Description: PGP signature


[dev] [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-24 Thread Suraj N. Kurapati
Hello,

I switched[1] to DWM from WMII recently (after 6 long years, yay!) and
one of the things I missed from my previous WMII configuration was the
ability to open new programs in the currently focused client's workdir.

So I ported this feature to DWM using just 27 SLOC in this[2] patch,
which I now humbly submit for expert review by the suckless community.

Thanks for your consideration.

[1]: https://bbs.archlinux.org/viewtopic.php?pid=1019589#p1019589
[2]: https://github.com/sunaku/.dwm/compare/tip...spawn_cwd

-- 
You can always pick up your needle and move to another groove.
-- Tim Leary


signature.asc
Description: PGP signature


[dev] Re: [dwm] [PATCH] spawn_cwd - spawn from current client's cwd

2011-11-24 Thread Suraj N. Kurapati
On Thu 24 Nov 2011 01:58:05 PM PST, Suraj N. Kurapati wrote:
 So I ported this feature to DWM using just 27 SLOC in this[2] patch,
 [2]: https://github.com/sunaku/.dwm/compare/tip...spawn_cwd

It is now 29 SLOC after using DWM coding style and a free(NULL) fix.

-- 
Life is the childhood of our immortality.
-- Goethe


signature.asc
Description: PGP signature


[dev] [dwm] attachbelow patch

2011-11-19 Thread Suraj N. Kurapati
Hello,

I have modified Mate Nagy's attach above patch[1] for DWM into a new
attach below patch (attached) to emulate WMII's behavior of attaching
new clients below the currently focused one.

Cheers.

[1]: http://dwm.suckless.org/patches/attachabove

-- 
Old mail has arrived.
diff --git a/dwm.c b/dwm.c
index 1d78655..d4c6fa6 100644
--- a/dwm.c
+++ b/dwm.c
@@ -160,6 +160,7 @@ static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool inter
 static void arrange(Monitor *m);
 static void arrangemon(Monitor *m);
 static void attach(Client *c);
+static void attachbelow(Client *c);
 static void attachstack(Client *c);
 static void buttonpress(XEvent *e);
 static void checkotherwm(void);
@@ -418,6 +419,17 @@ attach(Client *c) {
 }
 
 void
+attachbelow(Client *c) {
+	Client *at = c-mon-sel;
+	if(at == NULL || at-isfloating) {
+		attach(c);
+		return;
+	}
+	c-next = at-next;
+	at-next = c;
+}
+
+void
 attachstack(Client *c) {
 	c-snext = c-mon-stack;
 	c-mon-stack = c;
@@ -1155,7 +1167,7 @@ manage(Window w, XWindowAttributes *wa) {
 		c-isfloating = c-oldstate = trans != None || c-isfixed;
 	if(c-isfloating)
 		XRaiseWindow(dpy, c-win);
-	attach(c);
+	attachbelow(c);
 	attachstack(c);
 	XMoveResizeWindow(dpy, c-win, c-x + 2 * sw, c-y, c-w, c-h); /* some windows require this */
 	setclientstate(c, NormalState);


signature.asc
Description: PGP signature


Re: [dev] markdown parsing in C

2011-11-16 Thread Suraj N. Kurapati
On Mon 31 Oct 2011 03:25:48 PM PDT, Connor Lane Smith wrote:
 Markdown is great to use, but iirc has no well-defined syntax, which
 makes it difficult to parse efficiently.

Not anymore.  See https://github.com/tanoku/sundown

-- 
You don't have to know how the computer works, just how to work the
computer.


signature.asc
Description: PGP signature


Re: [dev] wmii falling out of favor

2011-11-14 Thread Suraj N. Kurapati
On Thu 10 Nov 2011 09:29:53 PM PST, Anselm R Garbe wrote:
 wmii is cursed. Its code base has grown by factor 3 or 4 in terms
 of SLOC, whereas its functionality has stalled.

Thanks Anselm.  I think I've held on to the past for too long, and
avoided DWM mainly out of disinterest in C.  However, after recently
contributing[1] to a 36K+ SLOC C codebase, I no longer fear DWM's 2K
SLOC codebase.  So save me a seat on the Suckless community van! ;)

[1]: http://snk.tuxfamily.org/log/oniguruma-negated-regexps.html

-- 
I refuse to have a battle of wits with an unarmed person.


signature.asc
Description: PGP signature


Re: [dev] wmii + ruby 1.9.3 = no power woes!

2011-11-07 Thread Suraj N. Kurapati
On Thu 03 Nov 2011 09:57:19 AM PDT, Kurt H Maier wrote:
 There is nothing suckless about any aspect of modern wmii

I thought Suckless folks were enthusiastic about Plan9 technologies;
has this changed?  If so, why?

And how is modern wmii different from its, let's say, pre-modern
phase?  From my view, it still uses the Plan9 protocol and the Plan9
approach of exposing a virtual filesystem for operation by the user.

Thanks for your consideration.

-- 
Beauty is one of the rare things which does not lead to doubt of God.
-- Jean Anouilh


signature.asc
Description: PGP signature


[dev] wmii + ruby 1.9.3 = no power woes!

2011-11-02 Thread Suraj N. Kurapati
Hello,

For those who were weary of my Ruby wmiirc[1]'s power consumption,
I am happy to announce that the latest Ruby 1.9.3-p0 stable release
has solved Ruby's problem of causing excessive CPU wakeups-from-idle
which would drain your laptop battery much sooner than you'd expect.

On my ASUS UL30A-A2 laptop running Arch Linux, powertop[2] shows
that Ruby 1.9.3-p0 causes around 2 CPU wakeups-from-idle per second.

Top causes for wakeups:
  28.8% ( 47.0)   [hda_intel] interrupt
  14.6% ( 23.9)   [kernel scheduler] Load balancing tick
  11.9% ( 19.4)   [ath9k] interrupt
  11.8% ( 19.3)   kworker/0:0
   8.0% ( 13.1)   [kernel core] hrtimer_start (tick_sched_timer)
   6.1% ( 10.0)   kworker/u:3
   3.1% (  5.0)   syndaemon
   2.8% (  4.6)   [acpi] interrupt
   2.5% (  4.0)   [kernel core] usb_hcd_poll_rh_status (rh_timer_func)
   1.5% (  2.5)   wmii
   1.3% (  2.1)   liferea
   1.2% (  2.0)   kworker/u:2
   1.2% (  1.9)   ruby
   1.0% (  1.7)   X
   0.7% (  1.2)   ario
   0.6% (  1.0)   [kernel core] tpt_trig_timer (tpt_trig_timer)
   0.6% (  1.0)   ntpd
   0.3% (  0.5)   [ahci] interrupt
   0.3% (  0.5)   watchdog/0

So leave your power woes behind and enjoy wmii with Ruby today! :-)

[1]: https://github.com/sunaku/wmiirc#readme
[2]: http://www.lesswatts.org/projects/powertop/

-- 
I have often regretted my speech, never my silence.
-- Publilius Syrus


signature.asc
Description: PGP signature


Re: [dev] Some questions about st and a patch

2011-10-20 Thread Suraj N. Kurapati
On Thu 20 Oct 2011 09:02:10 AM PDT, markus schnalke wrote:
 [2011-10-19 21:36] Andrew Hills
  it's hard to find the content in your message when the majority
  of my mail reader's window is full of PGP signature

 I frequently see way worse messages in this respect on this list.

Indeed, full-quoted top-posting responses do come by ocassionally.

-- 
You will always find something in the last place you look.


signature.asc
Description: PGP signature


Re: [dev] Some questions about st and a patch

2011-10-19 Thread Suraj N. Kurapati
On Thu 20 Oct 2011 01:55:30 AM PDT, Stephen Paul Weber wrote:
 Does this list support MIME?

Works for me with PGP MIME.

-- 
FORTRAN rots the brain.
-- John McQuillin


signature.asc
Description: PGP signature


Re: [dev] st features that'd be nice

2011-10-18 Thread Suraj N. Kurapati
On Tue 18 Oct 2011 11:01:07 AM PDT, Nick wrote:
 * Find - search through scrollback (maybe using regex).

I find this to be one of URxvt's killer features.  Alt-S brings up
an interactive regexp search of the scrollback buffer: urxvtperl(3).

-- 
To understand a program you must become both the machine and the
program.


signature.asc
Description: PGP signature


Re: [dev] [dwm] dwm statusbar - see wmii

2011-10-17 Thread Suraj N. Kurapati
On Mon 17 Oct 2011 02:29:43 PM PDT, Connor Lane Smith wrote:
 Separating the status bar from the window manager would require us
 to fill root with atoms, or else invent our own IPC protocol, and
 it would generally get quite messy.

That's what wmii does, where IPC is done via the 9P2000 protocol.
In my wmii configuration, I have independent status bar applets,
each having its own text label, colors, and mouse event handlers.
As for garish icons, Unicode pictograms in the text label suffice.

Here is a screenshot to whet (or ruin ;) your status bar appetite:

  http://ompldr.org/vYXIweQ

If you're interested, see this ArchLinux screenshot thread for more:

  https://bbs.archlinux.org/viewtopic.php?pid=1001807#p1001807

Cheers.

-- 
We have nowhere else to go... this is all we have.
-- Margaret Mead


signature.asc
Description: PGP signature


Re: [dev] Make dmenu sensitive to user aliases (Hello world)

2011-10-03 Thread Suraj N. Kurapati
On Mon 03 Oct 2011 08:05:26 AM PDT, Patrick Haller wrote:
 update_config() { [ `mtime $cfg` -gt `mtime $history` ]  . $cfg
 ; }
 export PS1='`update_config` '

Never heard of mtime(1).  Is that POSIX sh?  This is:

update_config() { [ $cfg -nt $history ]  . $cfg ; }

-- 
Waste not fresh tears over old griefs.
-- Euripides


signature.asc
Description: PGP signature


Re: [dev] Make dmenu sensitive to user aliases (Hello world)

2011-10-03 Thread Suraj N. Kurapati
On Mon 03 Oct 2011 07:49:04 PM PDT, Connor Lane Smith wrote:
 On 3 October 2011 19:42, Suraj N. Kurapati wrote:
  Never heard of mtime(1).  Is that POSIX sh?  This is:
 
  update_config() { [ $cfg -nt $history ]  . $cfg ; }

 No it isn't, the '-nt' flag is a non-POSIX test(1) extension.

I stand corrected.  Thank you.

-- 
I just forgot my whole philosophy of life!!!


signature.asc
Description: PGP signature


Re: [dev] wmpus - a new cross platform wm

2011-09-30 Thread Suraj N. Kurapati
On Fri 30 Sep 2011 07:23:25 AM PDT, Andy Spencer wrote:
 *yet another* new window manager, called `wmpus' [1].
 [...]
  - Runs natively on X11 and MS Windows

The newer WMs are all using libxcb instead of xlib for X11:

  http://xcb.freedesktop.org

Good luck on your project! :-)

-- 
You have a message from the operator.


signature.asc
Description: PGP signature


Re: [dev] [st] patch to send terminal to another program

2011-08-25 Thread Suraj N. Kurapati
On Thu 25 Aug 2011 03:40:56 PM PDT, Nick wrote:
 I confess to not being overly familiar with the finer points of
 forking, so hope someone better than me can suggest a fix.

I recommend Beej's Guide to Unix IPC for such knowledge:

http://beej.us/guide/bgipc/output/html/multipage/fork.html

-- 
The bland leadeth the bland and they both shall fall into the kitsch.


signature.asc
Description: PGP signature


Re: [dev] [wmii] window titlebar right-click menu - item order

2011-08-10 Thread Suraj N. Kurapati
On Wed 10 Aug 2011 11:24:54 PM PDT, Connor Lane Smith wrote:
 On 10 August 2011 23:10, Ethan Grammatikidis wrote:
  dwm could use an fwvm-style Close which sends a delete if the
  window supports it, otherwise sends a kill, thus hiding a
  particularly ugly part of X.

 It does.

 s/dwm/wmii/ ?

Yes, wmii has two distinct actions: 'kill' and 'slay' for clients.

-- 
Keep the number of passes in a compiler to a minimum.
-- D. Gries


signature.asc
Description: PGP signature


Re: [dev] [wmii] Flash in fullscreen regularly freezes screen

2011-08-05 Thread Suraj N. Kurapati
On Fri 05 Aug 2011 12:18:06 AM PDT, Nathan Neff wrote:
  Linux 2.6.39-ARCH

 otAre you running Arch Linux again? It's so tempting!/ot

Yup, I've been riding the edge with ArchLinux since February.  :-)

-- 
Nobody said computers were going to be polite.


signature.asc
Description: PGP signature


Re: [dev] [wmii] Flash in fullscreen regularly freezes screen

2011-08-05 Thread Suraj N. Kurapati
On Fri 05 Aug 2011 01:16:35 PM PDT, dtk wrote:
 On Fri 05 Aug 2011 12:37:52 AM PDT, dtk wrote:
  putting the flash player on a website into fullscreen regularly
  (very -.-) freezes my screen.

 @Suraj If you see it, but Kris doesn't, does that mean the problem
 might be related to rumai?

That seems unlikely IMHO, but you can easily test your hypothesis by
stashing away your ~/.wmii-hg directory and restarting wmii, thereby
making it use the default sh/rc configuration that comes with wmii.

-- 
Function reject.


signature.asc
Description: PGP signature


Re: [dev] [wmii] Flash in fullscreen regularly freezes screen

2011-08-05 Thread Suraj N. Kurapati
On Fri 05 Aug 2011 03:50:51 PM PDT, Daniel Kowalski wrote:
 I usually download videos as MP4 files using 'MP4 Downloader'
 addon for firebloat and play them offline.

Adobe's flash player caches video streams in memory (and in the
past: on disk), so you can play them directly from that cache:

# see http://www.reddit.com/r/linux/comments/dky73/
lsof -p $(pgrep -f libflashplayer) | grep /tmp/Flash |
awk '{print /proc/ $2 /fd/ $4}' | sed 's/[rwu]$//' |
xargs mplayer -fs

-- 
I'm still waiting for the advent of the computer science groupie.


signature.asc
Description: PGP signature


Re: [dev] [dwm] layers

2011-08-04 Thread Suraj N. Kurapati
On Tue 02 Aug 2011 07:24:47 PM PDT, Am Jam wrote:
 he wants the number of tags to dynamically grow and shrink on the
 fly given some key combination according to his workflow that day.

Sounds like a good use-case for wmii's dynamic tagging system.  I
create task-based views all the time, particularly temporary ones:

Imagine that you're programming.  You have your text editor, a bunch
of terminals, a web browser for searching, a PDF viewer for reading
a reference e-book, and a terminal for reading man pages.  Suddenly
you've figured out how to implement that thing you've been working
on all day:  all you need now, for distraction-free implementation,
is your text editor and the reference material (say in a man page).

In this scenario, I simply use the client grouping feature of my
wmiirc (which really just adds a special tag to certain clients) and
group the text editor and man page window.  Next I press C-A-Right,
which is my shortcut for create a temporary view and then
auto-arrange the clients inside it, and boom!  I'm ready to code.

When I'm finished, I press C-A-Left to destroy the temporary view,
send the grouped clients back, and take me back where I started. :)

-- 
Do you think there's a God?
Well, SOMEbody's out to get me!
-- Calvin and Hobbs


signature.asc
Description: PGP signature


Re: [dev] [wmii] Flash in fullscreen regularly freezes screen

2011-08-04 Thread Suraj N. Kurapati
On Fri 05 Aug 2011 12:37:52 AM PDT, dtk wrote:
 putting the flash player on a website into fullscreen regularly
 (very -.-) freezes my screen.

On my system, only the flash video freezes --- stops rendering new
frames, but audio continues playing normally.  However, on YouTube,
the fullscreen video is still responsive because I can press Escape
to dismiss the fullscreen state, and can also click to pause/resume.

% uname -a
Linux ratham 2.6.39-ARCH #1 SMP PREEMPT Sat Jul 9 14:57:41 CEST 2011
x86_64 Genuine Intel(R) CPU U7300 @ 1.30GHz GenuineIntel GNU/Linux

% wmii -v
wmii-hg2788+, ©2010 Kris Maglione

% pacman -Qi flashplugin-beta
Name   : flashplugin-beta
Version: 11.0.1.60-2
URL: 
http://labs.adobe.com/technologies/flashplatformruntimes/flashplayer11/
Licenses   : custom
Groups : None
Provides   : flashplayer  flashplugin
Depends On : mozilla-common  libxt  gtk2  nss  curl
Optional Deps  : libvdpau: GPU acceleration on Nvidia card
Required By: None
Conflicts With : flashplugin
Replaces   : None
Installed Size : 19440.00 K
Packager   : Unknown Packager
Architecture   : x86_64
Build Date : Sat 16 Jul 2011 10:50:33 AM PDT
Install Date   : Sat 16 Jul 2011 10:53:18 AM PDT
Install Reason : Explicitly installed
Install Script : No
Description: Adobe Flash Player 11 Beta

-- 
Some programming languages manage to absorb change, but withstand
progress. -- Epigrams in Programming, ACM SIGPLAN Sept. 1982


signature.asc
Description: PGP signature


Re: [dev] color-scheme

2011-08-01 Thread Suraj N. Kurapati
On Mon 25 Jul 2011 06:22:58 PM PDT, ilf wrote:
 What's your favorite color-scheme?

I use Vim's xoria256 color scheme[1] in my Xresources[2].

[1] http://www.vim.org/scripts/script.php?script_id=2140
[2] http://snk.tuxfamily.org/log/xoria256-terminal-color-scheme.html

-- 
System going down at 5 this afternoon to install scheduler bug.


signature.asc
Description: PGP signature


Re: [dev] [wmii] How to disable re-sizing of managed area.

2011-07-29 Thread Suraj N. Kurapati
On Fri 29 Jul 2011 03:16:20 PM PDT, Aleksey Zapparov wrote:
 http://img94.imageshack.us/img94/6758/201107281723071280x800s.png

Wow, nice color scheme!  Would you mind sharing it?  And how did you
make your terminals (and wmii's client borders) translucent?  O_o

-- 
Assembly language experience is [important] for the maturity
and understanding of how computers work that it provides.
-- D. Gries


signature.asc
Description: PGP signature


Re: [dev] ideas on suckless file manager

2011-07-05 Thread Suraj N. Kurapati
On Mon 04 Jul 2011 08:58:07 PM PDT, Pieter Praet wrote:
 On Mon, 4 Jul 2011 11:18:16 -0700, Noah Birnel wrote:
  I am not arguing that no one should attempt to calibrate their
  monitor - but that it is not a necessity for all graphics work.
  In our case, it would be a waste of time.

 So you'll just keep on printing 1x1.3m's until the colors seem
 right?

That reminds me of an old Calvin and Hobbes comic strip:

http://picayune.uclick.com/comics/ch/1986/ch861126.gif

-- 
Nothing is ever a total loss; it can always serve as a bad example.


signature.asc
Description: PGP signature


Re: [dev] Simple application launcher?

2011-06-30 Thread Suraj N. Kurapati
On Thu 30 Jun 2011 10:39:55 PM PDT, Thuban wrote:
 Le 21:35:14 le 30 juin 2011 , John Matthewman a écrit :
  Can anybody recommend a simple point-and-click application
  launcher for X?

 It's a bit late, but you also can try 9menu

And if you're a wmii user, it already comes with wmii9menu.

usage: wmii9menu [-a address] [-i arg] menitem[:command] ...
   wmii9menu -v

-- 
Avoid strange women and temporary variables.


signature.asc
Description: PGP signature


Re: [dev] [dwm] segfault

2011-06-22 Thread Suraj N. Kurapati
On Thu 23 Jun 2011 12:25:26 AM PDT, Arian Kuschki wrote:
 when dwm segfaults next time, where will I find the coredump file?

In the directory where dwm was run.  If you use startx, then
you would typically find the coredump in your home directory.

-- 
There are running jobs.  Why don't you go chase them?


signature.asc
Description: PGP signature


Re: [dev] Cleanup of (hg.)suckless.org - wmii libixp mirror

2011-06-21 Thread Suraj N. Kurapati
On Tue 21 Jun 2011 09:54:15 AM PDT, Nick wrote:
 given that you're disowning wmii, and are skeptical of libixp.

I have mirrored wmii and libixp source repositories on GitHub:

https://github.com/sunaku/wmii
https://github.com/sunaku/libixp

Cheers.

-- 
A lot of people I know believe in positive thinking, and so do I.
I believe everything positively stinks.
-- Lew Col


signature.asc
Description: PGP signature


Re: [dev] Cleanup of (hg.)suckless.org - wmii libixp mirror

2011-06-21 Thread Suraj N. Kurapati
On Tue 21 Jun 2011 03:05:43 PM PDT, Kris Maglione wrote:
 On Tue, Jun 21, 2011 at 12:00:06PM -0700, Suraj Kurapati wrote:
 I have mirrored wmii and libixp source repositories on GitHub:
 
 https://github.com/sunaku/wmii
 https://github.com/sunaku/libixp

 There's no need. They've been available on Google Code for some
 years now:

 http://wmii.googlecode.com/
 http://libixp.googlecode.com/

Thanks!  I didn't know this.  I'll destroy my mirrors accordingly.

P.S. I don't know to what extent you're back, but welcome back! :)

-- 
** MAXIMUM TERMINALS ACTIVE.  TRY AGAIN LATER **


signature.asc
Description: PGP signature


Re: [dev] Cleanup of (hg.)suckless.org - wmii libixp mirror

2011-06-21 Thread Suraj N. Kurapati
On Tue 21 Jun 2011 12:23:04 PM PDT, Robert Ransom wrote:
 On Tue, 21 Jun 2011 12:15:19 -0700 Suraj N. Kurapati wrote:
  On Tue 21 Jun 2011 03:05:43 PM PDT, Kris Maglione wrote:
   On Tue, Jun 21, 2011 at 12:00:06PM -0700, Suraj Kurapati
   wrote:
   https://github.com/sunaku/wmii
   https://github.com/sunaku/libixp
  
   There's no need. They've been available on Google Code for
   some years now:
  
   http://wmii.googlecode.com/ http://libixp.googlecode.com/
 
  I'll destroy my mirrors accordingly.

 Don't!  Git mirrors are useful.

Alright, then I'll monitor the googlecode repositories' RSS feeds
and push to my GitHub mirrors periodically (cron job).  Git FTW :)

-- 
Machines certainly can solve problems, store information, correlate,
and play games -- but not with pleasure.
-- Leo Rosten


signature.asc
Description: PGP signature


Re: [dev] ideas on suckless file manager

2011-06-09 Thread Suraj N. Kurapati
On Thu 09 Jun 2011 02:50:53 PM PDT, hiro wrote:
 The Tamsyn guy says it's an aliased font. What does it mean?

Here's a reply from the author of Tamsyn regarding this matter:

Begin forwarded message:

Date: Thu, 09 Jun 2011 14:04:43 -0700
From: Scott Fial sc...@fial.com
To: Suraj N. Kurapati sun...@gmail.com
Subject: Re: Tamsyn font - aliased or smoothed?


Hi Suraj,

Now that I'm done I realize that I've written more than this subject
probably deserves, but its close to my heart so bear with me.

To be honest, I'm no expert in fonts or the terminology.  I'm just
some guy and somehow this font became my hobby.  It seems the words
aliased and anti-aliased have meaning beyond my simplistic
interpretation.  I naively used the term aliased to mean: not
anti-aliased, hinted, or smoothed in any way.  But that's because I
vaguely equate anti-aliasing with the blurring and blending of a
font to smooth the jagged edges.  And if that's the case, then the
jagged edges must be the aliasing (right?) since the true curves
and angles of each character can't be represented perfectly as
pixels.  Such was my logic.  Its a vector font in my mind;  I have a
mental picture of the true shape of each character, but I'm faced
with aliasing effects as I try to represent that shape as pixels.
The fun comes in finding designs which look nice given that
constraint while avoiding as much of the resulting visual static
as possible.

The point I'm trying to make on the web page is that the font will
look the same wherever you use it and has no dependency on
sophisticated font rendering technologies.  So, given all that I've
said here, what *is* the term I should be using to describe this
kind of font?  I want the web page to be correct.  Please put it to
your forum and let me know if anyone has the answer.

thanks,

Scott


On 6/9/2011 9:07 AM, Suraj N. Kurapati wrote:
 Hello,

 There has been some discussion on whether Tamsyn is aliased
 here:

 http://thread.gmane.org/gmane.comp.misc.suckless/6178

 I thought you'd like to comment on this to clarify your
 definition, or perhaps revise your description on the Tamsyn
 homepage accordingly.

 Cheers.

 P.S. Many thanks for Tamsyn: it's the best monospaced font ever! :-)


-- 


signature.asc
Description: PGP signature


Re: [dev] ideas on suckless file manager

2011-06-08 Thread Suraj N. Kurapati
On Wed 08 Jun 2011 09:26:08 PM PDT, Ethan Grammatikidis wrote:
 On Tue, 7 Jun 2011 19:09:25 +0200 pancake wrote:
  White background terminals harm my eyes.
 
  I cant think on anybody spending lot of time on a white
  background terminal. Its anti natural.

 I've been through a lot of (old) screens and I have to say it
 depends on screen and font.

I agree.  Newer trends, like the Solarized color scheme[1], seem to
favor thick fonts with supplemental anti-aliasing, such as DejaVu
Sans Mono.  Using bitmapped and inherently aliased fonts, such as
Tamsyn[2], with such color schemes is not as good[3].  Instead, I
find that they are much easier to read on a dark background[4].

[1]: http://ethanschoonover.com/solarized
[2]: http://www.fial.com/~scott/tamsyn-font/
[3]: http://ompldr.org/vOHo2Nw
[4]: http://ompldr.org/vOHo2YQ

-- 
E Pluribus Unix


signature.asc
Description: PGP signature


Re: [dev] ideas on suckless file manager

2011-06-08 Thread Suraj N. Kurapati
On Wed 08 Jun 2011 10:11:52 PM PDT, Ethan Grammatikidis wrote:
 On Wed, 8 Jun 2011 13:50:14 -0700 Suraj N. Kurapati wrote:
  [2]: http://www.fial.com/~scott/tamsyn-font/

 If I may say so on brief acquaintance with it, that's a well-made
 bitmap font, that is.

Indeed, Tamsyn is the fairest monospaced font of them all, IMHO. :-)

-- 
Systems programmers are the high priests of a low cult.
-- R.S. Barton


signature.asc
Description: PGP signature


Re: [dev] Suckless Smartphone?

2011-06-06 Thread Suraj N. Kurapati
On Mon 06 Jun 2011 06:16:22 PM PDT, garbeam wrote:
 On 6 June 2011 17:45, Dieter Plaetinck wrote:
  non-electronic books suck because you can't easily search in, or
  copypaste from them.

 Let's talk again in 40 years if you can still read your ebooks by
 then :) I stay loyal to real books.

+1  I underline, write notes, and mark-up passages, and attach
little sticky flags as bookmarks in my books.  That wouldn't be
easy to do in a portable and suckless fashion in electronic books.

-- 
Another megabytes the dust.


signature.asc
Description: PGP signature


[dev] Making Apps That Don't Suck by Mike Lee

2011-05-20 Thread Suraj N. Kurapati
Hello,

Here is an interesting and relevant talk on suckless design:

Making Apps That Don't Suck by Mike Lee on May 20, 2011 (~1hr)
http://www.infoq.com/presentations/Making-Apps-That-Dont-Suck

Cheers.

-- 
In less than a century, computers will be making substantial
progress on ... the overriding problem of war and peace.
-- James Slagle


signature.asc
Description: PGP signature


Re: [dev] dwm taskbar icons via pcf font

2011-05-19 Thread Suraj N. Kurapati
On Thu 19 May 2011 12:07:54 PM PDT, Le Tian wrote:
 On Thu, May 19, 2011 at 11:04 AM, pancake wrote:

 this windings approach looks cool. Can you explain in a wiki/web
 the steps to create such font file, and how to do your setup?

 here is a link: https://bbs.archlinux.org/viewtopic.php?id=92895

Please trim quoted text in your replies!

--
A clash of doctrine is not a disaster -- it is an opportunity.


signature.asc
Description: PGP signature


[dev] Re: wmiirc with dual screens

2011-05-17 Thread Suraj N. Kurapati
On Tue 17 May 2011 12:15:36 PM PDT, Suraj N. Kurapati wrote:
 On Tue 17 May 2011 10:27:56 AM PDT, Jesse W. Hathaway wrote:
  Is it possible to add an event hook to look for the creation of
  a specific client, e.g. VLC,

 Yes, add a handler for the CreateClient event:

   control:
 event:
   CreateClient: |
 client_id = argv[0]
 # now do something with the client_id

Whoops, I forgot to check the created client's title:

  control:
event:
  CreateClient: |
client_id = argv[0]
client = Client.new(client_id)

if client.props.read =~ /VLC/i
  # do something with this VLC window
end

--
fortune: No such file or directory


signature.asc
Description: PGP signature


Re: [dev] wmii - key events are not read unless they are repeated

2011-05-08 Thread Suraj N. Kurapati
On Sun 08 May 2011 03:54:33 PM PDT, Ben Smith wrote:
 the programs list does not appear until its pressed a few times,
 or another action if called.

That's because your program list is being re-computed every time you
press Mod4-p.  To fix this, compute the program list once and cache
it in memory (or on disk) and then re-use it in your Mod4-p handler.

Something like the following (untested):

 proglist() {
 IFS=: set -- $1
 find -L $@ -maxdepth 1 -perm /111 | sed '1d; s,.*/,,' | sort |
 uniq unset IFS
 }

proglist_cache=$(proglist $PATH)


 # Run program
 Mod4-p)
 eval exec wmiir setsid $(proglist $PATH | wimenu -s 0) 
 ;;

Mod4-p)
eval exec wmiir setsid $(echo proglist_cache | wimenu -s 0) 

--
Beware of Programmers who carry screwdrivers.
-- Leonard Brandwein



Re: [dev] wmii - key events are not read unless they are repeated

2011-05-08 Thread Suraj N. Kurapati
On Sun 08 May 2011 05:10:37 PM PDT, Ben Smith wrote:
 I have also removed all the proglist stuff, and have tried with
 the other key that i have written a handler for (Mod4-h) and it
 also requires being pressed twice

Let's try a simpler handler logic:

  # Run program
  Mod4-p)
  wmiir setsid ls / | wimenu -s 0
  ;;

Does that require two pressing Mod4-p twice?

--
Remember the good old days, when CPU was singular?



Re: [dev] wmii - key events are not read unless they are repeated

2011-05-08 Thread Suraj N. Kurapati
On Sun 08 May 2011 06:13:28 PM PDT, Ben Smith wrote:
 the menu is not displayed at all and I get a message...
 wmiir: fatal: setsid: can't exec: No such file or directory

 If I add eval exec to the line it works after two presses
 Mod4-p)
 eval exec wmiir setsid ls / | wimenu -s 0

Interesting, I suppose you could try omitting the daemonizing logic:

  Mod4-p) ls / | wimenu ;;

--
It's not that I'm afraid to die. I just don't want to be there when
it happens. -- Woody Allen



Re: [dev] dwm

2011-05-07 Thread Suraj N. Kurapati
On Sat 07 May 2011 08:53:40 PM PDT, m1...@web.de wrote:
 Not having the time, energy, or motivation to hack on wmii is
 reasonable
 wrong, i wrote: time, the other stuff is invented by your
 imagination..

True, I projected my feelings into your statement whilst empathizing.

 *imaginationlaaand* ^^

Hey, isn't that where the suckless community van is going anyway? ;)

--
Logic doesn't apply to the real world.
-- Marvin Minsky