Calculate Linux. Linux calculate desktop

Configuring Your Desktop in Calculate Linux 11.9

language Russian

Our brand-new Calculate Linux 11.9 provides a new method of configuring user profiles. In this article, I will try to describe the procedure for Calculate Linux Desktop, focusing on the main operations.

Calculate Utilities¶

Calculate Utilities were written in Python. They operate throughout the installation and, which is even more important, the system configuration. To set up user profiles, the calculate-desktop package is used. Unlike other utilities, it lets you configure system files as well as user files (within the home directory). As simple as this:

cl-desktop alex * alex's user account configured...

The setup is performed with the Calculate Utilities templates; we will see them a bit later.

Utility variables¶

Calculate Utilities have their own sets of variables. Calculate-desktop, for instance, includes variables used for user login/logout. To view these variables, execute cl-desktop -v user_name. Here is my example:

cl-desktop -v alex ... os_linux_name [r] Calculate Linux Desktop os_linux_shortname [r] CLD os_linux_subname [r] KDE os_linux_ver [r] 11.9 os_locale_lang [r] ru_RU os_locale_language [r] ru os_locale_xkb [r] us,ru(winkeys) os_locale_xkbname [r] us,ru os_net_hostname [w] calculate os_root_type [r] hdd os_x11_composite [r] on os_x11_height [w] 1050 os_x11_standart [r] 1680x1050 os_x11_video_drv [r] nvidia os_x11_width [w] 1680 ur_fullname [r] Alexander Tratsevskiy ur_group [r] family ur_home_path [r] /home/alex ur_jid [r] ur_login [r] alex ur_mail [r] ... Variable names must include type and destination. The said variables are very important for configuring a system: their values can be inserted in configuration files or used in conditionals.

Calculate templates¶

Several years before, when we were building a new engine, Calculate Next, for our site, we also wrote some methods to convert layout files to XML and vice versa. Even though we did not build the site engine after all, much of this experience was beneficial for other projects - namely, for creating Calculate Utilities 2.

In most cases, it will be enough to reset some parameters in the configuration file for a service or an application to work as you want them to. Our templates are based on this simple approach; they recognize nearly all popular configuration format, such as apache, bind, compiz, dhcp, dovecot, kde, ldap, openrc, plasma, postfix, procmail, proftpd, samba, squid, xml_gconf, xml_gconf_tree, xml_xfce and xml_xfcepanel. For other formats, you may use the raw format for text files, the bin format for binary files and the patch format for patch files.

Templates are not just configs that can be appended to the system files. They can contain conditionals, functions and, of course, variables. During the joining procedure, the template and the configuration file are converted to the XML format, then merged and after that, XML is converted back to the specified format of the configuration file and copied onto the system.

Example 1. Configuring trusted applications for kwallet (excerpt from kwallertc):

Calculate format=kde path=~/.kde4/share/config Applications that access is allowed [Auto Allow] ?os_locale_lang==en_US# kdewallet=Kopete,KMail,Konqueror,Chromium,Chrome,Network Management,Akonadi Resource,KDE Daemon os_locale_lang# ?os_locale_lang==ru_RU# kdewallet=Kopete,KMail,Konqueror,Chromium,Chrome,Network Management,Источник данных Akonadi,Служба KDE os_locale_lang# ...

For some time, KDE applications have been using localization. To avoid superfluity of locales, the language settings are checked and configured according to the system language.

Example 2. Creating a link to the browser icon that will be shown by default on the bottom panel in XFCE (excerpt from browser.desktop):

Calculate exists(/usr/share/applications/calculate-browser.desktop)!= link=/usr/share/applications/calculate-browser.desktop name=10000000030.desktop symbolic force

In the example above, a symlink pointing to the calculate-browser.desktop file is created under the name 10000000030.desktop; the system verifies if this file exists already. If such is the case, the file will be overwriten.

Paths for storing templates¶

While paths of Calculate Utilities would be of little interest to you, the templates' locations are of paramount importance, since you create your own templates based on these prototypes. For your convenience, all Calculate 2.2 templates are included in one and single package, calculate-templates. At install, the package contents is deployed in the directory /usr/share/calculate/templates. That is where you can find user profile settings. Directory names in templates are not fixed: they are defined in the .calculate_directory file in each respective directory. General rules for templates apply to the directory. Templates used by calculate-desktop are located in /usr/share/calculate/templates/desktop. The .calculate_directory file, which defines this directory, stores the header of the desktop directory template:

Calculate append=skip cl_name==calculate-desktop&&cl_ver>=2.2.1

Templates belonging to the package are explicitly stated, the version of the utilities is checked. User-defined application settings will be stored in the directory /usr/share/calculate/templates/desktop/desktop. For instance, the directory 60-mc-4.7 will contain configuration templates for Midnight Commander.

Configuration events¶

Calculate Linux uses Portage for managing packages. Portage is a very flexible tool which permits easy handling of third-party projects. By using the profile.bashrc script, Calculate Utilities are integrated with the emerge package manager via the system profile. System configuration with Calculate Utilities will be thus called whenever you install a package. Calculate-desktop looks for templates of the package that is being installed and, if needed, performs the setup. If the settings are not limited by the user profile, the package can modify system files, and Portage will accept them. Paths to the new files and to the files that have been modified, with their hashes, will remain in the local package database.

Apart from installing packages, many other events will be accompanied by software configuration. For instance, when a user logs in via KDM/GDM, if the user has no directory, it will be created and configured. This and other relevant events are described in specific variables, which are used to build conditionals in templates.

Package data¶

Templates intended for user profile configuration use the standard method of Calculate Utilities and store their settings in ~/.calculate/ini.env. This samba-like file includes 4 primary sections: «main» for main settings, «ver» for software versions, «update» for the flag that disables updating, for each program, and «resource» for the paths to standard user directories. In addition, you can have as many sections as you need; we in Calculate Ltd. use the «office» section to account for some settings that are important to us. When a domain user logs in, their profile is configured with templates. Such configuration is usually required when software is updated or if you want to record some application settings.

ini.env lets you enable or disable updates of one or several applications. You could, for instance, return to the initial program configuration.

Templates in Calculate Linux 11.9: What's new¶

In most cases, configuring the user profile at login was unnecessary. In Calculate Linux 11.9, we are finally making a clean difference between local users and domain users. While formerly, Calculate Utilities could modify the profiles of the logged in users only, for configuring software before the first start, now all local profiles are configured. Thanks to it, there is no more update before the system starts and logging in is up 5 seconds faster. Should there be any changes, the modified files will be printed when the package is being installed.

You will encounter no more difficulties either when installing from a new ISO image. At the first login, the update utilities will be launched. For instance, if you want to upgrate from KDE 4.6 to 4.7, only one configuration file, nepomukserverrc, will be modified by the template /usr/share/calculate/templates/desktop/desktop/20-kde-4.6-4.7/.kde4/share/config/nepomukserverrc, which contains the following:

Calculate format=kde [Basic Settings] Start Nepomuk=true

Before KDE 4.7, though, nobody seemed concerned if Nepomuk daemon was absent...

How we are different¶

Calculate Linux compared to other distributions¶

See how distributions compare in handling user profile configuration:Ubuntu:uses pre-configured system files; it may use Skel.Sabayon:uses the /etc/skel directory, which contains all settings, including configurations of packages that are not installed.Calculate:Calculate Utilities templates are used.

Pros and cons¶

  • pro: More flexibility in setup, in contrast to using /etc/skel, limited with static settings which do not allow you to configure the user login, the screen resolution, hardware-related features, etc.
  • pro: Configuring is done only for the programs installed on the system; if needed, settings can be deleted.
  • pro: Users can create their own templates, thus configuring applications to their liking.
  • pro: You can always revert the changes and use the original configuration.
  • pro: Smooth migration between software versions is supported.
  • con: We recommend to update utility templates before software update.


Calculate Utilities TemplatesTemplate VariablesStoring User Profile Settings

Originally written by Alexander Tratsevskiy for Habrahabr,

Calculate Linux - это... Что такое Calculate Linux?

Calculate Linux — семейство дистрибутивов, предназначенных для малого и среднего бизнеса, в которых применяются перемещаемые профили и централизованное развёртывание программного обеспечения. Cозданы на основе проекта Gentoo Linux и полностью с ним совместимы.


Первый релиз Calculate Linux состоялся в июне 2007 года и носил номер 7.6, что соответствовало году и месяцу релиза. Дистрибутив изначально распространялся как stage4[1]–архив и устанавливался при помощи утилиты Calculate. Чуть позже дистрибутив стал распространяться в виде livecd–образа. Все дополнительные приложения стали устанавливаться из Portage-оверлея дистрибутива, что обеспечило 100 % совместимость с Gentoo.

Начиная с версии 9.0 в дистрибутив включено готовое клиент-серверное решение для быстрого развёртывания на предприятии, включающее в себя централизованную аутентификацию и хранение учётных записей пользователей на сервере. Для настройки такого сервера служит набор утилит Calculate 2. Учётные записи samba, ftp, mail, jabber и т. д. хранились в этой версии посредством LDAP-сервера.

В версии 10.0 в оверлее были созданы профили дистрибутивов, что упростило контроль обновлений, автоматически разрешая зависимости пакетов при установке.

С версии 10.9 дистрибутив перешёл на новую программу установки cl-install, имеющую графический интерфейс и входящую в пакет утилит Calculate 2.

Для версии 11.0 были созданы репозитории бинарных пакетов: как для Calculate Linux Desktop (KDE, GNOME и XFCE), так и для Calculate Directory Server.

В версии 12.0 совершен переход на новые утилиты Calculate 3 для установки и настройки системы. Основные отличия: поддержка клиент-серверной сетевой работы через SOAP/WSDL,реализация консольного и графического клиентов управления; поддержка мультиустановки - возможность устанавливать систему одновременно на несколько носителей как на локальной, так и на удалённых машинах; поддержка настройки отдельных частей системы консольными утилитами cl-setup-boot, cl-setup-locale, cl-setup-network, cl-setup-system, cl-setup-video или через графическую консоль.


  • Готовое клиент-серверное решение.
  • Быстрое развёртывание на предприятии.
  • Полноценная работа в гетерогенных сетях.
  • Модель обновлений: rolling release.
  • Включает специально разработанные утилиты Calculate для настройки, сборки и установки системы.
  • Поддерживается интерактивная сборка системы — подготовка ISO-образа системы под свои задачи.
  • Удобство администрирования.
  • Возможность установки на USB-Flash или USB-HDD с ext4, ext3, ext2, ReiserFS, Btrfs, XFS, jfs, nilfs2 или FAT32.
  • 100 % совместимость с Gentoo с поддержкой бинарных репозиториев обновлений.


Calculate Linux делится на четыре направления - версия для ПК и ноутбуков Calculate Linux Desktop (CLD, CLDG и CLDX), серверная версия Calculate Directory Server (CDS), дистрибутивы для самостоятельной сборки системы Calculate Linux Scratch и Calculate Scratch Server (CLS и CSS), и домашний мультимедиа центр развлечений Calculate Media Center (CMC).

  • Calculate Directory Server (CDS) - может выступать в роли контроллера домена, позволяет при помощи утилит Calculate 2 простыми unix-подобными командами настраивать Samba, Mail, Jabber, Proxy сервисы. По мере выхода пакета calculate-server, входящего в состав утилит Calculate 2 (лицензия Apache 2), с интервалом в 2-3 месяца выходят новые версии сервера.
  • Calculate Linux Desktop KDE/GNOME (CLD, CLDG) - это современный десктоп на базе графического окружения KDE или GNOME, который может выполнять большинство офисных задач. Основной особенностью является быстрая установка, удобная система обновлений и возможность хранить учётные записи пользователей на сервере.
  • Calculate Linux Desktop XFCE (CLDX) - облегчённая версия десктопа, позволяющая работать на слабых ПК с объёмом оперативной памяти от 196 Мб. Система поддерживает все возможности KDE версии. Внешний вид рабочего стола один в один повторяет KDE. Сотрудники беспрепятственно могут работать на разных десктопах, меняя Qt4 приложения на Gtk, совместно используя файлы, документы из ОС Windows.
  • Calculate Media Center (CMC) - специализированный дистрибутив, оптимизированный для хранения и проигрывания мультимедийного контента.
  • Calculate Linux Scratch (CLS) - базовый дистрибутив, подобно stage3 применяемый для сборки других версий десктопа. В отличие от stage3 содержит необходимый минимум дополнительных пакетов, драйвера, библиотеки, исходный код ядра Linux и портежи.
  • Calculate Scratch Server (CSS) - как и CLS использует минимальный набор пакетов. В отличие от последнего предназначен для установки на сервере.

Все версии дистрибутива распространяются в виде загрузочного livecd образа с возможностью установки на HDD, USB-Flash либо USB-HDD.

Состав дистрибутива Calculate Linux Desktop

  • Графическая среда KDE, GNOME либо XFCE
  • Пакет офисных приложений LibreOffice
  • Программы для работы в Интернете Chromium
  • Утилиты Calculate 3 для администрирования системы

Состав дистрибутива Calculate Directory Server

  • Сервер директорий OpenLDAP
  • Файловый сервер Samba
  • Почтовый сервер Postfix
  • Jabber сервер Ejabberd
  • Прокси сервер Squid
  • DNS сервер BIND
  • DHCP сервер DHCP
  • Утилиты Calculate 2 для администрирования сервера

См. также



  • Сергей Яремчук. Александр Трацевский: «Calculate Linux — полет нормальный» // журнал «Системный администратор», № 1-2 2011
  • Флагом по производительности. Соревнования по скоростному забегу: Linux Mint 9 vs Calculate Linux Desktop 10.9 // журнал «Хакер», декабрь 12 (143) 2010
  • Benchmarks Of The Gentoo-Based Calculate Linux Desktop // [Phoronix] Linux Hardware Reviews, Benchmarking, & Gaming
  • Удобный Gentoo, или Calculate Linux 10.0 // журнал «Мой компьютер», № 03/2010
  • Собираем свой дистрибутив с Calculate Linux Scratch // журнал «Системный администратор», декабрь 2009
  • Задача: Выбрать и установить подходящую ось на Flash // журнал «Хакер», август 08 (128) 2009
  • Строим сеть на Calculate Directory Server // журнал «Системный администратор», август 2009
  • Обзор Calculate Linux Desktop 9.6 // «Linux Format», Номер 7 (120) Июль 2009
  • Calculate Linux Desktop 9.5 // Dator Magazin


Вышел Calculate Linux Desktop 10 — Linux портал

После 5 месяцев разработки вышла новая версия дистрибутива Calculate Linux Desktop 10.9. Доступны три вида для загрузки с рабочим столом KDE (CLD), GNOME (CLDG) и XFCE (CLDX).

Главные конфигурации

  • Новый консольный установщик cl-install с графическим фронт-эндом cl-install-gui.
  • Переход на новый формат шаблонов утилит Calculate 2.2, позволяющий выборочно модифицировать свойства конфигурационных файлов поддерживаемых типов.
  • Поддержка пользовательских шаблонов с расширением ‘.clt’, расположенных в директории с конфигурационными файлами.
  • Автонастройка конфигурационных файлов новых версий пакетов в процессе установки с возможностью автозамены.
  • Настройка пользовательских приложений во время работы в графическом сеансе во время установки пакетов.
  • Добавлена поддержка работы юзеров домена вне сети.
  • Снижено энергопотребление.
  • Переход на SHA256 для хранения паролей.
  • Поддержка установки в несколько разделов с указанием различных файловых систем.
  • Поддержка добавления юзеров во время установки системы.
  • Поддержка «отката» к незапятанной Gentoo-системе, также установки дополнительный возможностей Calculate Linux в Gentoo-совместимой системе.
  • Вместо пути /usr/calculate/share для ресурсов на данный момент употребляется /var/calculate.
  • В качестве браузера на данный момент употребляется Chromium.
  • Добавлен Skype во все версии десктопов.
  • Добавлен FTP клиент FileZilla для CLDG/CLDX.
  • Добавлен twitter-клиент Choqok для KDE и Pino для Gnome/XFCE версий.
  • В качестве torrent-клиента в Gnome/XFCE на данный момент употребляется Deluge.
  • Вместо Slim в CLDX употребляется менеджер входа в систему GDM.
  • Добавлена поддержка болгарского языка.

Состав версий

  • CLD (KDE desktop):KDE 4.4.5, Amarok 2.3.1, digiKam 1.2.0, Chromium 6.0.472.59, Kernel, OpenOffice 3.2.1, X.Org 7.4i686 — 1.72 GB, x86_64 — 1.88 GB
  • CLDG (Gnome desktop):Gnome 2.30, Gimp 2.6.8, Chromium 6.0.472.59, Kernel, OpenOffice 3.2.1, X.Org 7.4i686 — 1.43 GB, x86_64 — 1.57 GB
  • CLDX (Xfce desktop):XFCE 4.6.2, Gimp 2.6.8, Kernel, Chromium 6.0.472.59, OpenOffice 3.2.1, X.Org 7.4i686 — 1.21 GB, x86_64 — 1.36 GB


Обновить предыдущую версию Calculate Linux Desktop можно 2-мя способами:

  • Загрузив ISO образ в директорию /var/calculate/linux, установив пакет calculate-install и выполнив команду cl-install -d /dev/sdaX, с указанием раздела для установки. В этом случае установка займет около 5 минут, большая часть установок будут перенесены.
  • Выполнив обновление пакетов утилитой emerge. В конце сделайте команду cl-install --live.


  • Сайт проекта:
  • Загрузить:

Похожие статьи