Commit Graph

268 Commits

Author SHA1 Message Date
Aldo Cortesi 4723ab3627 This patch is a first draft of independently targetable textboxes, and a
protocol to speak to them. Given a textbox widget definition like this:

        textbox mail {
            default = 0
        }
        textbox time {}

We can update the boxes individually by going:

    echo 0 tell_widget mail 10
    echo 0 tell_widget time 12:01

Text boxes will dynamically resize to fit their contents. A textbox can be
cleared by going:

    echo 0 tell_widget name

A text-box containing no text will take up 0 space in the bar, i.e. it will not
be visible at all

Textboxes now supersede statusbar_set_text, so this call has been removed.
2007-12-17 18:22:05 +01:00
Aldo Cortesi ff84907b38 Use WidgetList for lookups, rather than recreating the data. 2007-12-17 18:21:59 +01:00
Julien Danjou f0f522bd47 move things around
- rename parse_config to config_parse
- move KeyModList and ButtonList in their own functions
- move LayoutsList in layout.c
- move static fcts around in config.c
2007-12-16 13:24:12 +01:00
Aldo Cortesi 5923c90aaa Solidify widgets.
Factor out common initialisation into a common_new function. Copy the section
title into the Widget title attribute.
2007-12-16 12:57:47 +01:00
Aldo Cortesi 65fd8d48f0 The beginnings of a more flexible widget configuration.
The problem is as follows. In the end, different types of widget are going to
have distinct configurable options. This means that we need to have a
different section type for every widget type, if we are ever to make the
configuration nice. In fact, a configuration syntax like this would suit us
very well:

    textbox name {
        foo = bar
    }
    focuslist name2 {
        bar = voing
    }

This is all very well, but libconfuse has a limitation - there is no "nice"
way to retrieve the order of disparate sections (i.e. sections of different
types), and order is important to us. This patch goes to some effort to
retrieve the section order by extracting an array of widgets, and sorting them
based on line number.
2007-12-16 12:57:03 +01:00
Aldo Cortesi 6e8b1383fe Various doc comment fixes. 2007-12-16 12:13:07 +01:00
Aldo Cortesi 2f74c079aa Massive, massive interface refactoring.
The big change here is that we now keep our configuration structure in a global
variable called globalconf. This radically simplifies many interfaces, since
passing awesomeconf everywhere is no longer necessary. There are also more
subtle interface effects - now we can reliably identify a screen from just a
screen ID, rather than an awesomeconf, screenid tuple.

Overall, this patch makes most of the interfaces in awesome much nicer to use -
enjoy!

Yes, this is a huge patch, but since a lot of the refactoring was done
systematically using vim macros, splitting this up would have been very hard.
2007-12-16 12:12:48 +01:00
Aldo Cortesi ec80635cbc Fix compilation warning related to parsing of statusbar widgets config.
Also make the code surrounding this problem more legible, and remove
Widget_ptr, which just confuses the issue.
2007-12-16 12:00:00 +01:00
Julien Danjou 602f921559 first try to get widget configurable 2007-12-15 18:21:02 +01:00
Julien Danjou aacb020564 rename statusbar functions 2007-12-14 20:10:52 +01:00
Julien Danjou bb1381abc2 make tags a linked list instead of array 2007-12-14 19:05:30 +01:00
Julien Danjou b03cdbd877 remove nlayouts 2007-12-14 17:57:05 +01:00
Julien Danjou b9320be372 add spiral and dwindle layouts (fibonacci) 2007-12-14 17:05:29 +01:00
Julien Danjou 84bb954004 rename statusbar uicb and add uicb_statusbar_set_position 2007-12-14 15:52:52 +01:00
Julien Danjou 6241354fec prefix eprint() with awesome: 2007-12-13 15:20:42 +01:00
Julien Danjou 11effcd7af remove awesome: for warn() calls 2007-12-13 14:03:55 +01:00
Julien Danjou b313f266c8 cosmetic 2007-12-13 12:15:42 +01:00
Aldo Cortesi c9dc57c756 Add a way to define key bindings in bulk, like this:
keylist
    {
        modkey = {"Mod4"}
        command = "client_tag"
        keylist = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
        arglist = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
    }

This patch also modifies the example awesomerc to use the new syntax. Should
be fully backwards compatible.
2007-12-13 11:50:21 +01:00
Julien Danjou 425f89bada remove dual-config: awesomerc is now preprocessed and compiled in awesome 2007-12-13 11:16:43 +01:00
Julien Danjou ecf6f6ebbb save default configuration file on first run without conf file 2007-12-13 11:04:48 +01:00
Julien Danjou 6e01126101 honor aspect ratio by default 2007-12-13 10:16:41 +01:00
Aldo Cortesi c7a4a54b47 Use warn function throughout project. 2007-12-13 09:59:46 +01:00
Julien Danjou 5fa67c23df split awesomeconf and screen config
a.k.a the big post-2.0 blind commit
2007-12-11 20:56:51 +01:00
Julien Danjou e70dad3f02 add a default configuration when running awesome without configuration file 2007-12-10 11:54:00 +01:00
Nathan Hüsken 9524f15478 Adding padding 2007-11-28 11:00:48 +01:00
Julien Danjou db22906ba0 add CFG_END for mouse bindings where missing in config parser
Thanks rcs.
2007-11-22 10:48:09 +01:00
Julien Danjou 0fa1b4c822 move UicbList in uicb.c 2007-11-15 14:41:03 +01:00
Julien Danjou dae3bcd2c7 remove _ on view_prev and view_next to be homogeneous 2007-11-14 21:38:25 +01:00
Julien Danjou e43df90214 remove mouse modkey 2007-11-14 19:50:30 +01:00
Julien Danjou d9e5346048 print unknown command in config files on stderr 2007-11-14 18:28:28 +01:00
Julien Danjou 938850a487 rename setlayout to tag_setlayout 2007-11-14 18:19:00 +01:00
Julien Danjou 7c533b8b40 rename screen uicb correctly 2007-11-14 18:16:43 +01:00
Julien Danjou 895c3848eb rename uicb_*mouse to uicb_client_*mouse 2007-11-14 18:14:23 +01:00
Julien Danjou 85adc07d19 rename uicb_set* to uicb_tag_set* since they apply on tags 2007-11-14 18:12:33 +01:00
Julien Danjou aee9cdf8cb prefix a bunch of uicb with client_ 2007-11-14 18:10:51 +01:00
Julien Danjou 6c0608660d rename view_tag* names to tag_view* 2007-11-14 18:07:38 +01:00
Julien Danjou 4ca7059efc rename uicb_view to uicb_tag_view 2007-11-14 18:07:38 +01:00
Julien Danjou bfde2f3211 rename uicb_toggletag to uicb_client_toggletag 2007-11-14 18:07:38 +01:00
Julien Danjou 10391f3190 rename uicb_toggleview to uicb_tag_toggleview 2007-11-14 18:07:38 +01:00
Julien Danjou f4390bfc3e rename uicb_togglefloating to uicb_client_togglefloating 2007-11-14 18:07:38 +01:00
Julien Danjou 5b0987bb28 rename uicb_tag to uicb_client_tag 2007-11-14 18:07:38 +01:00
Julien Danjou 455ef2e1d7 rename uicb_swap{prev,next} to uicb_client_swap{prev,next} 2007-11-14 18:07:35 +01:00
Julien Danjou 8b933e196b rename uicb_settrans to uicb_client_settrans 2007-11-14 17:52:49 +01:00
Julien Danjou b594731fc2 rename uicb_moveresize to uicb_client_moveresize 2007-11-14 17:51:22 +01:00
Julien Danjou c5ee95992c rename uicb_killclient to uicb_client_kill 2007-11-14 17:50:16 +01:00
Julien Danjou 7a919a76fb mouse button clicks on windows are now configurable 2007-11-14 17:18:16 +01:00
Julien Danjou cfa31c399d introduce mouse.[ch] files and move uicb_mouse*() to them 2007-11-13 22:57:57 +01:00
Julien Danjou 2fb7b4d69a fix Rule linked list handling in config
it seems that I was interrupted when I was coding new Rule handling in linked list
2007-11-13 22:29:33 +01:00
Julien Danjou 06dc3ba221 add new rules.c file with new functions for using Rule-s struct 2007-11-13 21:41:57 +01:00
Julien Danjou adcadddc46 define RULE_NOSCREEN -1 2007-11-12 19:35:31 +01:00
Julien Danjou 9f21fb3c9e rules are now stored in a linked list 2007-11-12 19:25:10 +01:00
Julien Danjou 4d3468d3a2 check that screen number in rules is not >= screen count 2007-11-12 19:09:05 +01:00
Julien Danjou f70424487e screen can now be specified in rules 2007-11-12 18:21:03 +01:00
Julien Danjou 0c5c5ce426 remove nkeys: keys is now a linked list 2007-11-12 17:22:40 +01:00
Julien Danjou 69c235280d resizemouse() is now an uicb function 2007-11-12 14:06:59 +01:00
Julien Danjou f72c1bb54c movemouse() is now an uicb function 2007-11-12 14:02:52 +01:00
Julien Danjou ef7034b0b8 use linked list instead of tabs for mouse bindings 2007-11-12 13:21:28 +01:00
Julien Danjou ab1b1ed46e make parse_mouse_bindings() handle the tag case 2007-11-12 12:07:18 +01:00
Julien Danjou 54f0c86934 factorize mouse bindings parsing code 2007-11-12 11:59:57 +01:00
Julien Danjou 05e102a49a mouse clicks on root window are now configurable 2007-11-12 10:55:21 +01:00
Julien Danjou 05dad60786 experimental support for status bar to be on right or left 2007-11-11 18:59:11 +01:00
Julien Danjou 4e14888e73 use a more generic mouse_opt 2007-11-11 16:48:19 +01:00
Julien Danjou 0bee56e27d mouse buttons are now configurable for click on layout symbols 2007-11-11 16:01:49 +01:00
Julien Danjou 99370f0ccd mouse buttons are now configurable for click on title bar 2007-11-11 15:55:13 +01:00
Julien Danjou a75c7f694a mouse buttons are now configurable for click on tag names 2007-11-11 15:40:01 +01:00
Julien Danjou 7604fa70b5 introduce mouse section in config file 2007-11-11 13:17:23 +01:00
Julien Danjou 799da178b0 layouts are now configurable per screen 2007-11-11 12:05:04 +01:00
Julien Danjou 1c9c2b9309 general options are now configurable per screen 2007-11-11 12:02:16 +01:00
Julien Danjou 9d6a985a02 colors are now configurable per screen 2007-11-11 11:58:58 +01:00
Julien Danjou ceb6cc797a ncol is now configurable per tag 2007-11-11 11:55:20 +01:00
Julien Danjou 59f377526f nmaster is now configurable per tag 2007-11-11 11:53:10 +01:00
Julien Danjou 32b098796e mwfact is now configurable per tag 2007-11-11 11:48:26 +01:00
Julien Danjou a30227e27b tags are now per screen configurable 2007-11-11 11:36:30 +01:00
Julien Danjou 1004cefa2f Remove current tab support
We will add a real new one later.
2007-11-10 10:45:32 +01:00
Julien Danjou 602d92d8b2 move statusbar_default_position in Statusbar struct 2007-11-10 10:17:54 +01:00
Julien Danjou 6fae35349a Implement per screen configuration for statusbar.
Others will come later.
2007-11-09 14:45:43 +01:00
Nikos Ntarmos 89e16fad93 reset correctly active tag on reload 2007-11-08 11:23:04 +01:00
Nikos Ntarmos be61dcdddf store configpath in awesomeconf 2007-11-08 11:22:25 +01:00
Julien Danjou d9b49f546e config: print useful error messages on parsing error or config file error 2007-10-31 15:11:39 +01:00
Julien Danjou 93310f673d uicb_reloadconfig: delete savetagclientsel 2007-10-31 11:49:51 +01:00
Julien Danjou 3328104ccd use a_str* functions instead of str* 2007-10-31 11:47:22 +01:00
Julien Danjou 04255a9251 simplify savetagclientsel 2007-10-31 11:43:17 +01:00
Julien Danjou 582c81a3d0 uicb_reloadconfig: cosmetic and simplify clients pointer 2007-10-31 11:41:50 +01:00
Nikos Ntarmos 983d2d72a6 implement uicb_reloadconfig 2007-10-31 11:37:38 +01:00
Nikos Ntarmos bf90028edb modify parse_config() to not take display and screen as arg 2007-10-30 14:57:00 +01:00
Julien Danjou 0c826b8ab3 add RELEASE in config.mk 2007-10-29 17:16:33 +01:00
Florian Forster ba80b49fd4 config.c: Fix a segfault when an invalid `ModKey' is specified.
Signed-off-by: Florian Forster <octo@verplant.org>
2007-10-27 18:09:07 +02:00
Florian Forster 71e6e4db65 config.c: Print an appropriate error message when reading the configuration fails.
Signed-off-by: Florian Forster <octo@verplant.org>
2007-10-27 18:09:07 +02:00
Julien Danjou 9d507dc50c rewrite get_current_tag_number() in get_current_tag() 2007-10-26 22:15:26 +02:00
Nikos Ntarmos 4db1146f6c Remember the focused window on tag changes
a. Adds a get_current_tag_number function to allow for above updates
and teaches get_current_layout(...) and arrange(...) to use it.
b. Adds an extra client_sel entry in struct Tag, updated on
focus(...), manage(...), and unmanage(...), and used in arrange(...).
2007-10-25 20:20:13 +02:00
Julien Danjou 842eed01c0 remove current_layout, insert get_current_layout() to get it dynamicly 2007-10-16 22:33:15 +02:00
Julien Danjou b1e22e1d8b cosmetic 2007-10-15 17:33:28 +02:00
Julien Danjou 14ea2dc0ae minimal tab support 2007-10-15 16:28:36 +02:00
Julien Danjou a74ca1d1de tabswidth is 4 not 6 2007-10-15 13:56:24 +02:00
Julien Danjou 4e0acfa99a add coding style stuff 2007-10-15 13:40:52 +02:00
Julien Danjou 4a7acf821e remove Regs struct, use Rules 2007-10-15 12:40:45 +02:00
Julien Danjou 77609263dc move txtlenwidth initlization in initstatusbar() 2007-10-15 12:06:43 +02:00
Julien Danjou d75a512f5d fix headers inclusion 2007-10-15 11:53:10 +02:00
Nikos Ntarmos 23bbe21428 float lowering 2007-10-12 17:15:08 +02:00
Julien Danjou a6781157b6 allow to execute uicb function via awesome control fifo 2007-10-12 17:10:36 +02:00
Julien Danjou daee37199b move #define of config file name in config.c 2007-10-12 13:09:59 +02:00
Julien Danjou 445479cf8b use Cairo for rendering square instead of Xlib 2007-10-10 19:59:14 +02:00
Julien Danjou 503e2050c5 bugfix: don't check for current_layout a this moment
fix regression introduced by myself with latest patch from daniel
2007-10-10 19:03:23 +02:00
daniel@brinkers.de 9d95d4691c tags default layout
this patch should consider the tags default layout, given in the config
file. It also set the layout to default, when awesome is restarted.
2007-10-10 18:57:26 +02:00
Julien Danjou e733af41ec remove drawcontext everywhere 2007-10-10 14:09:36 +02:00
Julien Danjou f57d275df1 move font to awesomeconf 2007-10-10 13:34:25 +02:00
Julien Danjou 1a755ff245 simplify color handling 2007-10-10 13:07:12 +02:00
Julien Danjou 08033b1643 bugfix: print layout symbol in status bar
Thanks to Daniel Brinkers
2007-10-09 17:31:44 +02:00
Julien Danjou de45017b5d switch to libconfuse instead of libconfig 2007-10-08 18:45:05 +02:00
Julien Danjou 3046af6f54 new feature: add option to center pointer on focused client 2007-10-08 14:26:43 +02:00
Julien Danjou 46cde2d95c bugfix: resize_hint is a bool, not a float 2007-10-08 10:26:47 +02:00
Julien Danjou 96e80f1e83 bugfix: die nicely if no default layout 2007-10-05 09:37:40 +02:00
Julien Danjou 97a2085705 cosmetic: remove lines with empty spaces at end 2007-10-03 17:26:14 +02:00
Julien Danjou 272f4b1c2a Xft support 2007-10-01 19:22:57 +02:00
Julien Danjou 9c747d1986 store display in awesomeconf 2007-10-01 15:31:43 +02:00
Julien Danjou 8c531e2a81 store phys_screen 2007-10-01 15:23:05 +02:00
Julien Danjou a6943aa3f3 add uicb_exec 2007-09-28 13:39:46 +02:00
Julien Danjou 6efc6de67e use get_real_screen() in initcolor() 2007-09-28 11:37:36 +02:00
Julien Danjou ca363aa248 add uicb_movetoscreen() 2007-09-27 22:29:09 +02:00
Julien Danjou ecf79693a2 use real_screen for X functions, not logical screen 2007-09-27 17:13:31 +02:00
Julien Danjou 9dad2fd85c add -c option to specify configuration file 2007-09-26 21:22:30 +02:00
Julien Danjou c81d40f15e change initcolor() proto 2007-09-26 20:21:09 +02:00
Julien Danjou 6f3e0a3a2d change initfont proto 2007-09-26 20:18:49 +02:00
Julien Danjou bf0ddca247 remove set_default_configuration() 2007-09-26 20:16:04 +02:00
Julien Danjou a22b4c1008 new feature: add swap{next,prev} for reordering visible windows 2007-09-25 12:41:36 +02:00
Julien Danjou 256717c792 add a_strncmp() to util.h and use a_str*() functions everywhere 2007-09-24 17:58:50 +02:00
Julien Danjou 595eba78d7 create a Tag struct type and use it 2007-09-24 15:37:52 +02:00
Julien Danjou 32654ce496 new feature: add focus{next,prev}screen ui_callback functions
this allows to switch focused screen in multi-head (zaphod) mode
2007-09-24 14:21:49 +02:00
Julien Danjou 40384806fd use a_strcmp() instead of strcmp() 2007-09-21 17:32:00 +02:00
Julien Danjou c80855836a new feature: add max layout 2007-09-21 00:30:32 +02:00
Julien Danjou 03ee9ce9d1 rename some tag_view UI callback functions and add uicb_tag_viewprev uicb_tag_viewnext as bindable 2007-09-20 22:24:52 +02:00
Julien Danjou 2f43209c34 fix toggle floating with Button2 in tileleft layout, and prefix layout functions with layouts_ 2007-09-20 22:07:59 +02:00
Julien Danjou 8965fd87d2 fix font loading on failure 2007-09-19 18:00:21 +02:00
Julien Danjou 9919ba2d4b add uicb_setborder to change conf borderpx while running 2007-09-18 23:36:52 +02:00
Julien Danjou 57bb886dae remove spiral from layouts 2007-09-18 22:59:16 +02:00
Julien Danjou 62a43c0f8c allow awesome to be run without configuration file 2007-09-18 22:49:46 +02:00
Julien Danjou c3bb58f47a stop making awesomelibconf global and store screen number in awesome_configs
we strdup elems and p_delete them in cleanup
2007-09-16 23:13:34 +02:00
Julien Danjou 6e7eb17404 try to load fixed font if other fails 2007-09-15 21:40:57 +02:00
Julien Danjou 3e3f213b72 move uicb_togglebar to statusbar.c 2007-09-15 15:34:28 +02:00
Julien Danjou 56a387ec5c move updatebarpos to statusbar.c 2007-09-15 15:26:51 +02:00
Julien Danjou fe89aa31b0 create statusbar.c and move things from draw.c 2007-09-15 15:16:53 +02:00
Julien Danjou c5211cc8d1 change key for statusbar position config 2007-09-15 15:00:42 +02:00
Julien Danjou bc3f70e0fa add uicb_setncols(), clean config, really use config in tile.c 2007-09-15 13:04:36 +02:00
Julien Danjou 9a1201c7a5 remove grid layout 2007-09-15 12:39:33 +02:00
Julien Danjou ceb7e60ee0 remove bstack layout 2007-09-15 12:37:34 +02:00
Julien Danjou 2535e92ff6 fix bug with parsing barpos 2007-09-13 23:17:50 +02:00
Julien Danjou 4925ff0c7a rename spawn to uicb_spawn and fix buggy proto 2007-09-12 18:19:28 +02:00
Julien Danjou 8fb0e0e73e remove uicb_reload functions, cannot work for now 2007-09-12 17:25:51 +02:00
Julien Danjou 9897e5a839 remove DC from global in draw.c 2007-09-12 16:55:47 +02:00
Julien Danjou 7659289b9e chance license to GPLv2 2007-09-12 14:29:51 +02:00