Package: wmii Version: 3.10~20120413+hg2813-3 Severity: important Tags: patch
Dear Maintainer, On my box, wmii is configured so that the Mod4-a key combination is supposed to make the action menu appear. I guess most users also use this key combination for the action menu. Since a few weeks (since the last wmii upgrade ?), the Mod4-a key combination does not make the action menu appear any more. This is annoying because without the action menu, the user is left without any easy way to perform some actions like exiting wmii. Other key combinations (Mod4-p, Mod4-h,j,k,l, etc...) still work as expected. Do other users experience the same issue? I could find several workarounds to the issue: 1) Issuing one of the following commands in a terminal causes the Mod4-a key to work back as expected. wmiir ls /keys wmiir read /keys 2) Changing the wmii configuration so that a key combination other than Mod4-a (Mod4-x for example) is bound to the action menu. 3) Patching wmiir so that it automatically stats /keys. -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.9-1-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages wmii depends on: ii libc6 2.17-5 ii libx11-6 2:1.6.0-1 ii libxext6 2:1.3.1-2+deb7u1 ii libxinerama1 2:1.1.2-1+deb7u1 ii libxrandr2 2:1.3.2-2+deb7u1 ii libxrender1 1:0.9.7-1+deb7u1 ii suckless-tools 38-2 Versions of packages wmii recommends: ii wmii-doc 1:1-14 Versions of packages wmii suggests: ii python 2.7.5-2 ii ruby1.8 [ruby] 1.8.7.358-7 -- Configuration Files: /etc/X11/wmii/wmiirc changed: wmiiscript=wmiirc # For wmii.sh .. wmii.sh MODKEY=Mod4 UP=k DOWN=j LEFT=h RIGHT=l noticetimeout=5 noticebar=/rbar/!notice export WMII_NORMCOLORS='#000000 #c1c48b #81654f' export WMII_FOCUSCOLORS='#000000 #81654f #000000' export WMII_BACKGROUND='#333333' export WMII_FONT='-*-fixed-medium-r-*-*-*-120-75-75-c-60-iso10646-*' set -- $(echo $WMII_NORMCOLORS $WMII_FOCUSCOLORS) export WMII_TERM="xterm" if ! test -d "${WMII_CONFPATH%%:*}"; then mkdir "${WMII_CONFPATH%%:*}" res=$(wihack -type DIALOG xmessage -nearmouse -buttons Windows,Alt -print -fn $WMII_FONT \ "Welcome to wmii,$wi_newline$wi_newline" \ "Most of wmii's default key bindings make use of the$wi_newline" \ "Windows key, or equivalent. For keyboards lacking such$wi_newline" \ "a key, many users change this to the Alt key.$wi_newline$wi_newline" \ "Which would you prefer?") [ "$res" = "Alt" ] && MODKEY=Mod1 echo "MODKEY=$MODKEY" >"${WMII_CONFPATH%%:*}/wmiirc_local" chmod +x "${WMII_CONFPATH%%:*}/wmiirc_local" fi hist="${WMII_CONFPATH%%:*}/history" histnum=5000 wmiir write /colrules <<! /gimp/ -> ~ /.*/ -> 62+38 # Golden Ratio ! wmiir write /rules <<! # Apps with system tray icons like to their main windows # Give them permission. /^Pidgin:/ allow=+activate # MPlayer and VLC don't float by default, but should. /MPlayer|VLC/ floating=on # ROX puts all of its windows in the same group, so they open # with the same tags. Disable grouping for ROX Filer. /^ROX-Filer:/ group=0 ! status() { echo -n label $(uptime | sed 's/.*://; s/, / /g') '|' $(date) } startup() { witray & } wi_runconf -s wmiirc_local startup echo colors $WMII_NORMCOLORS | wmiir create $noticebar wi_events <<'!' Event CreateTag echo colors "$WMII_NORMCOLORS$wi_newline" label "$@" | wmiir create "/lbar/$@" Event DestroyTag wmiir remove "/lbar/$@" Event FocusTag wmiir xwrite "/lbar/$@" colors "$WMII_FOCUSCOLORS" Event UnfocusTag wmiir xwrite "/lbar/$@" colors "$WMII_NORMCOLORS" Event UrgentTag shift wmiir xwrite "/lbar/$@" label "*$@" Event NotUrgentTag shift wmiir xwrite "/lbar/$@" label "$@" Event LeftBarClick LeftBarDND shift wmiir xwrite /ctl view "$@" Event Unresponsive { client=$1; shift msg="The following client is not responding. What would you like to do?$wi_newline" resp=$(wihack -transient $client \ xmessage -nearmouse -buttons Kill,Wait -print \ -fn "${WMII_FONT%%,*}" "$msg $(wmiir read /client/sel/label)") if [ "$resp" = Kill ]; then wmiir xwrite /client/$client/ctl slay & fi }& Event Notice wmiir xwrite $noticebar $wi_arg kill $xpid 2>/dev/null # Let's hope this isn't reused... { sleep $noticetimeout; wmiir xwrite $noticebar ' '; }& xpid = $! Menu Client-3-Delete wmiir xwrite /client/$1/ctl kill Menu Client-3-Kill wmiir xwrite /client/$1/ctl slay Menu Client-3-Fullscreen wmiir xwrite /client/$1/ctl Fullscreen on Event ClientMouseDown wi_fnmenu Client $2 $1 & Menu LBar-3-Delete tag=$1; clients=$(wmiir read "/tag/$tag/index" | awk '/[^#]/{print $2}') for c in $clients; do if [ "$tag" = "$(wmiir read /client/$c/tags)" ] then wmiir xwrite /client/$c/ctl kill else wmiir xwrite /client/$c/ctl tags -$tag fi [ "$tag" = "$(wi_seltag)" ] && wmiir xwrite /ctl view $(wi_tags | wi_nexttag) done Event LeftBarMouseDown wi_fnmenu LBar "$@" & Action showkeys echo "$KeysHelp" | xmessage -file - -fn ${WMII_FONT%%,*} Action lock xtrlock Action quit wmiir xwrite /ctl quit Action rehash wi_proglist $PATH >$progsfile Action status set +xv if wmiir remove /rbar/status 2>/dev/null; then sleep 2 fi echo colors "$WMII_NORMCOLORS" | wmiir create /rbar/status while status | wmiir write /rbar/status; do sleep 1 done Action shutdown sudo /sbin/shutdown -h now KeyGroup Moving around Key $MODKEY-$LEFT # Select the client to the left wmiir xwrite /tag/sel/ctl select left Key $MODKEY-$RIGHT # Select the client to the right wmiir xwrite /tag/sel/ctl select right Key $MODKEY-$UP # Select the client above wmiir xwrite /tag/sel/ctl select up Key $MODKEY-$DOWN # Select the client below wmiir xwrite /tag/sel/ctl select down Key $MODKEY-space # Toggle between floating and managed layers wmiir xwrite /tag/sel/ctl select toggle KeyGroup Moving through stacks Key $MODKEY-Control-$UP # Select the stack above wmiir xwrite /tag/sel/ctl select up stack Key $MODKEY-Control-$DOWN # Select the stack below wmiir xwrite /tag/sel/ctl select down stack KeyGroup Moving clients around Key $MODKEY-Shift-$LEFT # Move selected client to the left wmiir xwrite /tag/sel/ctl send sel left Key $MODKEY-Shift-$RIGHT # Move selected client to the right wmiir xwrite /tag/sel/ctl send sel right Key $MODKEY-Shift-$UP # Move selected client up wmiir xwrite /tag/sel/ctl send sel up Key $MODKEY-Shift-$DOWN # Move selected client down wmiir xwrite /tag/sel/ctl send sel down Key $MODKEY-Shift-space # Toggle selected client between floating and managed layers wmiir xwrite /tag/sel/ctl send sel toggle KeyGroup Client actions Key $MODKEY-f # Toggle selected client's fullsceen state wmiir xwrite /client/sel/ctl Fullscreen toggle Key $MODKEY-Shift-c # Close client wmiir xwrite /client/sel/ctl kill KeyGroup Changing column modes Key $MODKEY-d # Set column to default mode wmiir xwrite /tag/sel/ctl colmode sel default-max Key $MODKEY-s # Set column to stack mode wmiir xwrite /tag/sel/ctl colmode sel stack-max Key $MODKEY-m # Set column to max mode wmiir xwrite /tag/sel/ctl colmode sel stack+max KeyGroup Running programs Key $MODKEY-a # Open wmii actions menu action $(wi_actions | wimenu -h "${hist}.actions" -n $histnum) & Key $MODKEY-p # Open program menu eval wmiir setsid "$(wimenu -h "${hist}.progs" -n $histnum <$progsfile)" & Key $MODKEY-Return # Launch a terminal eval wmiir setsid $WMII_TERM & KeyGroup Other Key $MODKEY-Control-t # Toggle all other key bindings case $(wmiir read /keys | wc -l | tr -d ' \t\n') in 0|1) echo -n "$Keys" | wmiir write /keys wmiir xwrite /ctl grabmod $MODKEY;; *) wmiir xwrite /keys $MODKEY-Control-t wmiir xwrite /ctl grabmod Mod3;; esac KeyGroup Tag actions Key $MODKEY-t # Change to another tag wmiir xwrite /ctl view $(wi_tags | wimenu -h "${hist}.tags" -n 50) & Key $MODKEY-Shift-t # Retag the selected client # Assumes left-to-right order of evaluation wmiir xwrite /client/$(wi_selclient)/ctl tags $(wi_tags | wimenu -h "${hist}.tags" -n 50) & Key $MODKEY-n # Move to the next tag wmiir xwrite /ctl view $(wi_tags | wi_nexttag) Key $MODKEY-b # Move to the previous tag wmiir xwrite /ctl view $(wi_tags | sort -r | wi_nexttag) ! for i in 0 1 2 3 4 5 6 7 8 9; do wi_events <<! Key $MODKEY-$i # Move to the numbered view wmiir xwrite /ctl view "$i" Key $MODKEY-Shift-$i # Retag selected client with the numbered tag wmiir xwrite /client/sel/ctl tags "$i" ! done wi_events -e wmiir write /ctl <<! font $WMII_FONT focuscolors $WMII_FOCUSCOLORS normcolors $WMII_NORMCOLORS grabmod $MODKEY border 1 ! xsetroot -solid "$WMII_BACKGROUND" & progsfile="$(wmiir namespace)/.proglist" action status & wi_proglist $PATH >$progsfile & IFS="$wi_newline" wmiir rm $(wmiir ls -p /lbar) >/dev/null seltag=$(wmiir read /tag/sel/ctl | sed 1q) unset IFS wi_tags | while read tag do if [ "$tag" = "$seltag" ]; then echo colors "$WMII_FOCUSCOLORS" echo label $tag else echo colors "$WMII_NORMCOLORS" echo label $tag fi | wmiir create "/lbar/$tag" done wi_eventloop -- no debconf information
Index: wmii-3.10~20120413+hg2813/cmd/wmiir.c =================================================================== --- wmii-3.10~20120413+hg2813.orig/cmd/wmiir.c 2012-04-14 04:37:30.000000000 +0200 +++ wmii-3.10~20120413+hg2813/cmd/wmiir.c 2013-06-23 11:49:13.600784471 +0200 @@ -529,6 +529,7 @@ char *address; exectab *tab; int ret; + Stat *stat; IXP_ASSERT_VERSION; @@ -579,6 +580,9 @@ if(tab->cmd == 0) usage(); + stat = ixp_stat(client, "/keys"); + ixp_freestat(stat); + ret = tab->fn(argc, argv); ixp_unmount(client);