Commit Graph

3738 Commits

Author SHA1 Message Date
Michael Stapelberg de94f6da1a Introduce splith/splitv layouts, remove orientation
With this commit, the "default" layout is replaced by the splith and
splitv layouts. splith is equivalent to default with orientation
horizontal and splitv is equivalent to default with orientation
vertical.

The "split h" and "split v" commands continue to work as before, they
split the current container and you will end up in a split container
with layout splith (after "split h") or splitv (after "split v").

To change a splith container into a splitv container, use either "layout
splitv" or "layout toggle split". The latter command is used in the
default config as mod+l (previously "layout default"). In case you have
"layout default" in your config file, it is recommended to just replace
it by "layout toggle split", which will work as "layout default" did
before when pressing it once, but toggle between horizontal/vertical
when pressing it repeatedly.

The rationale behind this commit is that it’s cleaner to have all
parameters that influence how windows are rendered in the layout itself
rather than having a special parameter in combination with only one
layout. This enables us to change existing split containers in all cases
without breaking existing features (see ticket #464). Also, users should
feel more confident about whether they are actually splitting or just
changing an existing split container now.

As a nice side-effect, this commit brings back the "layout toggle"
feature we once had in i3 version 3 (see the userguide).

AFAIK, it is safe to use in-place restart to upgrade into versions
after this commit (switching to an older version will break your layout,
though).

Fixes #464
2012-08-04 03:13:24 +02:00
Michael Stapelberg 077e021e26 tests: implement --xtrace in complete-run.pl 2012-08-04 03:12:06 +02:00
Michael Stapelberg 1b3435807a add missing \n in debug message 2012-08-04 03:12:06 +02:00
Michael Stapelberg dbd248fe1f makefile: store $I3_VERSION in dist tarballs
This is necessary because the autobuilder uses a dist tarball to build
i3 from. If we store $VERSION, the autobuiluder binaries will not run in
developer mode, thus defeating the purpose of developer mode.
2012-08-04 01:11:55 +02:00
Michael Stapelberg cc7f16007a Display i3-nagbar when commands lead to an error
e.g. pressing Mod1+x when having the following in your configfile:

    bindsym Mod1+x some invalid command

will lead to an i3-nagbar instance popping up, offering you to view the
error log (which will contain parser errors from this commit on).
2012-08-02 17:45:09 +02:00
Michael Stapelberg 9191b56924 config: require confirmation when exiting i3 (Thanks Felicitus)
Fixes #751
2012-08-02 16:17:42 +02:00
Michael Stapelberg 4cba4c89ad Add xfce4-terminal to i3-sensible-terminal
Fixes #753
2012-08-02 15:20:17 +02:00
Michael Stapelberg 9f05354c1f cfgparse: Write custom scripts for i3-sensible-terminal
This workaround is necessary for terminal emulators which parse -e in a
different way: some accept a list of arguments (-e command arg1 arg2 …),
some accept only one argument (-e "command arg1 arg2 …"). Therefore, we
just create a script and pass that as the one and only argument.
2012-08-02 15:17:10 +02:00
Michael Stapelberg c64047157d config-wizard: use the level 0 keysym whenever it’s unambiguous
From the code:

    Try to use the keysym on the first level (lower-case). In case
    this doesn’t make it ambiguous (think of a keyboard layout
    having '1' on two different keys, but '!' only on keycode 10),
    we’ll stick with the keysym of the first level.

    This reduces a lot of confusion for users who switch keyboard
    layouts from qwerty to qwertz or other slight variations of
    qwerty (yes, that happens quite often).
2012-08-02 02:14:56 +02:00
darkraven 875130e7e8 Automatically hide i3bar when it's unneeded.
When a workspace marked 'urgent', i3bar unhide
itself. if I want to hide it again, I must press the
modifier.This sometimes annoys me.

In this patch I change the above behavior to this:
If a urgent workspace occurs, i3bar will unhide itself;
and when you navigates away from the last urgent
workspace and there is no more urgent workspace, i3bar
will hide itself.
2012-08-02 01:44:25 +02:00
Quentin Glidic 395a6aaee5 common.mk: Rework version usage 2012-07-30 21:13:03 +02:00
Michael Stapelberg ea31cde43b docs/ipc: update links to libraries 2012-07-23 11:03:16 +02:00
Michael Stapelberg b8d77eb59e docs/ipc: document the 'window' field (Thanks jh)
fixes #758
2012-07-23 11:01:52 +02:00
Michael Stapelberg 0f22b105c1 Fix linking by linking libi3 first and its dependencies afterwards
Interestingly, compilation was only broken on some systems apparently
2012-07-23 10:56:44 +02:00
Quentin Glidic eb66337020 common.mk: Little reordering 2012-07-23 00:13:16 +02:00
Quentin Glidic 0b4ee7a1da common.mk: Split XCB common flags 2012-07-23 00:12:55 +02:00
Quentin Glidic 5e0cd52f10 common.mk: Split XCB keyboard flags 2012-07-23 00:06:37 +02:00
Quentin Glidic 51a0f312f2 common.mk: Split WM XCB flags 2012-07-23 00:04:01 +02:00
Quentin Glidic fde8c0dd85 common.mk: Split Xlib flags 2012-07-23 00:04:01 +02:00
Quentin Glidic 5cf3751482 common.mk: Move -lm to i3_LIBS 2012-07-22 23:53:51 +02:00
Quentin Glidic 60bc6b0400 common.mk: Split Xcursor flags 2012-07-22 23:53:51 +02:00
Quentin Glidic 85b261c162 common.mk: Split yajl flags 2012-07-22 23:53:51 +02:00
Quentin Glidic 30934ea316 common.mk: Split libev flags 2012-07-22 23:53:51 +02:00
Quentin Glidic 79fc8462c0 common.mk: Split libpcre flags 2012-07-22 23:53:51 +02:00
Quentin Glidic e232c06885 common.mk: Split libstartup-notification flags 2012-07-22 23:53:51 +02:00
Quentin Glidic c7029a5e21 common.mk: Introduce I3_*FLAGS
CPPFLGES, CFLAGS and LDFLAGS should be user variables
We now provide default flags but use I3_*FLAGS flags for our own needed
flags

Also reoder lib flags a bit
2012-07-22 23:53:49 +02:00
Quentin Glidic 3b1b72ecbb *.mk: Support passing specific CFLAGS/LIBS 2012-07-22 23:53:13 +02:00
Michael Stapelberg ac7278eb1a resizing: traverse containers up properly (+test) (Thanks oblique)
In certain situations (when you have a h-split within a h-split) you
couldn’t properly resize previously. This commit makes the resize
command properly traverse up the containers.

fixes #754
2012-07-22 21:37:26 +02:00
Michael Stapelberg a97e70d483 Merge branch 'master' into next 2012-07-22 21:26:00 +02:00
Michael Stapelberg fbff593f1e Merge branch 'fix-resize-retcode' 2012-07-22 21:25:53 +02:00
Michael Stapelberg 83dc5d5cb6 Bugfix: Fix duplicate return value for 'resize' command 2012-07-22 21:25:38 +02:00
Michael Stapelberg 45b3033996 debian: i3bar.1 has been moved to man/ 2012-07-22 21:07:32 +02:00
Michael Stapelberg d555872753 Bugfix: include i3-input/i3-input.mk in the dist tarballs 2012-07-22 21:04:35 +02:00
Quentin Glidic 8029fae6a9 Move mans to the new Makefile layout 2012-07-22 20:27:13 +02:00
Quentin Glidic e452acb30e Add stub Makefiles to allow subdir make calls 2012-07-22 19:57:48 +02:00
Quentin Glidic 66adb62e1f Move docs to the new Makefile layout 2012-07-22 19:57:48 +02:00
Quentin Glidic 46713c9e6d Makefile: Remove SUBDIRS 2012-07-22 19:57:47 +02:00
Quentin Glidic 420019f2d0 Update .gitignore 2012-07-22 19:57:22 +02:00
Quentin Glidic 4c0b519976 Move i3-dump-log to the new Makefile layout 2012-07-22 19:57:22 +02:00
Quentin Glidic 1a1eb0f3f2 Move i3bar to the new Makefile layout 2012-07-22 19:57:22 +02:00
Quentin Glidic 8910a138ff Move i3-nagbar to the new Makefile layout 2012-07-22 19:57:22 +02:00
Quentin Glidic eb08d33692 Move i3-input to the new Makefile layout 2012-07-22 19:57:21 +02:00
Quentin Glidic bbede0ba00 Move i3-msg to the new Makefile layout 2012-07-22 19:57:21 +02:00
Quentin Glidic 0c2e4d8347 Move i3-config-wizard to the new Makefile layout 2012-07-22 19:57:21 +02:00
Quentin Glidic e3b9ffe381 Move libi3 to the new Makefile layout 2012-07-22 19:57:21 +02:00
Quentin Glidic 8853334bbe New Makefile layout, move i3 to it 2012-07-22 19:57:18 +02:00
Quentin Glidic 97d857a5d0 commom.mk: Support V make variable (verbose build) 2012-07-22 18:45:12 +02:00
Quentin Glidic bdc078914b i3: Replace loglevels by a global debug logging
File-limited were not used nor really useful
Besides, they are painful to maintain in Makefile rules compared to the
benefit
2012-07-22 18:41:12 +02:00
Michael Stapelberg 1f682eb9c8 Merge branch 'master' into next 2012-07-16 19:24:41 +02:00
Michael Stapelberg 167b38b184 Merge branch 'fix-yajl1-warnings' 2012-07-16 19:24:33 +02:00