Показаны сообщения с ярлыком kde. Показать все сообщения
Показаны сообщения с ярлыком kde. Показать все сообщения

5 марта 2011 г.

KDE снова радует

Да, KDE снова демонстрирует некоторые мои задумки в уже вполне работоспособном состоянии.

На этот раз я обнаружил "Альбом заметок", как это перевели на русский, или по-просту Multi-purpose Notepad под названием Basket. Казалось бы, что такого? Свою электронную записную книжку пишет (ну или хотя бы начинает) каждый второй школьник. Да, это так. До сего момента я пробовал минималистичный проект NoteCase, который на данный момент стал коммерческим (все предыдущие версии остались в свободном доступе вместе с сорцами). Смотрел на забавное явление TiddlyWiki и даже регистрировался в Evernote (у них же так и нет версии под Linux, да?).

Basket выгодно отличается от всего этого зоопарка те, что он:
1) Интегрирован в KDE4. Отсюда симпатичное оформление, привычный стиль, а главное, возможность пользоваться всеми плюшками "столпов KDE4" - единая подсистема контактов, тэгов и наверное чего-то ещё.
2) Имеет огромное количество начтроек. Опять же в лучших(?) традициях KDE
3) Может хранить кроме простого текста картинки, ссылки на файлы, ярлыки программ, ссылки на интернет, перекрёстные ссылки в заметках (привет, TiddlyWiki!)

А вообще, лучше один раз увидеть...

21 декабря 2010 г.

KDE4 - платформа будущего

Да, вот такая странная тема. Казалось бы, для большинства вопрос отношения к KDE решён - или нравится, или нет. Но для меня это было не совсем так. До вчерашнего дня.

Постараюсь вспомнить свои ощущения от первых экспериментов с KDE 3. Это был ОГРОМНЫЙ набор программ с неинтуитивными названиями, большинство из которых содержало букву "k". Кажется, я ставил его на Debian. Кроме огромного количества приложения были ещё и очень разнородными. Ткнув в непонятное название, можно было увидеть что угодно - от экранной линейки до симулятора химических экспериментов для школьников. Поэтому такая куча поделок казалась мне довольно странной.

Что же случилось в четвёртой версии? Оттуда убрали кучу приложений? Нет. Но появлялись они постепенно. Сначала самый минимум, который и переписывать-то не надо было. Потом разные красивости: виджеты, панели, прозрачности. И только сейчас можно довольно уверенно сказать, что в KDE 4 есть всё необходимое. Естественно, в процессе портирования с тройки на четвёрку программы претерпели рестайлинг в соответствии с новыми концепциями внешнего вида и внутренней иерархии (о ней чуть ниже). А странные и ненужные мелочи оказались просто никому не нужны.

Но естественно, это ещё не всё. В KDE4 появились специально обученные "столпы", которые разделяют весь функционал, необходимый для работы прикладных программ. Не зеаю, интересна ли эта сторона неразработчикам, но об этих столпах не раз писали в различных блогах, хабрах и т. п. Итак, вот они:

Phonon - мультимедиа API.

Decibel - сервис и API для организации общения в режиме реального времени.

Akonadi - фреймворк PIM.

Nepomuk - семантический рабочий стол.

Plasma - фреймворк рабочего стола.

Oxygen - новая тема рабочего стола.

Побробнее почитать можно тут, ну или официальные документы.

Естественно, я не буду описывать их в деталях. Во-первых, не настолько разбираюсь, во-вторых, не о том речь.

Остановлюсь на двух из семи компонентов: Akonadi и Nepomuk. О них-то я как-раз и вспомнил вчера, продумывая свою интересную, но утопичную идею "клинта-для-всего". Здесь, пожалуй, изложу, как выглядит идея.

"Клиент-для-всего"

Сосотоит из трёх частей:

  1. Коммуникационная часть
    Является надстройкой над любыми программными средствами общения. Проще говоря, он сам взаимодействует со всеми гмылами, аськами, жабберами, фейсбуками, вконтактами, твиттерами, жуиками, etc. На этом этапе решается проблема дублирования информации. Пользователь не увидит репост одного и того же сообщения своего друга в твиттере, вконтакте и фейсбуке. Он увиди этот пост от лица "собирательного" контакта. Причём комментарии (если они возможны) будут подсасываться из всех мест, где было опубликовано сообщение. Ну ответы/коменты пользователя будут уходить туда, куда нужно.
  2. Объектная часть
    Объект - что угодно, что можно сохранить в памяти компьютера. От простого файла до заметки с прикреплённой гиперссылкой. Любой объект имеет тэги, по которым его можно найти. Основные типы объектов:
    а) Заметка
    Текст с форматированием a la RTF, возможностью вставки картинок, ссылок и т. п. Если добавлена дата, заметка превращается в задачу ежедневника
    б) Ссылка
    Аналог закладки в браузере. Просто сохранённая ссылка на веб-страницу. В перспективе возможно кэширование таких объектов на случай исчезновения сайтов/страничек.
    в) Файл
    Имеет привяку к файловой системе (UUID?) и (в дополнение к тэгам объекта) информацию добытую из самого файла - тэги из mp3, EXIF-данные из фоток, дата создания файла в файловой системе...
  3. Представления
    Способы отображения вышеперечисленной информации для удобной работы с ней. Это и аналог файл-менеджера(по тэгам), и глобальная схема занятий(основные тэги) и органайзер (из заметок с датами и контактами). В перспективе, сообщения из коммуникационной части тоже будут маркироваться тэгами и чаты будут просто представлением сообщений.

Всё

Вот так вот. Конечно, такой монстр требует уйму времени и сил на разработку. Но, по-моему именно так должны в будущем выглядеть операционки.

И, как оказалось, в KDE уже следуют по этому пути. Я до сих пор не посмотрел последние новшества и не знаю, насколько Nepomuk интегрирован в приложения, но даже такая реализация - уже гораздо лучше, чем ничего.

В общем, как-то я много пишу. Пора закругляться. Решил осваивать KDE и, если получится внести в него вклад. Да, этот пост я пишу из Blogilo - блог-клиента KDE.

28 декабря 2009 г.

Надпакеты

Вступление
Один из первых вопросов, которые задают люди, увидев Ubuntu - "А чем отличаются Ubuntu, Kubuntu, Xubuntu, ... ***buntu?". Как-то неудобно сразу рассказывать им про DE, WM и прочие тонкости пользовательского интерфейса, но до недавнего времени я и сам до конца не знал, какая между ними разница. Теперь знаю и с гордостью сообщаю вам: никакой!

Вступление №2
Как вы могли заметить, я ругал debian и его потомков за отсутствие нормального управления зависимостями. И ярчайшим примером здесь служил такой - "а вот как мне от новой убунты оторвать GNOME и установить KDE? Да так, чтоб не осталось гномовского мусора, а получилась kubuntu." Решение удалить пакет ubuntu-desktop и установить kubuntu-desktop не прокатывало, так как после удаления ubuntu-desktop ничего из системы не исчезало - ни гном, ни его свита.
И вот, однажды вечером, когда я находился вдали от дома, пишущего дисковода и нормального интернета, возникла необходимость проинсталлировать сервер. Ну, то есть систему без свистелок и перделок. А под рукой были только фирменные Ubuntu 9.10 и Kubuntu той же версии. Не буду описывать все мои телодвижения, а изложу полезные моменты, найденные в сети и испытанные на практике.

Выше я уже упоминал странные названия ubuntu-desktop и kubuntu-desktop. Для тех, кто не совсем понял, о чём это я, поясню. Это метапакеты. Сами они не содержат ни единого файла для установки в систему. Зато в зависимостях имеют тематические наборы обычных пакетов. Как понятно из названий, этим двум пакетам соответствуют наборы, реализующие рабочий стол для Ubuntu или Kubuntu. Для примера, помотрим, какие пакеты "тянет" за собой ubuntu-desktop:

boh@nout:~$ sudo aptitude show ubuntu-desktop
[sudo] password for boh:
Пакет: ubuntu-desktop
Состояние: не установлен
Версия: 1.175
Приоритет: необязательный
Раздел: metapackages
Сопровождающий: Matt Zimmerman
Размер в распакованном виде: 57,3k
Зависимости: alacarte, alsa-base, alsa-utils, anacron, bc, ca-certificates,
checkbox-gtk, consolekit, cups, cups-bsd, cups-client,
cups-driver-gutenprint, dc, dcraw, desktop-file-utils,
doc-base, eog, evince, file-roller, foomatic-db,
foomatic-db-engine, foomatic-filters, gcalctool,
gconf-editor, gdebi, gdm, gedit, genisoimage,
ghostscript-x, gnome-about, gnome-applets,
gnome-control-center, gnome-icon-theme, gnome-media,
gnome-menus, gnome-nettool, gnome-panel,
gnome-power-manager, gnome-session,
gnome-session-canberra, gnome-system-monitor,
gnome-system-tools, gnome-terminal,
gnome-themes-selected, gnome-themes-ubuntu, gnome-utils,
gstreamer0.10-alsa, gstreamer0.10-plugins-base-apps,
gstreamer0.10-pulseaudio, gtk2-engines,
gtk2-engines-pixbuf, gucharmap,
indicator-applet-session, inputattach,
language-selector, launchpad-integration, lftp,
libgd2-xpm, libgl1-mesa-glx, libgnome2-perl,
libpam-ck-connector, libsasl2-modules, libxp6, metacity,
nautilus, nautilus-sendto, notify-osd,
openprinting-ppds, pnm2ppa, pulseaudio,
pulseaudio-esound-compat, rarian-compat, screen,
screensaver-default-images, seahorse, smbclient,
software-center, software-properties-gtk, sreadahead,
ssh-askpass-gnome, synaptic,
system-config-printer-gnome, ttf-dejavu-core,
ttf-freefont, ubuntu-artwork, ubuntu-sounds, unzip,
update-manager, update-notifier, usplash,
usplash-theme-ubuntu, wireless-tools, wpasupplicant,
x-ttcidfont-conf, xdg-user-dirs, xdg-user-dirs-gtk,
xkb-data, xorg, xscreensaver-data, xscreensaver-gl,
xsplash, xterm, yelp, zenity, zip
Рекомендует: acpi-support, app-install-data-partner, apport-gtk, avahi-autoipd,
avahi-daemon, bluez-cups, bluez-utils, bogofilter,
brasero, brltty, brltty-x11, cdparanoia, compiz,
computer-janitor-gtk, dvd+rw-tools, empathy, espeak,
evolution, evolution-couchdb, evolution-exchange,
evolution-indicator, evolution-plugins,
evolution-webcal, example-content, f-spot, firefox,
firefox-gnome-support, foo2zjs, gcc, gdm-guest-session,
gimp, gnome-accessibility-themes, gnome-bluetooth,
gnome-codec-install, gnome-disk-utility, gnome-games,
gnome-mag, gnome-orca, gnome-screensaver,
gnome-user-guide, gvfs-fuse, hplip, ibus, ibus-gtk,
ibus-m17n, ibus-table, im-switch, indicator-messages,
jockey-gtk, kerneloops-daemon, laptop-detect,
libgl1-mesa-dri, libnss-mdns, libpam-gnome-keyring,
libwmf0.2-7-gtk, linux-headers-generic, make, min12xxw,
mousetweaks, nautilus-share, network-manager-gnome,
onboard, openoffice.org-calc, openoffice.org-gnome,
openoffice.org-help-en-us, openoffice.org-impress,
openoffice.org-math, openoffice.org-style-human,
openoffice.org-writer, pcmciautils,
pulseaudio-module-bluetooth, pulseaudio-module-gconf,
pulseaudio-module-x11, pxljr, rhythmbox,
speech-dispatcher, splix, telepathy-idle, tomboy, totem,
totem-mozilla, transmission-gtk, tsclient,
ttf-indic-fonts-core, ttf-kacst, ttf-lao, ttf-thai-tlwg,
ttf-unfonts-core, ttf-vlgothic, ttf-wqy-zenhei, ubufox,
ubuntu-docs, ubuntuone-client-gnome, usb-creator-gtk,
vinagre, vino, wodim, xcursor-themes, xdg-utils, xsane

Сайт ubuntu имеет специальную страницу, где описаны все основные метапакеты системы.

Кульминация
У вас должен появиться закономерный вопрос - "Если всё так хорошо, то почему же возникают проблемы с удалением зависимостей ubuntu-desktop?". Дело в том, что в Ubuntu есть некие флаги, которые присваиваются пакетам. В частности, тем пакетам, которые apt установил по зависимостям, присваивается флаг auto. В случае удаления их "потребителя" они тоже будут номинированы на удаление. Если же мы ставим пакет вручную (например через Synaptic), флага auto он иметь не будет, а значит, всю ответственность за его судьбу система перекладывает на нас. Казалось бы, система хороша. Даже похожа на Gentoo с её миром (/var/lib/portage/world). Только вот разработчики решили, что их ubuntu-desktop очень важен любому пользователю. Поэтому, ВСЕ пакеты, которые попали в систему при её установке (а это и ubuntu-desktop со своими зависимостями), флага auto НЕ ИМЕЮТ. Поэтому поведение менеджера пакетов при удалении метапакета ubuntu-desktop вполне логично - "вы ставили, вы и разгребайте!". Если, например, подобным образом установить kubuntu-desktop, а потом его удалить, то все его зависимости нормально удалятся.

Развязка
И здесь на сцену выходит звезда - пакет debfoster. Он мастерски находит пакеты установленные по зависимости для других пакетов и проходит по этим "помещикам", предлагая удалить их со всеми их "крепостными" или без.
Приведу пример своей системы. Как можно заметить из прошлого листинга, вместо гнома я уже установил KDE4. Так вот, если теперь запустить debfoster, первым и наиболее "зажиточным" кандидатом станет метапакет kubuntu-desktop.

boh@nout:~$ sudo debfoster
[sudo] password for boh:

kubuntu-desktop is keeping the following 397 packages installed:
acpi-support acpid akonadi-server akregator alsa-base alsa-utils amarok
amarok-common amarok-utils anacron app-install-data apport apport-kde
apport-symptoms apt-xapian-index apturl-common apturl-kde ark avahi-autoipd
avahi-daemon bc bcmwl-modaliases bluetooth bluez bluez-alsa bluez-cups
bluez-gstreamer bluez-utils bogofilter bogofilter-bdb bogofilter-common
brltty byobu cdparanoia cdrdao cups cups-bsd cups-client cups-common
cups-driver-gutenprint dc dnsmasq-base dolphin dragonplayer dvd+rw-tools
ethtool fglrx-modaliases finger foo2zjs foomatic-db foomatic-db-engine
foomatic-db-gutenprint foomatic-filters gdb gdebi-core gdebi-kde
genisoimage ghostscript-cups gnupg-agent gtk2-engines-qtcurve gwenview
hpijs hpijs-ppds hplip hplip-data ibus-qt4 ijsgutenprint inputattach
install-package jockey-common jockey-kde k3b k3b-data kaddressbook kamera
kate kcm-gtk kde-style-qtcurve kde-window-manager kde-zeroconf kdebase-bin
kdebase-data kdebase-plasma kdebase-workspace-bin kdebase-workspace-data
kdebase-workspace-kgreet-plugins kdebase-workspace-libs4+5 kdebluetooth
kdegraphics-strigi-plugins kdemultimedia-kio-plugins kdepasswd
kdepim-groupware kdepim-kresources kdepim-runtime kdepim-runtime-data
kdepim-runtime-libs4 kdepim-strigi-plugins kdepim-wizards kdepimlibs-data
kdepimlibs5 kdesudo kdm kerneloops-daemon kfind kipi-plugins klipper kmag
kmail kmix kmousetool knotes konq-plugins konq-plugins-l10n konqueror
konqueror-nsplugins konqueror-plugin-searchbar konqueror-plugins konsole
kontact kopete korganizer kpackagekit kppp krdc krfb ksnapshot ksysguard
ksysguardd ksystemlog ktimetracker ktorrent ktorrent-data
kubuntu-artwork-usplash kubuntu-default-settings kubuntu-docs
kubuntu-firefox-installer kubuntu-konqueror-shortcuts kvkbd kwalletmanager
kwin-style-qtcurve language-selector-common language-selector-qt
laptop-mode-tools lftp libakonadiprivate1 libao2 libavahi-core6
libboost-program-options1.38.0 libbrlapi0.5 libcupscgi1 libcupsdriver1
libcupsmime1 libcupsppdc1 libdaemon0 libepub0 libfs6 libgpgme11
libgpod-common libgpod4 libgsl0ldbl libgutenprint2 libieee1284-3
libijs-0.35 libindicate-qt0 libiw29 libjpeg-progs libkabcommon4 libkdcraw7
libkdecorations4 libkdepim4 libkexiv2-7 libkipi6 libkleo4 libkonq5
libkonq5-templates libkonqsidebarplugin4 libkontactinterfaces4 libkopete4
libkorundum4-ruby1.8 libkpgp4 libksane0 libksieve4 libkwineffects1
liblancelot0 liblastfm0 libloudmouth1-0 libmimelib4 libmsn0.1 libmtp8
libnl1 libnm-glib2 libnm-util1 libnss-mdns libokularcore1 libotr2
libpackagekit-glib11 libpackagekit-qt11 libpcsclite1 libpoppler-qt4-3
libpth20 libqca2 libqca2-plugin-ossl libqimageblitz4 libqscintilla2-5
libqt4-assistant libqt4-help libqt4-ruby1.8 libqt4-scripttools
libqt4-sql-sqlite libqt4-test libqt4-xmlpatterns libqtscript4-core
libqtscript4-gui libqtscript4-network libqtscript4-sql libqtscript4-uitools
libqtscript4-xml libsane libscim8c2a libsensors3 libsmokekde4-2
libsmokeqt4-2 libsnmp-base libsnmp15 libstrigiqtdbusclient0 libtag-extras1
libtidy-0.99-0 libusplash0 libvncserver0 libwpg-0.1-1 libxkbfile1
libxklavier15 libzip1 linux-headers-2.6.31-17
linux-headers-2.6.31-17-generic linux-headers-generic linux-sound-base
lp-solve min12xxw modemmanager mscompress mtools mysql-server-core-5.1
network-manager nvidia-173-modaliases nvidia-185-modaliases
nvidia-96-modaliases nvidia-common okular okular-extra-backends
openoffice.org-calc openoffice.org-draw openoffice.org-impress
openoffice.org-kde openoffice.org-style-oxygen openprinting-ppds
oxygen-cursor-theme packagekit packagekit-backend-apt pcmciautils
pinentry-gtk2 pinentry-qt4 plasma-dataengines-addons
plasma-dataengines-workspace plasma-scriptengine-python
plasma-widget-facebook plasma-widget-folderview
plasma-widget-googlecalendar plasma-widget-indicatordisplay
plasma-widget-kimpanel plasma-widget-kubuntu-qa-feedback
plasma-widget-lancelot plasma-widget-networkmanagement
plasma-widget-quickaccess plasma-widgets-addons plasma-widgets-workspace
pnm2ppa policykit printer-applet pxljr python-apport python-cups
python-cupshelpers python-debian python-httplib2 python-imaging python-kde4
python-launchpadlib python-lazr-restfulclient python-lazr-uri python-newt
python-oauth python-packagekit python-pkg-resources python-problem-report
python-qt4 python-qt4-dbus python-simplejson python-sip4 python-smbc
python-software-properties python-wadllib python-xapian python-xkit
python-zope.interface quassel quassel-data rdesktop sane-utils screen
smbclient software-properties-kde speedcrunch splix ssl-cert syslinux
system-config-printer-common system-config-printer-kde
system-config-printer-udev systemsettings tcl8.4 tk8.4 toshset
ttf-arphic-uming ttf-freefont ttf-indic-fonts-core ttf-kacst ttf-lao
ttf-thai-tlwg ttf-unfonts-core ttf-vlgothic ttf-wqy-zenhei
unattended-upgrades update-manager-kde update-notifier-common
update-notifier-kde usb-creator-common usb-creator-kde userconfig usplash
wireless-tools wodim wpasupplicant x11-apps x11-session-utils x11-xfs-utils
x11-xkb-utils xcursor-themes xfonts-100dpi xfonts-75dpi xfonts-base
xfonts-scalable xinit xinput xorg xorg-docs-core xserver-common
xserver-xorg xserver-xorg-core xserver-xorg-input-all
xserver-xorg-input-evdev xserver-xorg-input-mouse
xserver-xorg-input-synaptics xserver-xorg-input-vmmouse
xserver-xorg-input-wacom xserver-xorg-video-all xserver-xorg-video-apm
xserver-xorg-video-ark xserver-xorg-video-ati xserver-xorg-video-chips
xserver-xorg-video-cirrus xserver-xorg-video-fbdev xserver-xorg-video-geode
xserver-xorg-video-i128 xserver-xorg-video-i740 xserver-xorg-video-intel
xserver-xorg-video-mach64 xserver-xorg-video-mga
xserver-xorg-video-neomagic xserver-xorg-video-nv
xserver-xorg-video-openchrome xserver-xorg-video-r128
xserver-xorg-video-radeon xserver-xorg-video-rendition
xserver-xorg-video-s3 xserver-xorg-video-s3virge xserver-xorg-video-savage
xserver-xorg-video-siliconmotion xserver-xorg-video-sis
xserver-xorg-video-sisusb xserver-xorg-video-tdfx
xserver-xorg-video-trident xserver-xorg-video-tseng xserver-xorg-video-v4l
xserver-xorg-video-vesa xserver-xorg-video-vmware xserver-xorg-video-voodoo
Keep kubuntu-desktop? [Ynpsiuqx?], [H]elp:

Его легко можно удалить с всеми принадлежащими ему мелочами (вариант p). Поверьте, то же самое происходит на чистой системе Ubuntu, естественно на снос номинируется ubuntu-desktop. Для этого молодца (который debfoster) флаги - не помеха.

Вот так вот. Теперь для меня apt сравним с pacman или portage. Хотя, нужно признать, что debfoster, всё же, сторонняя утилита. Ну да ладно. В Ubuntu есть жизнь!

5 марта 2009 г.

Нормальные шрифты в qt4

Сейчас многие программы (в т. ч. Psi, Last.fm, LyX) существуют только на основе графической библиотеки QT4. В Гноме такие приложения выглядят... уродливо. А всё потому, что шрифты для QT4 отрисовываются по-другому и автоматически не сглаживаются. Для простого включения сглаживания нужно создать файл ~/.fonts.conf с таким содержанием: