~kris/suckless

tabbed

ref: d6e4aafdf7da4e1a4cf15510b7d94bb8e8553c6a tabbed/tabbed.c -rw-r--r-- 29.5 KiB
82374bcf — Mikhail Pchelin 1 year, 7 months ago
focus(): clear XUrgencyHint from the container window
405d9cdf — Mikhail Pchelin 1 year, 7 months ago
Use UTF8_STRING instead of COMPOUND_TEXT

Using XCompoundTextStyle makes gnome-shell issue countless warnings in
the message log when switching between tabs or selecting text:

gnome-shell[5357]: Window manager warning: Window 0x800003 has property
_NET_WM_NAME that was expected to have type UTF8_STRING format 8 and
actually has type COMPOUND_TEXT format 8 n_items 0. This is most likely
an application bug, not a window manager bug. The window has
title="0:2:vim - "hostname" " class="tabbed" name="tabbed"
97ba13b1 — Hiltjo Posthuma 3 years ago
restore SIGCHLD sighandler to default before spawning a program

From sigaction(2):
A child created via fork(2) inherits a copy of its parent's signal dispositions.
During an execve(2), the dispositions of handled signals are reset to the default;
the dispositions of ignored signals are left unchanged.

This refused to start directly some programs from configuring in config.h:

Some reported programs that didn't start were: mpv.

Similar to the commit e81f17d4c196aaed6893fd4beed49991caa3e2a4 from dwm.
66ef5f33 — Hiltjo Posthuma 3 years ago
include X11/keysym.h: improve compatibility with older systems

This matches dwm too.

This makes it compile cleanly on a tested Slackware 11 system.
fix: faulty zombie reaping

issues with the current signal handler:

1. die() isn't async-signal-safe
2. there's a race-window during reinstating the signal handler allowing
   zombies to be produced (should be rare in practice).
3. if waitpid fails, it will clobber the errno which can lead to
   undesired codepath being taken on the resuming code (this one can
   actually occur in practice).

to reproduce the 3rd issue:

	~> ./tabbed &
	[1] 20644
	0x1800003
	~> while :; do kill -s SIGCHLD 20644; done >&2 2>/dev/null
	XIO:  fatal IO error 10 (No child processes) on X server ":0"
	      after 47 requests (47 known processed) with 0 events remaining.
	[1]  + exit 1     ./tabbed

set the signal handler to SIG_IGN to reap zombies automatically
(according to POSIX.1-2001).

NOTE: this patch follows dwm's commit 712d663. according to the manpage,
none of the sa_flags being set are meaningful since we're using SIG_IGN.
they used to be meaningful on earlier version of the patch where it was
using SIG_DFL, i've kept them here just in case.
dabf6a25 — mikau 6 years ago
Fixed crash when window height was less or equal to bar height

When resizing, the embedded client is being resized to (height = wh - bh),
which is (<= 0) if (wh <= bh). This generates a BadValue Error leading to a
crash.  This patch fixes that by hiding the tab bar if the window height is too
small, and also sets a min_height WM hint to prevent that situation from
happening in the first place.
6dc3978e — Caleb Malchik 9 years ago
Fix movetab and focusurgent when there's no client

Accessing those would crash with a floating point exception.
00c41432 — Christoph Lohmann 9 years ago
One killclient() is enough.
95b46cd3 — Justin Keogh 10 years ago
add -k to close tabbed foreground client on WMDelete

Hello, this is useful when you want to use the same key binding that closes windows to close tabs. I got tired of loosing my tabbed/surf session when I hit my WM's close key. "Last tab" behavior still respects -c/-f.

Cheers
-J

From 829e95855f0fe78a368788a5e72231bd6456a8cf Mon Sep 17 00:00:00 2001
From: jakeogh <github.com@v6y.net>
Date: Mon, 21 Mar 2016 01:36:28 +0000
Subject: [PATCH] add -k to close foreground tabbed client on WM_DELETE_WINDOW

Signed-off-by: Christoph Lohmann <20h@r-36.net>
3c79bcb4 — Lucas Gabriel Vuotto 10 years ago
Added xft support

Based on xft tabbed patch from the wiki.

Signed-off-by: Lucas Gabriel Vuotto <l.vuotto92@gmail.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
8920c1ba — Quentin Rameau 10 years ago
Add configuration option for title truncation string

Permit to use arbitrary string instead of "..." (ie "$") when truncating
client title.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
eb0ff621 — Quentin Rameau 10 years ago
Remove h flag, put usage() in the default case

Signed-off-by: Christoph Lohmann <20h@r-36.net>
10585524 — Quentin Rameau 10 years ago
Arrange diagnostic messages

Fix error messages to use argv0 instead of fixed “tabbed”.
Break usage message into multiple lines.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
735bed58 — Quentin Rameau 10 years ago
Style cleanup

Signed-off-by: Christoph Lohmann <20h@r-36.net>
df8261e8 — Christoph Lohmann 10 years ago
Bumping up the year.

Thanks for the bug report, FRIGN!
7f6085d4 — Christoph Lohmann 10 years ago
Bump year.
9d4b71ec — Jonas Rabenstein 11 years ago
autofocus urgent tabs

When tabbed becomes urgent because one of it tabs becomes urgent, it
may be desireable to automatically focus that tab. As a notification may
be lost, if another notification comes in before you focused tabbed, the
switch is only done, if tabbed is not urgent already.
Moreover, it may be anoying, if you just type into one tab, another tab
gets urgent -therfore focused- and you type into the other tab, you may
switch between autofocus and nofocus using Ctrl-Shift-u.
Maybe it would also be usefull, if there would be an commandline
parameter to toggle that option, but as -u is already used for
urgent-tab-color, i did not implement that.

Signed-off-by: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
5d0c5be1 — Jonas Rabenstein 11 years ago
focus urgent tabs

With a lot of open tabs its quite annoying to toggle through all tabs
until reaching the next one with an urgent hint set. Also with using
Ctrl-[0..9] to get to the first 10 tabs, in some cases this may have
disadvantages:
1. with more than 10 tabs, you can not use that quickselection
2. with a small tabbed window, you do not see every tab in the
   statusbar and therefore do not know which tab got urgent

Therefore I created a function, which iterates over all currently
managed tabs, focus the first urgent tab found or stays at the current
tab, if there is no urgent-tab. By default, that function is mapped to
Ctrl-u.

Signed-off-by: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
0728caee — Markus Teich 11 years ago
fix bug in unmanage: check if lastsel is initialized

Signed-off-by: Christoph Lohmann <20h@r-36.net>
74115f68 — Markus Teich 11 years ago
revise drawbar and related mechanisms.

This also fixes a bug, where the last tab was hidden and no "after" text was
displayed.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Next