2

Я пытаюсь заставить WMII разделить по горизонтали на 80 столбцов для xterm, но я только вижу способ сделать это через процент. Было бы неплохо иметь возможность установить его в процентах для разных разрешений, но если мне придется иметь дело с этим, я сделаю это.

Проблема в том, что даже проценты не работают в моем разрешении (1366x768). 47+47 in /colrules дает 79 символов, а 48+48 - 81 символ. Насколько я могу судить, десятичная система не разрешена, поэтому я могу, например, 47,5.

Я пришел с Ion3 и привык использовать 80 терминалов столбцов, с возможностью изменения размера клавиатуры, чтобы получить разумную точку отсечения для VIM при кодировании. Я бы просто согласился с использованием мыши, но WMII кажется гораздо более плавным, чем Ion3, поэтому мне пришлось бы сделать это МНОГО, что звучит раздражающе.

Есть идеи?

РЕДАКТИРОВАТЬ: (подробнее)

grml@dalek:~$ wmiir xwrite /view/ctl next
wmiir: fatal: Can't open file '/view/ctl': file not found
grml@dalek:~$ wmiir ls /
client/
colrules
ctl
event
keys
lbar/
rbar/
tag/
tagrules
grml@dalek:~$ wmiir xwrite /tag/sel/ctl grow sel sel right +2
wmiir: fatal: cannot write file '/tag/sel/ctl': bad command

Есть идеи, что происходит?

3 ответа3

1

Использование сверток и процентов, как вы сказали, никуда вас не приведет.

Если вы вынуждены изменить размер вручную, тогда вместо использования мыши вы можете добавить следующее в ваш скрипт wmiirc , чтобы контролировать ширину клиента с помощью сочетаний клавиш:

Key $MODKEY-Control-h
    wmiir xwrite /tag/sel/ctl grow sel sel left +2
Key $MODKEY-Control-j
    wmiir xwrite /tag/sel/ctl grow sel sel left -2
Key $MODKEY-Control-k
    wmiir xwrite /tag/sel/ctl grow sel sel right -2
Key $MODKEY-Control-l
    wmiir xwrite /tag/sel/ctl grow sel sel right +2

Дополнительную информацию смотрите в разделе Configuration справочной страницы wmii.

Поскольку вы не можете указать фиксированную ширину с помощью команды увеличения, то, предположив, что вы знаете, сколько пикселей вы хотите, чтобы ваш столбец, скажем, width=600 , вы можете сделать что-то вроде:

  1. прочитайте ширину первого столбца:

    cur_width=$(wmiir cat /tag/sel/index | grep '^# 1' | awk '{print $4}')
    
  2. увеличить или уменьшить выбранного клиента на необходимую сумму:

    wmiir xwrite /tag/sel/ctl grow sel sel right $(($width - $cur_width))px
    

Но вам придется немного поработать, чтобы сделать его гибким для разных разрешений, разных столбцов и т.д.

0
Key $MODKEY-u # make left side 80 columns wide
    cur=$(wmiir cat /tag/sel/index | grep -E "^# 1 " | cut -d ' ' -f4)
    if [ "$cur" -lt "646" ]; then
        wmiir xwrite /tag/sel/ctl grow sel sel right $((646-$cur))px
    elif [ "$cur" -gt "646" ]; then
        wmiir xwrite /tag/sel/ctl grow sel sel right -$(($cur-646))px
    #else # do nothing
    fi
Key $MODKEY-i # make right side 80 columns wide
    cur=$(wmiir cat /tag/sel/index | grep -E "^# 1 " | cut -d ' ' -f4)
    width=$(
        xrandr | grep "*" | sed -r "s/[ ]+/ /g" |
            cut -d ' ' -f2 | cut -d 'x' -f1
    )
    if [ "$cur" -lt "$(($width-646))" ]; then
        wmiir xwrite /tag/sel/ctl grow sel sel left $(($cur-$width+646))px
        echo $width > /tmp/width
        echo $cur > /tmp/cur
    elif [ "$cur" -gt "$(($width-646))" ]; then
        wmiir xwrite /tag/sel/ctl grow sel sel left -$(($width-646-$cur))px
    #else # do nothing
    fi

Это мои две комбинации клавиш после обновления до WMII 3.9 из упомянутого репозитория mrucci.

0

Я решил переключить рабочее пространство с помощью следующих сочетаний клавиш. Теперь осталось только выяснить, как заставить ширину работать.

Key $MODKEY-comma
    wmiir xwrite /ctl view $(echo $(wmiir read /ctl | grep -E "^view" | cut -d ' ' -f2)-1 | bc | sed -r "s/^0$/1/g")
Key $MODKEY-period
    wmiir xwrite /ctl view $(echo $(wmiir read /ctl | grep -E "^view" | cut -d ' ' -f2)+1 | bc)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .