You are not logged in.

#1 2009-06-02 12:24:46

Lexion
Member
Registered: 2008-03-23
Posts: 510

Wmii 3.6 is slow [SOLVED]

If I were to spawn a urxvtc, it would open the window, wait a bit, draw the bg, wait a bit, and then finnish drawing the window.  By a bit I mean about 0.5 seconds.  When I had it installed about 1-2 months ago, I was nice and fast.
But it's not just with urxvtcs.  It's with swiftfox, xterm, and plain urxvt.

Here is my wmiirc (I don't use plan9):

#!/bin/sh -f
# Configure wmii

# Configuration Variables
MODKEY=Mod4
UP=k
DOWN=j
LEFT=h
RIGHT=l

# Colors tuples: "<text> <background> <border>"
WMII_NORMCOLORS='#888888 #222222 #333333'
WMII_FOCUSCOLORS='#ffffff #285577 #4c7899'

WMII_BACKGROUND='#333333'
WMII_FONT='-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*'

set -- $(echo $WMII_NORMCOLORS $WMII_FOCUSCOLORS)
WMII_MENU="dmenu -b -fn '$WMII_FONT' -nf '$1' -nb '$2' -sf '$4' -sb '$5'"
WMII_9MENU="wmii9menu -font '$WMII_FONT' -nf '$1' -nb '$2' -sf '$4' -sb '$5' -br '$6'"
WMII_TERM="urxvtc"

# Column Rules
wmiir write /colrules <<!
/.*/ -> 58+42
!

# Tagging Rules
wmiir write /tagrules <<!
/XMMS.*/ -> ~
/MPlayer.*/ -> ~
/.*/ -> sel
/.*/ -> 1
!

# Status Bar Info
status() {
    echo -n "wmii 3.6"#$(conky)
}

# Event processing
#  Processed later by `wmiiloop' and evaled.
#  Duplicate the eval line and replace 'eval' with 'echo' for details.
eventstuff() {
    cat <<'!'
    # Events
    Event Start
        case "$1" in
        wmiirc)
            exit;
        esac
    Event Key
        fn=$(echo "$@" | sed 's/[^a-zA-Z_0-9]/_/g')
        Key_$fn "$@"
    Event CreateTag
        echo "$WMII_NORMCOLORS" "$@" | wmiir create "/lbar/$@"
    Event DestroyTag
        wmiir remove "/lbar/$@"
    Event FocusTag
        wmiir xwrite "/lbar/$@" "$WMII_FOCUSCOLORS" "$@"
    Event UnfocusTag
        wmiir xwrite "/lbar/$@" "$WMII_NORMCOLORS" "$@"
    Event UrgentTag
        shift
        wmiir xwrite "/lbar/$@" "*$@"
    Event NotUrgentTag
        shift
        wmiir xwrite "/lbar/$@" "$@"
    Event LeftBarClick
        shift
        wmiir xwrite /ctl view "$@"
    # Actions
    Action quit
        wmiir xwrite /ctl quit
    Action exec
        wmiir xwrite /ctl exec "$@"
    Action rehash
        proglist $PATH >$progsfile
    Action status
        set +xv
        if wmiir remove /rbar/status 2>/dev/null; then
            sleep 2
        fi
        echo "$WMII_NORMCOLORS" | wmiir create /rbar/status
        while status | wmiir write /rbar/status; do
            sleep 1
        done
    Event ClientMouseDown
        client=$1; button=$2
        case "$button" in
        3)
            do=$(eval $WMII_9MENU -initial "${menulast:-SomeRandomName}" Nop Delete Fullscreen)
            case "$do" in
            Delete)
                wmiir xwrite /client/$client/ctl kill;;
            Fullscreen)
                wmiir xwrite /client/$client/ctl Fullscreen on;;
            esac
            menulast=${do:-"$menulast"}
        esac
    # Key Bindings
    Key $MODKEY-Control-t
        case $(wmiir read /keys | wc -l | tr -d ' \t\n') in
        0|1)
            echo -n $Keys | tr ' ' '\012' | wmiir write /keys
            wmiir xwrite /ctl grabmod $MODKEY;;
        *)
            wmiir xwrite /keys $MODKEY-Control-t
            wmiir xwrite /ctl grabmod Mod3;;
        esac
    Key $MODKEY-space
        wmiir xwrite /tag/sel/ctl select toggle
    Key $MODKEY-d
        wmiir xwrite /tag/sel/ctl colmode sel default
    Key $MODKEY-s
        wmiir xwrite /tag/sel/ctl colmode sel stack
    Key $MODKEY-m
        wmiir xwrite /tag/sel/ctl colmode sel max
    Key $MODKEY-a
        Action $(actionlist | eval $WMII_MENU) &
    Key $MODKEY-p
        sh -c "$(eval $WMII_MENU <$progsfile)" &
    Key $MODKEY-t
        wmiir xwrite /ctl "view $(tagsmenu)" &
    Key $MODKEY-Return
        eval $WMII_TERM &
    Key $MODKEY-Shift-space
        wmiir xwrite /tag/sel/ctl send sel toggle
    Key $MODKEY-f
        wmiir xwrite /client/sel/ctl Fullscreen toggle
    Key $MODKEY-Shift-c
        wmiir xwrite /client/sel/ctl kill
    Key $MODKEY-Shift-t
        wmiir xwrite "/client/$(wmiir read /client/sel/ctl)/tags" "$(tagsmenu)" &
    Key $MODKEY-$LEFT
        wmiir xwrite /tag/sel/ctl select left
    Key $MODKEY-$RIGHT
        wmiir xwrite /tag/sel/ctl select right
    Key $MODKEY-$DOWN
        wmiir xwrite /tag/sel/ctl select down
    Key $MODKEY-$UP
        wmiir xwrite /tag/sel/ctl select up
    Key $MODKEY-Shift-$LEFT
        wmiir xwrite /tag/sel/ctl send sel left
    Key $MODKEY-Shift-$RIGHT
        wmiir xwrite /tag/sel/ctl send sel right
    Key $MODKEY-Shift-$DOWN
        wmiir xwrite /tag/sel/ctl send sel down
    Key $MODKEY-Shift-$UP
        wmiir xwrite /tag/sel/ctl send sel up
!
    for i in 0 1 2 3 4 5 6 7 8 9; do
        cat <<!
    Key $MODKEY-$i
        wmiir xwrite /ctl view "$i"
    Key $MODKEY-Shift-$i
        wmiir xwrite /client/sel/tags "$i"
!
    done
}

# WM Configuration
wmiir write /ctl << EOF
font $WMII_FONT
focuscolors $WMII_FOCUSCOLORS
normcolors $WMII_NORMCOLORS
grabmod $MODKEY
border 1
EOF

export WMII_MENU WMII_9MENU WMII_FONT WMII_TERM
export WMII_FOCUSCOLORS WMII_SELCOLORS WMII_NORMCOLORS

# Feed events to `wmiiloop' for processing
eval "$(eventstuff | sed 's/^[    ]//' | { . wmiiloop; })"

echo "$Keys" | tr ' ' '\n' | wmiir write /keys

# Functions
Action() {
    action=$1; shift
    if [ -n "$action" ]; then
        Action_$action "$@" \
        || conf_which $action "$@"
    fi
}

proglist() {
    paths=$(echo "$@" | sed 'y/:/ /')
    ls -lL $paths 2>/dev/null \
        | awk '$1 ~ /^[^d].*x/ && NF > 2 { print $NF }' \
        | sort | uniq
}

# Misc
progsfile="$WMII_NS_DIR/.proglist"
Action status &
proglist $PATH >$progsfile &

xsetroot -solid "$WMII_BACKGROUND" &

# Setup Tag Bar
seltag="$(wmiir read /tag/sel/ctl 2>/dev/null)"
wmiir ls /lbar |
while read bar; do
    wmiir remove "/lbar/$bar"
done
wmiir ls /tag | sed -e 's|/||; /^sel$/d' |
while read tag; do
    if [ "X$tag" = "X$seltag" ]; then
        echo "$WMII_FOCUSCOLORS" "$tag" | wmiir create "/lbar/$tag" 
    else
        echo "$WMII_NORMCOLORS" "$tag" | wmiir create "/lbar/$tag"
    fi
done

# More functions
tagsmenu() {
        wmiir ls /tag | sed 's|/||; /^sel$/d' | eval $WMII_MENU
}

actionlist() {
    {    proglist $WMII_CONFPATH
        echo -n $Actions | tr ' ' '\012'
    } | sort | uniq
}

conf_which() {
    which=$(which which)
    prog=$(PATH="$WMII_CONFPATH" $which $1); shift
    [ -n "$prog" ] && $prog "$@"
}

# Stop any running instances of wmiirc
echo Start wmiirc | wmiir write /event || exit 1

wmiir read /event |
while read event; do
    set -- $event
    event=$1; shift
    Event_$event $@
done 2>/dev/null

and here is my .xinitrc:

#!/bin/sh

#xcompmgr &
urxvtd &
feh --bg-scale /home/oliver/.bg/grayFuzz.jpg

#xmonad # he's lonely, so I made him a friend...
  #.#

#/home/oliver/.dzen2rc &
#xsetroot -cursor_name left_ptr
#exec evilwm -fg "#6d78ff" -bg "#575757" -bw 1 -term urxvtc -mask1 mod4 -mask2 mod4 -altmask mod4 -fn -*-fixed-medium-r-*-*-13-*-*-*-*-*-*

exec wmii

Last edited by Lexion (2009-06-28 12:39:09)


urxvtc / wmii / zsh / configs / onebluecat.net
Arch will not hold your hand

Offline

#2 2009-06-02 15:22:33

Aktau
Member
From: Antwerp, Belgium / BCN, Spain
Registered: 2009-04-04
Posts: 19
Website

Re: Wmii 3.6 is slow [SOLVED]

I know next to nothing about anything when speaking about linux. But have you tried re-enabling your xcompmgr? It kinda worked for me (my urxvt also had insanely slow redrawing issues, Awesome WM). If that fails, do you have one of the intel integrated 3D cards? Then I would advise that you go read up on the multitude of topics on the tribulations that are going on with those cards these days. For example, disabling tiling could up your performance by a factor of 4 in glxgears, and by many many more factors in applications that would actually function like a benchmark wink.

Hope it works out for you!

Offline

#3 2009-06-02 15:56:16

Lexion
Member
Registered: 2008-03-23
Posts: 510

Re: Wmii 3.6 is slow [SOLVED]

Your next to nothing about linux is more than my next to nothing about linux.  I'll get back soon about that.


urxvtc / wmii / zsh / configs / onebluecat.net
Arch will not hold your hand

Offline

#4 2009-06-02 16:06:11

rusty99
Member
Registered: 2009-03-18
Posts: 253

Re: Wmii 3.6 is slow [SOLVED]

Do you get any meaningful errors if you add the below to your exec wmii line in .xinitrc,

exec wmii &> errors

Which version are you using, wmii from extra or wmii-hg from aur?

Offline

#5 2009-06-03 00:30:09

Lexion
Member
Registered: 2008-03-23
Posts: 510

Re: Wmii 3.6 is slow [SOLVED]

rusty99: no, and I'm using wmii from extra.

Aktua: I tried renabling xcompmgr to no avail.  It's not a graphics card problem, it's a wmii problem.

Both of you, thanks for your time.


urxvtc / wmii / zsh / configs / onebluecat.net
Arch will not hold your hand

Offline

#6 2009-06-28 12:38:50

Lexion
Member
Registered: 2008-03-23
Posts: 510

Re: Wmii 3.6 is slow [SOLVED]

By changing my graphics acceleration method from EXA to XAA
and setting "MigrationHeuristic" to "greedy" in my xorg.conf:

# the graphics card section:
Section Device
      Identifier "Card0"
      Driver "intel"
      BoardName   "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
      BusID       "PCI:0:2:0"
      Option        "AccelMethod" "XAA"
      Option        "Tiling" "false"
      Option        "MigrationHeuristic" "greedy"
EndSection

It is now almost instantaneous.


urxvtc / wmii / zsh / configs / onebluecat.net
Arch will not hold your hand

Offline

Board footer

Powered by FluxBB