Commit Graph

455 Commits

Author SHA1 Message Date
Ingo Bürk
f8a52f0862 Provide instructions on how to debug i3bar 2015-04-20 19:19:31 +02:00
Ingo Bürk
798e654af7 Adapt release.sh to update the latest version in the debugging docs. 2015-04-20 19:17:42 +02:00
Ingo Bürk
9613a0744d Added configuration directive for 'move [container|window] [to] mark <str>' 2015-04-19 20:57:44 +02:00
Michael Stapelberg
8a608ee63a Merge pull request #1632 from Deiz/binding-border
Add a --border flag to enable mouse binds to trigger on border click
2015-04-19 09:28:08 -07:00
hwangcc
2c77d7ceed Add a timeout: delay_exit_on_zero_displays
Outputs may disappear momentarily and come back later.
To prevent i3 from exit when no output is available momentarily, add a timeout delay_exit_on_zero_displays.
2015-04-11 22:13:10 +08:00
Ingo Bürk
40b9048102 Use a reasonable default sep_block_width if a separator_symbol is given 2015-04-06 15:43:47 +02:00
Ingo Bürk
a952ae74f4 Use a reasonable default sep_block_width if a separator_symbol is given 2015-04-03 22:54:59 +02:00
Deiz
601043cbf3 Update userguide for --border 2015-04-02 16:43:54 -04:00
Michael Stapelberg
15d516f58c Merge pull request #1628 from acrisci/feature/complete-run-coverage
complete-run: add coverage report generation
2015-04-02 00:33:05 -07:00
Ingo Bürk
df0e24cd2d Clarify that more than one atom is handled by i3 and describe briefly in which way. 2015-04-02 08:53:40 +02:00
Ingo Bürk
5d8dfe0ec5 Update docs to clarify that split containers get a representation of their children in the decoration 2015-04-02 08:53:40 +02:00
Ingo Bürk
fec96c57bc Reworded the documentation slightly and fixed the link to correctly point to Github. 2015-04-02 08:53:40 +02:00
Ingo Bürk
37811b67b0 Update the definition of the workspace spec and describe it. 2015-04-02 08:53:40 +02:00
Ingo Bürk
f35b666631 Update documentation to state that the configuration file is read by the custom parser as well. 2015-04-02 08:53:40 +02:00
Tony Crisci
c50ec2e4dc Document test coverage reporting for testcases 2015-04-01 18:19:18 -04:00
Ingo Bürk
0788f43db7 Updates userguide for 'no_focus <criteria>' (#1416) 2015-04-01 20:46:56 +02:00
Ingo Bürk
6036d4e506 Changed the default for show_marks from "no" to "yes" 2015-03-30 23:11:50 +02:00
Ingo Bürk
245a29e233 Make show_marks configurable
Introduce a config directive "show_marks [yes|no]" to en- or disable drawing marks on window decorations.
To not change the look & feel of existing configurations, the default is "no".
2015-03-30 23:11:50 +02:00
Ingo Bürk
195acb4911 Updated userguide for the directive focus_on_window_activation introduced in #1426. 2015-03-30 22:10:06 +02:00
Ingo Bürk
47222ab261 Updated docs for #1463 2015-03-29 21:21:50 +02:00
Michael Stapelberg
af71d3a2f1 Merge pull request #1590 from acrisci/bug/i3bar-no-markup-default
i3bar: don't parse markup on statusline by default
2015-03-28 10:08:41 +01:00
Tony Crisci
beaf904943 i3bar: don't parse markup on statusline by default
fixes #1565
2015-03-27 19:00:32 -04:00
Michael Stapelberg
00e86c4de4 Merge pull request #1580 from Airblader/feature-nop
Allow nop command without argument
2015-03-27 09:39:28 +01:00
Ingo Bürk
e0332b6f07 Allow nop command without argument
fixes #1318
2015-03-27 09:29:16 +01:00
Ingo Bürk
80da100ac8 Add support for a custom separator symbol
This introduces a "separator_symbol" property for the i3bar configuration.
If set, the specified string will be used as a separator instead of a vertical line. Since it is an optional configuration, complete backwards compatibility is given.

fixes #1472
2015-03-25 21:38:55 +01:00
Tony Crisci
e681f34ec1 i3bar: set markup per block
Add `markup` to the i3bar protocol as a block member.

This is a string that determines how the block should be parsed as
markup. "pango" indicates the block should be parsed as Pango markup.
"none" indicates the block should not be parsed as markup.
2015-03-24 02:27:38 -04:00
Ingo Bürk
32f3248b57 Added a troubleshooting section to the restoring layout docs and described solution for vertically split containers 2015-03-21 20:41:40 +01:00
Diana Thayer
94b1e76af4 degendered terms 2015-03-11 21:41:43 -07:00
Tony Crisci
05de5201c0 Docs: add hint to use xvfb-run
Document that Xvfb can be used to run tests without an X server, and be
used to significantly speed up tests on machines with slow video cards.
2015-02-21 16:36:24 -05:00
Tony Crisci
e18e2b9f98 i3bar: use Pango markup
Parse text within workspace buttons and the i3bar statusline as Pango
markup. This lets people specify things like font weight, text color,
background color, font size, and font family in the text of i3bar.

fixes #1468
2015-02-12 14:45:34 -05:00
Michael Stapelberg
d2d08f7313 Merge pull request #1451 from acrisci/feature/handle-button-release
Handle button release events
2015-02-11 20:13:00 +01:00
Tony Crisci
c815fc798d Handle button release events
This enables the --release switch on mouse button bindings.
2015-02-10 17:46:02 -05:00
Michael Stapelberg
663235c714 docs/debugging: use logs.i3wm.org 2015-02-04 19:54:36 +01:00
Michael Stapelberg
72b3c9f4c9 cking-howto: update links 2015-02-04 19:52:40 +01:00
Tony Crisci
74b69d6d02 Add mouse binding pointer position configuration
Add the `--whole-window` switch for mouse bindings. This switch controls
what part of the container the pointer must be over to trigger a mouse
binding. The default is to only trigger mouse bindings over the
titlebars. With this switch, a mouse binding will be triggered over the
main part of the window as well.

This is a breaking change to the previous behavior, which would trigger
a mouse binding with a modifier over any part of the window.

fixes #1429
2015-01-31 21:29:48 +01:00
Tony Crisci
823b46a544 Include workspace con in workspace event
Send the affected workspace in the "current" property for each workspace
event for any type of workspace event that affects a particular
workspace.

fixes #1411
2014-12-22 09:47:31 +01:00
Michael Stapelberg
04fa40d3e5 docs/ipc: use an actual event type (thanks Adaephon) 2014-12-13 22:33:42 +01:00
Mats
e59a76e456 Extend the fullscreen command
Rather than just toggling the fullscreen modes, allow to set them
directly with:

    fullscreen enable|toggle [global]
    fullscreen disable

For compatibility, retain the previous command and its toggling behavior:

    fullscreen [global]

fixes #1120
2014-12-10 20:42:52 +01:00
Ingo Bürk
bf1d0c9335 ensure align = left is the default and update documentation accordingly
fixes #1403
2014-12-03 08:12:04 +01:00
cornerman
58c65a64fe add deco_rect property to con in ipc response 2014-11-29 18:19:39 +01:00
Tony Crisci
6ba7728136 Bugfix: check symbol for NULL in binding json dump
When dumping a binding, as is done during the binding event, check
symbol for NULL. If it is, dump json null. This prevents a crash when
running a binding that was configured with bindcode.

fixes #1379
2014-10-05 21:06:11 +02:00
Tony Crisci
fbaf084426 Implement the ipc 'binding' event
The binding event will be triggered when a binding is run as a result of
some a user action. The binding event has the following properties:

change: (str) Currently this will only be "run" but may be expanded in
the future. Included for consistency with other events.

binding: (map) the serialized binding

The "binding" member will have these properties:

input_type: (str) either "keyboard" or "mouse"

input_code: (int) the xcb keycode of the keyboard binding if it was
provided or the mouse button if it is a mouse binding.

symbol: (str) the string representation of the input code

command: (str) the bound command

mods: (list of str) a list of the modifiers that were pressed as string
symbols

fixes #1210
2014-10-03 09:35:37 +02:00
Tony Crisci
2ddbc71e2b Testcases: Use Xephyr instead of XDummy
Replace the XDummy script with Xephyr. This is done because of some
changes in the Xorg server that make XDummy difficult to use.

Rename library internal variables and function names to replace "xdummy"
with "xserver" to show this change (except for renaming the package and
lib file for better git history).

Rename the switch `--keep-xdummy-output` to `--keep-xserver-output`.
This switch should now be rarely used because Xephyr requires less set
up.

Replace "xdummy" with "xephyr" in comments and utility help
information. Update docs to show the new dependency.

fixes #1367
2014-10-02 23:05:00 +02:00
Tony Crisci
fd8a2b0e51 IPC: set ws reply "num" member to -1 when named
When a named workspace (i.e., a workspace that has a name that does not
begin with text that can be parsed as an integer greater than or equal
to zero) is represented by the ipc as a workspace json object such as
can be queried with `i3-msg -t get_workspaces`, set the num property to
-1 instead of json null.

This is for convenience of ipc consumers using type-constrained
languages such as C which have difficulty cleanly expressing nullable
integers.

fixes #1368
2014-09-29 09:33:02 +02:00
Tony Crisci
8e23dc881b i3bar: implement custom mouse wheel commands
Users can specify a command to run when a button was pressed on i3bar to
override the default behavior. Currently only the mouse wheel buttons
are supported. This is useful for disabling the scroll wheel action or
running scripts that implement custom behavior for these buttons.

Example:

bar {
    wheel_up_cmd nop
    wheel_down_cmd exec ~/.i3/scripts/custom_wheel_down
}

fixes #1104
2014-07-10 22:40:12 +02:00
Tony Crisci
d13730de70 Add link to git repository in hacking docs 2014-07-10 22:29:16 +02:00
Tony Crisci
682fb0a291 Implement the window::urgent event
The window::urgent event is emitted when a container becomes urgent or
loses its urgent status.
2014-06-24 09:04:45 +02:00
Tony Crisci
babfb779d7 Implement the window::floating event
The window::floating event should be emitted when a window transitions
to or from the floating state.
2014-06-23 21:18:12 +02:00
Tony Crisci
cf6cc134b8 Implement the window::move event
The window::move event should be emitted when the window moves position
in the tree.
2014-06-19 13:00:17 +02:00
Tony Crisci
25ca78bbba Implement the window::close event
The window::close event should be emitted when a window closes.
2014-06-19 12:59:25 +02:00
Tony Crisci
0df172fd05 Feature: implement mouse bindings
A configured mouse binding (for example `bindsym button3 kill`) runs
its command when the mouse button is pressed over parts of a container.

If the binding has no modifer, it will only run when the button is
clicked on the window titlebar.

Otherwise if the binding has a modifier, it will run over the titlebar
or any part of the contained window.

fixes #558
2014-06-19 12:28:54 +02:00
Tony Crisci
f4a8253593 userguide: document exit confirmation dialog
In the section "Exiting i3", document the confirmation dialog (nagbar)
that will show when the user presses the default keys to exit in such a
way to hint that it is configurable.
2014-06-16 09:50:31 +02:00
Tony Crisci
fef46de283 docs: fix ipc library list formatting 2014-06-16 09:41:26 +02:00
Atte Peltomaki
62ea60ba42 Add configuration option for disabling mouse warping
This patch adds a new configuration option "mouse_warping [output|none]".

When mouse warping is disabled, mouse cursor does not jump to middle of current
screen when changing workspaces between multiple outputs. This introduces a
"special" cursor state, where focus is in one window and cursor on another.
Useful for eg. scrolling a web page with mouse wheel while typing into another
window on keyboard.
2014-05-31 14:55:29 +02:00
Tony Crisci
e707e0a5fa i3bar: implement custom workspace numbers config
Implement the configuration option within the bar config directive for
custom workspace numbers with the directive `strip_workspace_numbers
yes`.

This directive strips the workspace name of the number prefix and
delimiter. When the workspace name consists only of the number, it will
default to show the number.

For example:

* "2:5" -> "5"
* "4:$" -> "$"
* "8" -> "8"

This allows customization of i3bar for alternate ordering of workspaces
which has a legitimate use for alternate keyboard layouts such as
Dvorak.

fixes #1131
2014-05-16 17:55:30 +02:00
Michael Stapelberg
b69b3fc572 docs/userguide: fix default key binding (Thanks Maxime) 2014-05-08 08:45:30 +02:00
Tony Crisci
8146638320 Implement the window::fullscreen_mode event
The fullscreen_mode event is a window with the "change" property set to
"fullscreen_mode". This event should be emitted whenever a window enters
or exits fullscreen mode.

This event can be used to turn off dpms off when a window is fullscreen
or display the fullscreen container name in the status line for
instance.
2014-04-30 09:35:31 +02:00
Tony Crisci
2f42fe61d9 Feature: send complete config on barconfig_update
Send all the options in the bar block on the barconfig_update event.

This will eventually allow for dynamically updating bar colors with the
`reload` command.
2014-04-30 09:33:29 +02:00
Michael Stapelberg
87c855f851 add missing docs/layout-saving-1.png 2014-04-26 12:46:25 +02:00
Michael Stapelberg
7deb23c727 add docs/layout-saving
Feedback on this new document is very much appreciated, please don’t
hesitate to state anything that is hard to understand/could be improved.
2014-04-23 19:49:50 +02:00
Michael Stapelberg
2dfabc38f8 Bugfix: Use DOM loaded event for TOC (Thanks TonyC)
See http://code.i3wm.org/i3-website/commit/?id=d8e239e6 for the original
commit for the i3 website. This one is for documentation built from git.
2014-04-09 20:37:24 +02:00
jeroentbt
85df107b0d docs: fix typo 2014-03-21 19:21:51 +01:00
jeroentbt
c0589ad5be fix typo 2014-03-21 19:21:47 +01:00
Tony Crisci
35eac121fc Update ipc library list documentation
Add a link to the new JavaScript, Python, and Lua ipc libraries.

Add notice that the older Python libraries are not maintained.

Sort the list alphabetically.
2014-03-10 08:40:00 +01:00
Tony Crisci
d5cf494ba2 Update ipc COMMAND reply documentation
The COMMAND reply consists of a list of results for each command that
was parsed.
2014-03-01 09:20:16 +01:00
Tony Crisci
0f6c411f06 Fix current_workspace outputs reply member docs
The current_workspace member of an ipc OUTPUTS reply is the name of the
workspace as a string.
2014-02-26 22:25:12 +01:00
Marco Hunsicker
00ee86de79 Send IPC window events for focus and title changes
This patch fixes ticket #1168 to extend the window IPC event mechanism
to send IPC events for window focus and title changes. The newly added
window events use the same format as the already established "new"
event.

Specifically this patch:

* Moves the ipc_send_window_event() function from src/manage.c into
  src/ipc.c and adds an argument for the change property of the event
* Updates src/manage.c to use the new function signature. To ensure
  that the "new" event does not send the same event data as the
  "focus" event, setting focus now happens after the "new" event
  has been sent
* Adds IPC focus event notification to src/x.c. To workaround a problem
  during window close when accessing the window name, a function has been
  added to query whether a window is actually attached to its parent. To
  avoid obsolete focus notification, a new field has been added to keep
  track of the focus without any interference by the click handling
* Adds IPC title event notification to src/handlers.c. To avoid
  obsolete title notification, a function has been added to determine
  whether a window title has actually changed
* Updates the IPC documentation to include the new events
* Updates testcases/t/205-ipc-windows.t to include the "focus" event
  in order to ensure the correct event sequence
* Adds two new unit tests, b/testcases/t/219-ipc-window-focus.t and
  b/testcases/t/220-ipc-window-title.t to ensure proper "focus" and
 "title" events
2014-02-26 22:24:19 +01:00
Jonas Maaskola
1bd13ce555 Doc update: title right click resizes floating windows
This documentation update describes the change implemented in
905440d6d1
It avoids repetitive usage of the word 'also'.
2014-02-08 20:41:16 +01:00
Tony Crisci
ba80f96009 Document the existence of a C ipc project
Add a link to https://github.com/acrisci/i3-ipc which is a new ipc
library in the design phase of development. When it is stable, it will
provide bindings to many high-level scripting languages with
GObject-introspection.

This project aims to replace the unmaintained Python library and offer
an ipc library in new languages such as Lua and JavaScript.
2014-02-05 22:22:38 +01:00
Michael Stapelberg
5d468f3317 docs/NoName-2009-03-12: add missing screenshot 2014-01-26 16:39:09 +01:00
Michael Stapelberg
a708da684f asciidoc git config: fix impress link, update copyright (Thanks Jens) 2014-01-23 22:24:03 +01:00
Michael Stapelberg
7cf0c632c3 Merge branch 'master' into next 2014-01-23 22:20:39 +01:00
Wieland Hoffmann
658abe2e11 docs/userguide: change 'reseted' to 'reset'
It's an irregular verb.
2014-01-23 22:20:36 +01:00
Vivien Didelot
ae555386b7 docs/i3bar-protocol: add missing newline 2014-01-18 16:26:12 +01:00
Michael Stapelberg
a32b6da712 Merge branch 'master' into next 2014-01-04 12:20:12 +01:00
Michael Stapelberg
a37f784945 docs/debugging: use a version command that will work with i3 < 4.3 2014-01-04 12:06:21 +01:00
Michael Stapelberg
92a50db29e docs/debugging: merge the debug symbols/backtrace section
We rarely have crashes, almost always we just need logs.
2014-01-04 12:04:43 +01:00
Michael Stapelberg
2c06dc0a1f docs/debugging: include supported version, recommend --moreversion 2014-01-04 11:54:23 +01:00
Michael Stapelberg
d91e632959 docs/debugging: explain how to enable logging on the fly 2014-01-04 11:47:09 +01:00
Michael Stapelberg
0fdbc1ab97 docs/debugging: update version numbers 2014-01-04 11:46:12 +01:00
Michael Stapelberg
95613f50fd docs/debugging: use bzip2 for consistency with the new ticket form (Thanks x33a) 2014-01-04 11:35:06 +01:00
Michael Stapelberg
35b70ca423 introduce client.placeholder color 2013-12-22 21:52:49 +01:00
Michael Stapelberg
3a4ad9b330 layout restore: create and render placeholder windows
This is not entirely done yet, but TODO entries are placed in the code
where appropriate.
2013-12-22 21:52:49 +01:00
Michael Stapelberg
6800524f2e GET_TREE: serialize container type into a string
So far, this was blessed for internal use only (by virtue of not being
in the documentation), but we want to expose it for the stored layouts.
2013-12-22 21:52:49 +01:00
Michael Stapelberg
665ac5b7c3 userguide: explain the difference between comma and semicolon for command chaining 2013-12-11 19:47:36 +01:00
Trung Ngo
3dba51500e Update userguide on multiple criteria
Change wording, add an example for multiple criteria and move
the sentence explaining the Firefox example into the code listing
block.
2013-11-10 19:55:45 +01:00
Alexander Neumann
4622fd8703 Correct typos in user guide 2013-10-19 10:05:10 +02:00
Peter Maatman
c142a4fa6c Update docs/hacking-howto to reflect parser changes 2013-10-13 17:17:38 +02:00
Alexander Neumann
7f9d2ac948 Add quoting for sample command
The user's guide talks about renaming workspaces, for example to
"2: mail", and a sample key binding for use with i3-input is supplied.
However, this example lacks proper quoting for the format string, so
that when workspace name with a space in it, like "2: mail", is given,
the current workspace is renamed to "2:". This patch adds proper
quoting.
2013-10-13 17:17:24 +02:00
syl20bnr
7098ef602b Add new bar.binding_mode_indicator configuration.
i3 current behavior hides the binding mode indicator when
workspace buttons are disabled.
This patch adds a new configuration for i3bar called
'binding_mode_indicator' which acts like the workspace_buttons.
It is now possible to configure i3bar to hide the
workspace buttons and keep showing the binding mode indicator.
This should make the hide workspace buttons configuration
more convenient for those who are heavily using binding
modes.
Default value for binding_mode_indicator is true.
2013-09-24 06:59:26 +02:00
James Baumgarten
4ff01e59ca Clarify userguide description of urgent_workspace configuration 2013-09-09 05:09:45 +02:00
Michael Stapelberg
3216cc79de Merge branch 'master' into next 2013-08-12 09:13:55 +02:00
Michael Stapelberg
ee533a6ddc Fix userguide formatting (Thanks Slava) 2013-08-12 09:12:53 +02:00
syl20bnr
3be0b519c9 Update documentation paragraph on variables
see http://infra.in.zekjur.net/archives/i3-discuss/2013-August/001377.html
2013-08-08 22:42:15 +02:00
koebi
88671986f4 implement unmark command 2013-07-17 23:02:31 +02:00
Alexander Berntsen
023594909e Implement debuglog command
Add debuglog command that takes toggle|on|off. Add get_debug_logging()
to be able to toggle. Make t/187-commands-parser.t expect 'debuglog'.
Document the debuglog command in userguide.
2013-07-07 15:33:42 +02:00
Michael Stapelberg
71dfcbc674 userguide: improve the shmlog docs
• the section heading needs === instead of ==
• better title
• explain what shared memory logging does and where to find more
  information
• add syntax section
• improve examples
• clarify that shmlog <size> discards the current log
2013-06-23 22:10:42 +02:00
Alexander Berntsen
f9d93d75b3 Implement shmlog command
Add shmlog command that takes <size>|toggle|on|off. Separate logbuffer
management into open_logbuffer() and close_logbuffer(). Make
t/187-commands-parser.t expect 'shmlog'. Add update_shmlog_atom() to
update the SHMLOG_PATH. Document the shmlog command in userguide.
2013-06-23 21:48:02 +02:00
haptix@web.de
e3913093b6 introduced i3 command for changing the hidden state and the mode of i3bar
The hidden_state and mode of each i3bar instance can now be controlled from within i3.
Therefore, two new i3 command were introduced:
    _
    bar hidden_state show|hide|toggle [<bar_id>]

    show: always show the bar
    hide: normal hide mode
    toggle: toggle between show and hide (individually for each bar)
    _
    bar mode dock|hide|invisible|toggle [<bar_id>]

    hide,dock: like before
    invisible: always keep the bar hidden
    toggle: toggle between dock and hide (individually for each bar)

This patch introduces a hidden_state ("hidden_state hide|show") in the
barconfig, which indicates the current hidden_state of each i3bar
instance. It only affects the bar when in hide mode. Additionally, a new
invisible mode was introduced. In order to change the hidden_state or
mode of the bar from i3, a barconfig-update event was introduced, for
which a bar can subscribe and the bar then gets notified about the
currently set hidden_state and mode in its barconfig.

For convenience, an id field ("id <bar_id>") was added to the barconfig, where one can
set the desired id for the corresponding bar. If the id is not specified, i3 will
deterministically choose an id; otherwise, with the previous random approach for finding
a new id, which is actually not shared with i3bar, as it would determine its id on
startup, the event-subscription would be destroyed on reload. Still, this issue remains
when manually changing the bar_id in the config and then reloading.

fixes #833, #651
2013-05-25 23:00:36 +02:00
Eric S. Raymond
adc16f0e90 Document fixes and workarounds for test failures. 2013-04-11 22:37:58 +02:00