LINUX.ORG.RU

CWM — ещё одна жемчужина из мира OpenBSD

 , , ,


0

2

Собственно сабж, Calm Window Manager — стековый оконный менеджер ориентированный на управление с клавиатуры, начинался как серия патчей к evilwm, впоследствии полностью переписанный.

Отличительные особенности:

  1. Отсутствие декораций (помимо рамок).
  2. Чрезвычайно простой формат конфига и лаконичная документация: cwm(1), cwmrc(5).
  3. Вместо традиционных рабочих столов используется так называемая система групп, с более гибким подходом, позволяющая отображать несколько групп одновременно.
  4. Расширенная реальзация Alt-Tab: переключение по открытым окнам, по окнам группы, по классу приложения (WM_CLASS).
  5. Поиск по запущенным приложениям, а также возможность задавать метки окнам для более точного поиска. Поиск работает по мере ввода.
  6. Включает несколько меню: запуск приложений из PATH (аналогинчно dmenu), настраиваемое пользвательское меню, запуск сеанса ssh, переключение на другой wm.
  7. Фокус следует за указателем мыши, но окно не поднимает.
  8. Возможность манипулирования указателем мыши с помощью клавиатуры (необходим xdotool для эмуляции кнопок).

Пользуюсь данным вм вот уже лет 6, практически с самого переезда на линукс, зело доволен. Нравится одна особенность — ресайзит любое окно будь то видео или игра, если приложение не поддерживает такой финт, cwm просто добавляет чёрные полосы, таким образом можно какой-нибудь видосик максимизировать по вертикали и обоев не будет видно (второй скрин). Labwc например, который я не так давно пробовал так не может, не может stumpwm и похоже даже fvwm (в fvwm не стал углубляться, неоправданно сложный вм).
Минусы тоже будут: фиксированное количество групп, нет встроенной панели, а также – из-за отсутствия декораций – невозможность управлять мышкой одной рукой (разве что скриптами обмазаться).

  • Theme: GTK — Adwaita и adw-gtk3 (порт libadwaita). Софта на Qt как такового у меня нет, помимо телеги и avidemux, для них хватает переменной QT_QPA_PLATFORMTHEME=gtk3. Иконки — Papirus. Курсоры — X11-Default-Black (слегка изменённый иксовый left_ptr: указатель выбора перекрашен в чёрный, добавлены анимированный курсор загрузки и лупа)
  • ШГ: Adobe Source и Pragmata
Xft.autohint: 0
Xft.lcdfilter: lcdlight
Xft.hintstyle: hintnone
Xft.hinting: 0
Xft.antialias: 1
Xft.rgba: rgb
  • Terminal: xterm + tmux
  • FM: pcmanfm + lf
  • Editor: vis

В качестве обоев использую скрипт, который качает картинку со страницы поисковика bing, резервная обоина тут:

#!/bin/sh
# fetch the day's wallpaper from bing

dir="/tmp/wallpaper"
name=$(cat /dev/urandom | tr -cd 'a-f0-9' | head -c 8)
cmd="xwallpaper --zoom"

[ -d "$dir" ] || mkdir -p "$dir"

for i in $(seq 1 30); do
  if ping -c 1 -W 3 8.8.8.8 >/dev/null 2>&1; then
    break
  else
    sleep 5
  fi
done

url=$(curl -sS "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US" |
  jq -r '"https://bing.com" + .images[0].url')

curl -sSLo "${dir}/${name}.jpg" "${url}"

${cmd} "${dir}/${name}.jpg"

Ещё один скрипт следит за батареей:

#!/bin/sh

SND_FILE="$HOME/.guix-home/profile/share/sounds/freedesktop/stereo/dialog-warning.oga"
ICON="battery-caution"
PLAY="paplay"

BATC=/sys/class/power_supply/BAT1/capacity
BATS=/sys/class/power_supply/BAT1/status
LEVL_WARNING=35
LEVL_SUSPEND=30

while :; do
  # Open a lock file descriptor to prevent simultaneous runs
  exec 200>"${XDG_RUNTIME_DIR}/battery_check.lock"
  flock -n 200 || exit 1

  CURC=$(sed 's/%//' "$BATC")
  CURS=$(cat "$BATS")

  if [ "$CURS" != "Charging" ]; then
    if [ "$CURC" -le "$LEVL_SUSPEND" ]; then
      loginctl suspend
    elif [ "$CURC" -le "$LEVL_WARNING" ]; then
      if pgrep -x "X"; then
        $PLAY "$SND_FILE" &
        notify-send -u critical -t 55000 -i "$ICON" "Battery low: ${CURC}%"
      else
        echo "Battery low: ${CURC}%"
      fi
    fi
  fi

  sleep 120
done

Дополнительно: dunst — уведомления, unclutter — скрывает указатель мыши, prewindowlayoutd — запоминает раскладку окон, autocutsel — синхронизирует буферы обмена, greenclip+dmenu — история буфера обмена, композитор — xcompmgr -cC -fF -r0 -D3
а также скрипт для переключения фокуса на приложение, либо его запуск в случае отсутствия:

#!/bin/sh
# set focus on application or run if it does not exist

program=$1
if ! wmctrl -x -a $program
then
  $program &
fi

Делайте как яПросто делайте, и все будет хорошо! 😎



Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 4)

gtk.css

.csd .titlebar {
  border-radius: 0;
}

.window-frame {
  border-radius: 0;
}

* {
  border-radius: 0px;
}

.titlebar, .titlebar .background, * {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.background.csd, .background.maximized, .background.solid-csd {
  border-radius: 0;
}

window {
  border: none;
  box-shadow: none;
  margin-top: -2px;
  margin-bottom: -2px;
  margin-left: -2px;
  margin-right: -2px;
}

popover contents {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  box-shadow: none;
  margin-top: -6px;
  margin-bottom: -6px;
  margin-left: -2px;
  margin-right: -2px;
}
popover arrow {
  background: transparent;
  border-color: transparent;
}
err
() автор топика

CWM…

Смотрел на него, оставил за избыточностью.

Уже >20 лет хватает косметически патченного evilwm 0.99.

x22 ★★★
()
Ответ на: комментарий от Slack

Линь, если точнее, guix (если только ТС не портировал shepherd на openbsd или не установил его на другой дистр).

mister_me ★★
()

Новость на ЛОРе о Pipewire 1.6.0

Мама, я в телевизоре!

guix-config

shepherd

За GuixSD и двор стреляю в упор! Блин, надо было в теги добавить guix, а то скриншотов с этим тегом очень мало (1).

City.Island.avi в торренте

Какой-то запущенный фильм

На втором скриншоте случаем не City.Island.avi? Да, это он, я сравнил актёрский состав на википедии.

Battery low: 35%

35% - это называется «low»?

bing

Язабан

mister_me ★★
()
Ответ на: комментарий от mister_me

Блин, надо было в теги добавить guix, а то скриншотов с этим тегом очень мало (1).

ну я про cwm хотел рассказать, думаю про guix отдельно сочинять надо)

На втором скриншоте случаем не City.Island.avi?

хороший фильм, мне понравился. в русском прокате «Сити-Айленд»

35% - это называется «low»?

у меня батарея похоже умирает. летом менял на какое-то барахло с авито, так вот, примерно месяца через четыре заметил что ноут вырубается на около 20% заряда. после включения показывает 6-7%.
пытался калибровать батарею — powertop не помог, tlp завершался ошибкой как-раз на 18-19%. пробовал разряжать в биосе, сбрасывать контроллер батареи. ничего не помогло. сейчас уже примерно на 28% вырубается :(

err
() автор топика
Последнее исправление: err (всего исправлений: 1)
Ответ на: комментарий от mister_me

скриншотов с этим тегом очень мало (целых 2)

dataman ★★★★★
()
Ответ на: комментарий от mittorn

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

err
() автор топика
Ответ на: комментарий от err

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

firkax ★★★★★
()
Ответ на: комментарий от err

ничёси ты некромант, там эта, 1.5 зарелизили в аккурат перед новым годом)

Работают люди.

x22 ★★★
()

В FVWM для «так» можно сделать Style * ResizeHintsOverride .

Насчет неоправданно сложного - у меня конфиг в общем имитирует мой же конфиг CWM, когда он мне нравился. Могу его ужать и аффтар удивится, насколько мало осталось.

И вообще это xmonad или awesomewm неоправданно сложные, с fvwm после чтения мана от корки до корки с копипастом понравившегося по очереди в конфиг не остается вопросов, и я это сделал один раз до большей части знаний о нем. Дальше только еще узнал про посылку сообщений и Schedule.

lealxe
()
Ответ на: комментарий от lealxe

с fvwm после чтения мана от корки до корки с копипастом понравившегося по очереди в конфиг не остается вопросов

ну ман там конечно моё почтение — он непрелично большой. накидать аналог cwm и правда не составит труда, а вот разбираться со всякими стилями, панельками, скриптами не каждый захочет. мне было лень вникать)

ЗЫЖ покажешь конфиг?

err
() автор топика

Почему эти сгрупированные окна выглядят так ужасно и перекрывают друг-друга? Это ТС лишен чувства прекрасного или есть некоторые особенности у группировки? Условно почему не сделать группу из 4-х или 6ти окон равных по размеру. Или допустим браузер на половину экрана и два окна справа равных по размеру разделенных по середине от оставшийся половины.

anonymous_sama ★★★★★
()
Последнее исправление: anonymous_sama (всего исправлений: 3)

Вместо традиционных рабочих столов используется так называемая система групп

Всю жизнь считал, что оно называется «теги рабочего стола». Век живи - век учись...

piyavking ★★★★★
()
Ответ на: комментарий от anonymous_sama

Скрин постановочный разумеется, просто показал как выглядит GTK 2/3/4. Используется ровно так как ты описал, разделяю экран на условные 60/40%, с одной стороны одна группа приложений, с другой другая, тут-то как раз и вступает в игру «Alt-Tab по группе», а на соседнюю группу обычно просто смахиваю тачем курсор. Alt-Tab здесь сделан как положено, при задержке переключается на предидущее окно, а не по кругу щелкает, удобно.

err
() автор топика
Последнее исправление: err (всего исправлений: 1)
Ответ на: комментарий от piyavking

не видел теги, знаю что это из dwm, может это одно и тоже, а может нет. в любом случае, есди это так, cwm вышел в 2004, а dwm на два года позже, так что группы появились раньше)

err
() автор топика
Последнее исправление: err (всего исправлений: 3)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.