FluxBox (Вопрос/Ответ)

Модератор: Модераторы разделов

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Почему Fluxbox сам наводит порядок в файле init и достаточно неадекватно реагирует на ручное редактирование файла?.. Вплоть до игнорирования изменений, сделанных вручную?
Я уж не говорю о попытке оставить там русскоязычныые комментарии...
Спасибо сказали:

awua
Сообщения: 594

Re: FluxBox

Сообщение awua »

Помогите новичку во Fluxbox. Указываю цвет шрифта заголовка окна:

Код: Выделить всё

window.label.focus.textColor:        #F0F0F0

А он всё равно чёрный, хотя указан цвет, близкий к белому. Почему?
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2023
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: FluxBox

Сообщение Stauffenberg »

shau-kote писал(а):
23.01.2011 22:57
Почему Fluxbox сам наводит порядок в файле init и достаточно неадекватно реагирует на ручное редактирование файла?.. Вплоть до игнорирования изменений, сделанных вручную?

Конктретней пожалуйста.

Только что поменял длину панели. Все отлично работает.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

awua
Сообщения: 594

Re: FluxBox

Сообщение awua »

awua писал(а):
12.03.2011 18:00
Помогите новичку во Fluxbox. Указываю цвет шрифта заголовка окна:

Код: Выделить всё

window.label.focus.textColor:        #F0F0F0

А он всё равно чёрный, хотя указан цвет, близкий к белому. Почему?

Нашёл причину. Надо было перезапустить Fluxbox, хотя я и сделал "reload config".
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Stauffenberg писал(а):
12.03.2011 18:23
Конктретней пожалуйста.

Только что поменял длину панели. Все отлично работает.

Конкретней - меня задолбало выискивать нужные строчки в конфиге, я сел и написал конфиг вручную, пользуясь описанием ресурсов в man'е. После этого флюксу стало дурно, его поведение не соответствовало ни дефолтному, ни описанному в конфиге. Пришлось удалять файл init вообще, чтобы он сам заполнил его по своему разумению.
Спасибо сказали:

Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: FluxBox

Сообщение Stanislav Potapchik »

новая особо не нужная функция обновлённого флукса

Код: Выделить всё

ChangeWorkspace :Exec fbsetbg ~/.fluxbox/backgrounds/bg$(xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}').jpg


ну и нужные связки

Код: Выделить всё

Mod1 t                 :ExecCommand xterm
Mod4 t                 :If {Some Matches (xterm)} {NextWindow (xterm)} {Exec xterm}
Mod1 m Mod1 c          :ExecCommand xterm -geometry 100x45+1+300 -e mc


Код: Выделить всё

Mod4 Tab    :NextWindow
Mod1 Tab        :NextWindow (workspace=[current])


флукс развивается :)
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2023
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: FluxBox

Сообщение Stauffenberg »

shau-kote писал(а):
13.03.2011 15:30
Конкретней - меня задолбало выискивать нужные строчки в конфиге, я сел и написал конфиг вручную, пользуясь описанием ресурсов в man'е. После этого флюксу стало дурно

LOL
И виноват конечно же Fluxbox :)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Stauffenberg писал(а):
19.03.2011 15:21
LOL
И виноват конечно же Fluxbox

Пардоньте, а с каких пор текстовые Unix-конфиги нельзя писать целиком вручную?..
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2023
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: FluxBox

Сообщение Stauffenberg »

shau-kote писал(а):
21.03.2011 16:14
Stauffenberg писал(а):
19.03.2011 15:21
LOL
И виноват конечно же Fluxbox

Пардоньте, а с каких пор текстовые Unix-конфиги нельзя писать целиком вручную?..

Может дело в том, что новый конфиг был составлен не так как надо?
Можно взглянуть?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Да, конечно.

Код: Выделить всё

# Рабочие столы

# количество рабочих столов
session.screen0.workspaces: 2
# разрешать перетаскивать окна через край экрана
session.screen0.workspacewarping: True
# наименования рабочих столов
session.screen0.workspaceNames: one, two


# Тулбар

# автоскрытие
session.screen0.toolbar.autoHide: false
# слой
session.screen0.toolbar.layer: Dock
# положение
session.screen0.toolbar.placement: BottomCenter
# высота (определяется стилем)
session.screen0.toolbar.height: 0
# видимость
session.screen0.toolbar.visible: True
# ширина в процентах
session.screen0.toolbar.widthPercent: 70
# не давать окнам максимизироваться поверх тулбара
session.screen0.toolbar.maxOver: False
# содержимое тулбара
session.screen0.toolbar.tools: workspacename, iconbar, systemtray, clock
# формат даты
session.screen0.strftimeFormat: %I:%M %p


# Окна

# прозрачность активного и неактивного окон
session.screen0.window.focus.alpha: 255
session.screen0.window.unfocus.alpha: 190
# показывать координаты окна при перетаскивании
session.screen0.showwindowposition: True
# обрамление окна
session.screen0.defaultDeco: NORMAL
# кнопки в заголовке окна
session.titlebar.left: Stick Maximize Minimize
session.titlebar.right: Close
# при перемещении перетаскивать всё окно, иначе - только его рамку
session.screen0.opaqueMove: True
# расстояние, при котором окно "прилипает" к краю экрана
session.screen0.edgeSnapThreshold: 10
#
session.screen0.fullMaximization: False
#
session.ignoreBorder: False


# Модель фокусировки

# по нажатию
session.screen0.focusModel: ClickToFocus
# автоматически поднимать окно, получившее фокус
session.screen0.autoRaise: True
# передавать фокус окну при клике в любой его точке
session.screen0.clickRaises: True
# давать фокус новым окнам
session.screen0.focusNewWindows: True


# Iconbar

# фильтр отображаемых приложений
session.screen0.iconbar.mode: {static groups} (workspace)
# отображение иконок
session.screen0.iconbar.usePixmap: True
# пространство между заголовком окна и краем кнопки
session.screen0.iconbar.iconTextPadding: 10
# выравнивание кнопок; в данном случае заполняют iconbar целиком
session.screen0.iconbar.alignment: Relative


# Табы

# табы в заголовке
session.screen0.tabs.intitlebar: True
# интервал между вкладками
session.tabPadding: 10
# группировка окон в табы при перетаскивании окна в произвольноо место другого окна
session.tabsAttachArea: Window


# Другое

# объём кэша в Кб
session.cacheMax: 10000
# псевдопрозрачность
session.forcePseudoTransparency: False
# размещать новые окна под курсором
session.screen0.windowPlacement: UnderMousePlacement
# задержка открытия подменю
session.screen0.menuDelay: 50
#стиль
session.styleFile: /home/shau-kote/.fluxbox/styles/darkmatter
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

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

Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: FluxBox

Сообщение Stanislav Potapchik »

только что попробовал комментировать init. все комментарии сохраняются даже при рестарте Х.
с кнопками в заголовке тоже самое, что написал - то и есть.
у вас кроме флукса никаких кде и гномов не стоит?
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Stanislav Potapc... писал(а):
26.03.2011 10:26
у вас кроме флукса никаких кде и гномов не стоит?

Неа. Ни KDE, ни GNOME, ни каких-то иных WM.
Спасибо сказали:

Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: FluxBox

Сообщение Stanislav Potapchik »

а gconf-editor открывается?
desktop-gnome-shell-windows button_layout не перебивает?
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Stanislav Potapc... писал(а):
27.03.2011 17:06
а gconf-editor открывается?

Нету такого. Этож вроде GNOME'овская программа, откуда она у меня в системе?..
Спасибо сказали:

Аватара пользователя
RDV1984
Сообщения: 176
ОС: Debian GNU/Linux testing

Re: FluxBox

Сообщение RDV1984 »

Возник вопрос в fluxbox установил xxkb, флажок отображается на всех окнах и плюс еще на панели инструментов. Как зделать так чтобы на панели инструментов не было флажка? И как добавить плюс к этому всему значек в трей. Вот скрин.
http://imageshack.us/f/525/mysc.png/
вот мой конфиг

Код: Выделить всё

XXkb.image.path: /usr/share/xxkb

XXkb.group.base: 1
XXkb.group.alt: 2

XXkb.mainwindow.enable: no
XXkb.mainwindow.geometry: 48x48
XXkb.mainwindow.image.1: en48.xpm
XXkb.mainwindow.image.2: ru48.xpm
XXkb.mainwindow.image.3: su48.xpm
XXkb.mainwindow.image.4:
XXkb.mainwindow.label.font: -misc-*-r-*-20-*

XXkb.*.border.color: black
XXkb.*.border.width: 0

XXkb.*.label.foreground: white
XXkb.*.label.background: blue4
XXkb.*.label.enable: no

XXkb.mainwindow.type: tray
! possible values - normal, top, tray, wmaker

XXkb.button.enable: yes
XXkb.button.geometry: 15x15-60+2
XXkb.button.image.1: en15.xpm
XXkb.button.image.2: ru15.xpm
XXkb.button.image.3: su15.xpm
XXkb.button.image.4:
XXkb.button.label.font: -misc-*-r-*-13-*

XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no
XXkb.controls.focusout: no
XXkb.controls.two_state: yes
XXkb.controls.button_delete: yes
XXkb.controls.button_delete_and_forget: yes
XXkb.controls.mainwindow_delete: yes

XXkb.mousebutton.1.reverse: no
XXkb.mousebutton.3.reverse: no

XXkb.bell.enable: no
XXkb.bell.percent: -50

XXkb.ignore.reverse: no
Спасибо сказали:

Аватара пользователя
CmndrAlexGreen
Сообщения: 71
ОС: XP

Re: FluxBox

Сообщение CmndrAlexGreen »

Недавно прочел что мол флюк для панели использует tint2, где это можно посмотреть? и если это так то где тинт хранит файлы своих конфигов, а то я его собрался отдельно ставить к флюку).
Спасибо сказали:

Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: FluxBox

Сообщение Aectann »

CmndrAlexGreen писал(а):
20.10.2011 22:57
Недавно прочел что мол флюк для панели использует tint2, где это можно посмотреть?

У флюкса собственная встроенная панелька, содержимое ее настраивается через ~/.fluxbox/init . tint2 с флюксом никак не связан.

По конфигурацию же tint2 можно почитать здесь: http://code.google.com/p/tint2/wiki/Configure .
My god... it's full of stars!...
Спасибо сказали:

Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: FluxBox

Сообщение shau-kote »

Подскажите, можно ли как-нибудь сделать так, чтобы при переключение окон по Alt-Tab показывалось окошко со всеми имеющимися окнами? А то при большом количестве окон неудобно "вслепую" переключать. :/
Спасибо сказали:

Аватара пользователя
RDV1984
Сообщения: 176
ОС: Debian GNU/Linux testing

Re: FluxBox

Сообщение RDV1984 »

Кто-нибудь использует wicd во fluxbox??? Не могу добится чтобы иконка wicd отображалась в системном трее.
в
~.fluxbox/startup пишу
wicd-client &
но при загрузке окно wicd появляется на рабочем столе и в трее видна иконка, при закрытии окна пропадает и окно, и иконка в трее. В кде иконка в трее висела всегда и пропадала если на ней кликнуть правой кнопкой мыши и выбрать выход. Хотелось бы добится от fluxbox такого же поведения.
Спасибо сказали:

Institut
Сообщения: 281
ОС: mint

Re: FluxBox

Сообщение Institut »

RDV1984
в ~.fluxbox/startup пишу wicd-client &

Это не надо писать, wicd - daemon - он сам в Вашей сессии появится, если Вы при установке согласились добавить демона wicd-daemon для существующих пользователей. Обычно четырех пакетов хватает, что-бы wicd запустился нормально python-wicd wicd wicd-daemon wicd-gtk.
Как вариант - wicd - daemon не сработал с dbus, по причине того, что Вы не добавили для существующих пользователей.
Для Ubuntu 11.04 все вышеперечисленное работает.


ALL
Если интересно - для Fluxbox - генератор вменяемого меню с иконками или без таковых.
Или можно воспользоваться моим файлом, где добавлен claws-mail & wallpaper.
Spoiler
#!/usr/bin/perl

# Copyright © 2011-2012 Trizen <echo dHJpemVueEBnbWFpbC5jb20K | base64 -d>.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# Fluxbox Menu Generator
# A simple menu generator for the Fluxbox Window Manager
# Should be installed in $PATH before the first execution!

# License: GPLv3
# Created on: 01 August 2010
# Latest edit on: 11 February 2012
# Website: http://trizen.googlecode.com

use strict;
use autouse qw(File::Find find);

my $pkgname = 'fbmenugen';
my $version = '0.7.1';

my $icons = 0;
my $generate_menu = 0;
my $reconfigure = 0;

our ($CONFIG, $SCHEMA);

my $home_dir = $ENV{HOME} // $ENV{LOGDIR} // (getpwuid($<))[7] // `echo -n ~`;
my $xdg_config_home =
exists $ENV{XDG_CONFIG_HOME}
? $ENV{XDG_CONFIG_HOME}
: $home_dir . '/.config';

my $config_dir = "$xdg_config_home/$pkgname";
my $icons_dir = "$config_dir/icons";
my $config_file = "$config_dir/configuration.pl";
my $menufile = "$home_dir/.fluxbox/menu";

my $icons_path;
if (-d $icons_dir) {
$icons_path = $icons_dir;
}
elsif (-d './icons') {
require Cwd;
$icons_path = Cwd::abs_path('./icons');
}
else {
$icons_path = "/usr/share/$pkgname/icons";
}

unless (-e $config_dir) {
require File::Path;
File::Path::make_path($config_dir)
or die "Unable to create $config_dir: $!\n";
}

if (not -e $config_file or $reconfigure) {

open my $config_fh, '>', $config_file
or die "Unable to open for write $config_file: $!\n";

print {$config_fh} <<'CONFIG_FILE';
#!/usr/bin/perl

# fbmenugen config file
#
# SCHEMA supports the following keys: item, cat, config, exit, fluxbox, regenerate, raw, sep
#
# Posible values for each of this types are:
# For 'item': [COMMAND, NAME, ICON]
# For 'sep': undef - horizontal separator
# For 'cat': Any of the posible categories. 'cat => [CATEGORY, NAME, IMAGE]' - image is optional
# For 'raw': [COMMAND, NAME, ICON]
# Example: {raw => ' [exec] (Geeqie) {geeqie -r } </usr/share/pixmaps/geeqie.png>'},

# NOTE:
# * Keys and values are case sensitive. Keep all keys lowercase.
# * Category names are case insensitive. (ex: 'X-XFCE' is equivalent to 'x_xfce')

my %items = (
terminal => 'lxterminal',
editor => 'geany',
file_manager => 'pcmanfm',
web_browser => 'firefox',
mail_news => 'claws-mail',
instant_messaging => 'pidgin',
run_command => 'fbrun',
lock_command => 'xscreensaver-command -lock',
);

our $CONFIG = {

# Desktop files paths
desktop_files_paths => ['/usr/share/applications'],

# When 'Terminal=true'
open_in_terminal => "$items{terminal} -e %s",

# Editor command
open_in_editor => "$items{editor}",

# Menu title
title => 'Fluxbox',
};

our $SCHEMA = [
{item => [$items{file_manager}, 'File Manager', 'file-manager']},
{item => [$items{terminal}, 'Terminal', 'terminal']},
{item => [$items{editor}, 'Editor', 'text-editor']},
{item => [$items{web_browser}, 'Web Browser', 'web-browser']},
{item => [$items{mail_news}, 'Mail & News', 'mail_news']},
{item => [$items{run_command}, 'Run command', 'system-run']},
{item => [$items{instant_messaging}, 'Instant messaging', 'system-users']},
{item => [$items{lock_command}, 'Lock display', 'lock']},

{sep => undef},

{cat => ['utility', 'Accessories']},
{cat => ['development', 'Development']},
{cat => ['education', 'Education']},
{cat => ['games', 'Games']},
{cat => ['graphics', 'Graphics']},
{cat => ['audiovideo', 'Multimedia']},
{cat => ['network', 'Network']},
{cat => ['office', 'Office']},
{cat => ['settings', 'Settings']},
{cat => ['system', 'System']},

#{cat => ['qt', 'QT Applications']},
#{cat => ['gtk', 'GTK Applications']},
#{cat => ['x_xfce', 'XFCE Applications']},
#{cat => ['gnome', 'GNOME Applications']},
#{cat => ['consoleonly', 'CLI Applications']},

{config => 'Configure menu'},
{fluxbox => 'Fluxbox menu'},
{sep => undef},
{regenerate => 'Regenerate'},
{exit => 'Quit'},
];
CONFIG_FILE
close $config_fh;
}

foreach my $arg (@ARGV) {
if ($arg eq '-i') {
$icons = 1;
}
elsif ($arg eq '-g') {
$generate_menu = 1;
}
elsif ($arg eq '-r') {
$reconfigure = 1;
}
elsif ($arg eq '-v') {
print "$pkgname $version\n";
exit;
}
elsif ($arg =~ /^-+(?:h|help|usage|\?)$/) {
help();
}
}

if (-d "/usr/share/$pkgname/icons") {

if (not -d $icons_dir) {
mkdir $icons_dir or warn "(x_x) Unable to create dir: $icons_dir\n";
}

if (opendir(my $dir_h, "/usr/share/$pkgname/icons")) {
while (defined(my $filename = readdir $dir_h)) {
if ($filename ~~ [q{.}, q{..}]) { next }
next if -e "$icons_dir/$filename";

require File::Copy;
File::Copy::copy("/usr/share/$pkgname/icons/$filename", $icons_dir)
or warn "Unable to copy $filename: $!";
}
closedir $dir_h;
}
}

sub help {
print <<"HELP";
usage: $0 [options]\n
options :
-g : (re)generate a simple menu
-i : (re)generate a menu with icons
-r : rewrite the configuration file

* Menu : $menufile
* Icons : $icons_path
* Config : $config_file\n
HELP
exit;
}

help() unless @ARGV;

my @desktop_files;

sub push_more {
opendir(my $dir_h, $_[0]) or return;
while (defined(my $file = readdir $dir_h)) {
push @desktop_files, "$_[0]/$file" if substr($file, -8) eq '.desktop';
}
closedir $dir_h;
}

do $config_file; # load config

foreach my $dir (@{$CONFIG->{desktop_files_paths}}) {
opendir(my $dir_h, $dir);
while (defined(my $file = readdir $dir_h)) {
push @desktop_files, "$dir/$file" and next if substr($file, -8) eq '.desktop';
if ($file ~~ [q{.}, q{..}]) { next }
push_more("$dir/$file") if -d "$dir/$file";
}
closedir $dir_h;
}

unless (-e "$menufile.backup") {
if (-e $menufile) {
print "\n* Creating backup of menu at: $menufile.backup\n";
rename $menufile, "$menufile.backup" or warn "[!] Unable to rename menu to menu.backup: $!\n";
}
else {
warn "\n[!] Unable to find: $menufile\n";
}
}

my $icon_theme;
my $gtk_rc = "$home_dir/.gtkrc-2.0";
if (-r $gtk_rc) {
if (open my $gtkrc_fh, '<', $gtk_rc) {
while (defined(my $line = <$gtkrc_fh>)) {
if ($line =~ /^\s*gtk-icon-theme-name=["']?([^'"\r\n]+)/i) {
$icon_theme = $1;
last;
}
}
close $gtkrc_fh;
}
}

my ($generated_menu, @generated_menu, %icons, @locate, $icon_file);

if ($generate_menu or $icons) {
print "\n* Generating menu...\n";
generate_menu();
}

sub store_icons {
s/\.\w{3}$// or return;
return 1 if exists $icons{$_};
$icons{$_} = $File::Find::name;
return 1;
}

sub look_for_icons {
my ($icon_name) = @_;

if (defined $icon_name) {
$icon_name = unpack('A*', $icon_name);
}

if (length $icon_name) {
if (chr ord $icon_name eq '/') {
return $icon_name if -f $icon_name;
}
else {
$icon_name =~ s/\.\w{3}$//;
}
}
else {
return '';
}

return $icons{$icon_name} if exists $icons{$icon_name};

if ($icons and not keys %icons) {
my $personal_theme;

if (-d "/usr/share/icons/$icon_theme/") {
$personal_theme = "/usr/share/icons/$icon_theme/";
}
elsif (-d "$home_dir/.icons/$icon_theme/") {
$personal_theme = "$ENV{'HOME'}/.icons/$icon_theme/";
}
elsif (-d "$home_dir/.local/share/icons/$icon_theme/") {
$personal_theme = "$home_dir/.local/share/icons/$icon_theme/";
}

if (defined $icon_theme) {
if (defined $personal_theme) {
find(\&store_icons, $personal_theme);
}
find(
\&store_icons,
grep { -d }
('/usr/share/pixmaps/', '/usr/share/icons/hicolor/', "$home_dir/.local/share/icons", "$home_dir/.icons/")
);

if (-d '/usr/share/icons/gnome/' and not $icon_theme =~ /^gnome$/i) {
find(\&store_icons, '/usr/share/icons/gnome/');
}
}
else {
find(
\&store_icons,
grep { -d } (
'/usr/share/icons/hicolor/', '/usr/share/pixmaps/',
"$home_dir/.local/share/icons", "$home_dir/.icons/",
'/usr/share/icons/'
)
);
}
}
return $icons{$icon_name} // '';
}

sub add_item {
my ($command, $name, $icon) = @_;
$icon = look_for_icons($icon) unless -f $icon;
$name =~ s/\)/\\)/g;
$command =~ s/\}/\\}/g;
$generated_menu .= " [exec] ($name) {$command} <$icon>\n";
return 1;
}

sub push_app {
my ($array_ref, $cat_id, $cat_name, $icon) = @_;

if ($icons) {
$icon //= $cat_id;
$icon =
-f "$icons_dir/$icon.png" ? "$icons_dir/$icon.png"
: -f "$icons_dir/$cat_id.png" ? "$icons_dir/$cat_id.png"
: look_for_icons($icon);
}
$icon //= '';

$generated_menu .= qq[\n[submenu] ($cat_name) <$icon>\n];
$generated_menu .= join(
'',
(
sort { lc $a cmp lc $b }
map {
$_->[0] =~ s/\)/\\)/g;
$_->[1] =~ s/\}/\\}/g;
$_->[2] //= $icon;
qq[ [exec] ($_->[0]) {$_->[1]} <$_->[2]>\n];
} @{$array_ref}
)
);
$generated_menu .= "[end]\n";
return 1;
}

sub generate_menu {
my $date = localtime time;
$generated_menu = <<"HEADER";
# Fluxbox Right-Click Menu - Config file
# Generated on $date
# Generated with $pkgname (Fluxbox Menu Generator) v$version\n
[begin] ($CONFIG->{title})
[encoding] {UTF-8}
HEADER

my (@config_menu) = (
[q[Edit fluxbox's startup file], "$CONFIG->{open_in_editor} $ENV{'HOME'}/.fluxbox/startup"],
[q[Edit fluxbox's init file], "$CONFIG->{open_in_editor} $ENV{'HOME'}/.fluxbox/init"],
[q[Edit fluxbox's keys file], "$CONFIG->{open_in_editor} $ENV{'HOME'}/.fluxbox/keys"],
["Edit ${pkgname}'s menu", "$CONFIG->{open_in_editor} $menufile"],
["Edit ${pkgname}'s config", "$CONFIG->{open_in_editor} $config_file"],
);

my %categories;
foreach my $category (@$SCHEMA) {
next unless exists $category->{cat};
my $cat = lc $category->{cat}[0];
$cat =~ tr/_a-z/_/c;
$categories{$cat} = ();
$category->{cat}[0] = $cat;
}

my $desktop_fh;
foreach my $desktop_file (@desktop_files) {

my $file;
sysopen $desktop_fh, $desktop_file, 0;
sysread $desktop_fh, $file, -s $desktop_file;

next if index($file, "\nNoDisplay=true") != -1;

foreach my $category (
split(
';',
do { $file =~ /\nCategories=(.+)/ || next; lc $1 }
)
) {
$category =~ tr/_a-z/_/c;
next unless exists $categories{$category};
my ($execname) = $file =~ /\nExec=([^%\n]+)/;

if (index($file, "\nTerminal=true") != -1) {
$execname = sprintf($CONFIG->{open_in_terminal}, $execname);
}

my ($name) = $file =~ /\nName=(.+)/;

my $icon = '';
if ($icons) {
($icon) = $file =~ /\nIcon=(.+)/;
$icon = look_for_icons($icon);
}
push @{$categories{$category}}, [$name, $execname, $icon];
}
}
close $desktop_fh;

foreach my $schema (@$SCHEMA) {
if (exists $schema->{cat}) {
next unless defined $categories{$schema->{cat}[0]};
next unless @{$categories{$schema->{cat}[0]}};
push_app(\@{$categories{$schema->{cat}[0]}}, $schema->{cat}[0], $schema->{cat}[1], $schema->{cat}[2]);
@{$categories{$schema->{cat}[0]}} = ();
}
elsif (exists $schema->{item}) {
add_item(@{$schema->{item}});
}
elsif (exists $schema->{config}) {
push_app(\@config_menu, 'config', $schema->{config});
}
elsif (exists $schema->{exit}) {
$generated_menu .= $icons ? "[exit] ($schema->{exit}) <$icons_path/exit.png>\n" : "[exit] (Exit)\n";
}
elsif (exists $schema->{sep}) {
$generated_menu .= "[separator]\n";
}
elsif (exists $schema->{regenerate}) {
require Cwd;
my $regenerate_exec = "$^X " . Cwd::abs_path($0);
$regenerate_exec .= $icons ? ' -i' : ' -g';
$generated_menu .= "[exec] ($schema->{regenerate}) {";
if ($icons) {
$generated_menu .= "$regenerate_exec} <$icons_path/regenerate.png>\n";
}
else {
$generated_menu .= "$regenerate_exec}\n";
}
}
elsif (exists $schema->{raw}) {
$generated_menu .= "$schema->{raw}\n";
}
elsif (exists $schema->{fluxbox}) {
$generated_menu .=
$icons
? "[submenu] ($schema->{fluxbox}) <$icons_dir/fluxbox.png>\n"
: "[submenu] ($schema->{fluxbox})\n";
$generated_menu .= <<"FOOTER";
[config] (Configure)
[submenu] (System Styles) {Choose a style...}
[stylesdir] (/usr/share/fluxbox/styles)
[end]
[submenu] (User Styles) {Choose a style...}
[stylesdir] (~/.fluxbox/styles)
[end]
[workspaces] (Workspace List)
#[submenu] (Tools)
# [exec] (Screenshot - JPG) {import screenshot.jpg && display -resize 50% screenshot.jpg}
# [exec] (Screenshot - PNG) {import screenshot.png && display -resize 50% screenshot.png}
# [exec] (Run) {fbrun}
# [exec] (Regen Menu) {fluxbox-generate_menu}
#[end]
[submenu] (Window Managers)
[restart] (openbox) {openbox}
[end]
# [commanddialog] (Fluxbox Command)
[submenu] (Wallpaper)
[wallpapers] (/usr/share/backgrounds/) {feh --bg-scale}
[end]
[reconfig] (Reload config)
[restart] (Restart)
# [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center}
[separator]
[exit] (Exit)
[end]
FOOTER
}
}

$generated_menu .= "\n[endencoding]\n[end]\n";

open my $menu_fh, '>', $menufile or die "\nCannot open $menufile for write: $!\n";
print {$menu_fh} $generated_menu;
close $menu_fh;

print "\n* Menu successfully generated !\n\n";
exit 0;
}

Спасибо сказали:

vsdfn
Сообщения: 147
ОС: Windows,Linux,BSD

Re: FluxBox

Сообщение vsdfn »

как именуется параметр, с помощью которого задается цвет шрифта активного\неактивного таба окна(имеется ввиду таба окна в панели)
Спасибо сказали:

Аватара пользователя
minoru-kun
Сообщения: 620
ОС: Debian GNU/Linux

Re: FluxBox

Сообщение minoru-kun »

Как сделать, чтобы тулбар не отбрасывал тень на окна с запущенным xcompmgr?
Спасибо сказали:

Аватара пользователя
xar0h
Сообщения: 164
ОС: разные

Re: FluxBox

Сообщение xar0h »

Давненько не юзал флюкс, может подскажет кто — есть ли возможность отследить какое приложение задает фон рабочего стола, а то в ~/.fluxbox/startup закинул команду, которая юзает feh, а фон меняется только после того как введешь её в терминале или в лаунчпаде, вызываемом по alt+F2. Видать где-то ещё есть команда, задающая фон.
ps в ~/.fluxbox/log флюкс ничего интересного не пишет (
I'm just a bastard but at least i admit it.
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 1464
ОС: gentoo fluxbox

Re: FluxBox

Сообщение yoricI »

У меня в /home/globus/.fluxbox/overlay прописано:
! background: none - это коммент background: fullscreen background.pixmap: /home/ALLES/foto/norilsk/SAT/Map.jpg
И он сам своими силами рисует.
Спасибо сказали:

Аватара пользователя
xar0h
Сообщения: 164
ОС: разные

Re: FluxBox

Сообщение xar0h »

Возможно уже и не важно, но раз уж в кой-то веки зашел — отпишусь. Feh отрабатывал штатно, а потом background так же штатно меняла строка из темы оформления.
I'm just a bastard but at least i admit it.
Спасибо сказали: