Skip to content
i3-gaps – i3 with more features (forked from https://github.com/i3/i3)
Branch: gaps-next
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Merge remote-tracking branch 'vanilla/next' into gaps-next Oct 23, 2018
AnyEvent-I3 introduce the sync IPC command Mar 30, 2018
contrib dump-asy.pl: Include floating_nodes Sep 14, 2018
debian Merge branch 'gaps' into gaps-next Jan 27, 2019
docs Merge remote-tracking branch 'vanilla/next' into gaps-next Mar 28, 2019
etc etc/config: Mention ~/.config/i3/config Mar 28, 2019
i3-config-wizard Remove \n from errx and die messages Jan 2, 2019
i3-dump-log i3-dump-log: make log message a little more clear (#3618) Feb 12, 2019
i3-input Remove \n from errx and die messages Jan 2, 2019
i3-msg Replace scalloc + strncpy with sstrndup Apr 3, 2019
i3-nagbar Remove \n from errx and die messages Jan 2, 2019
i3bar Merge remote-tracking branch 'vanilla/next' into gaps-next Mar 29, 2019
include Merge remote-tracking branch 'vanilla/next' into gaps-next May 3, 2019
libi3 Merge remote-tracking branch 'vanilla/next' into gaps-next Apr 11, 2019
m4 Accept calling absolute path when building outsource Nov 9, 2016
man Add proper return code for i3-msg Feb 21, 2019
parser-specs Merge remote-tracking branch 'vanilla/next' into gaps-next Mar 22, 2019
share Move/rename config files/.desktop files into subdirs Oct 23, 2016
src Merge remote-tracking branch 'vanilla/next' into gaps-next May 3, 2019
testcases Merge remote-tracking branch 'vanilla/next' into gaps-next May 3, 2019
travis travis: remove deprecated docker login -e flag (#3651) Mar 19, 2019
.clang-format switch to clang-format-3.8 (#2547) Nov 8, 2016
.editorconfig Add .editorconfig (see editorconfig.org) (#2943) Sep 13, 2017
.gitignore Merge tag '4.14.1' into gaps Sep 24, 2017
.travis.yml fix travis build by switching away from deprecated-2017Q3 (#3650) Mar 19, 2019
DEPENDS Fix DEPENDS table May 1, 2018
I3_VERSION Set non-git version to 4.16.1-non-git Jan 27, 2019
LICENSE Remove copyright year range from License Jan 17, 2016
Makefile.am Merge remote-tracking branch 'vanilla/next' into gaps-next Mar 21, 2019
PACKAGE-MAINTAINER Update PACKAGE-MAINTAINER’s compilation instructions Oct 23, 2016
README.md Typo Mar 22, 2019
RELEASE-NOTES-4.14.1 release i3 4.14.1 Sep 24, 2017
RELEASE-NOTES-4.16.1 release i3 4.16.1 Jan 27, 2019
configure.ac Merge remote-tracking branch 'vanilla/next' into gaps-next Mar 22, 2019
generate-command-parser.pl Remove trailing whitespace from Perl scripts Mar 15, 2018
i3-dmenu-desktop Replace http:// with https:// where applicable Sep 24, 2017
i3-migrate-config-to-v4 Remove dead documentation for non-existing feature "stack-limit". Jun 9, 2015
i3-save-tree i3-save-tree: Exclude unsupported "transient_for" property Sep 12, 2018
i3-sensible-editor Added gVim to i3-sensible-editor Feb 19, 2018
i3-sensible-pager Quote the variables in i3-sensible-* correctly Nov 30, 2015
i3-sensible-terminal enhancement: adds hyper as a sensible terminal option Aug 1, 2018
logo.svg s/i3.zekjur.net/i3wm.org/g Aug 28, 2011
pseudo-doc.doxygen Replace http:// with https:// where applicable Sep 24, 2017
release.sh release.sh: save docs first Nov 5, 2018

README.md

Travis Issues Forks Stars

i3-gaps

What is i3-gaps?

i3-gaps is a fork of i3wm, a tiling window manager for X11. It is kept up to date with upstream, adding a few additional features such as gaps between windows (see below for a complete list).

i3

How do I install i3-gaps?

Please refer to the wiki.

Where can I get help?

For bug reports or feature requests regarding i3-gaps specifically, open an issue on GitHub. If your issue is with core i3 functionality, please report it upstream.

For support & all other kinds of questions, you can ask your question on the official subreddit /r/i3wm.

Features

i3

gaps

Note: In order to use gaps you need to disable window titlebars. This can be done by adding the following line to your config.

# You can also use any non-zero value if you'd like to have a border
for_window [class=".*"] border pixel 0

Gaps are the namesake feature of i3-gaps and add spacing between windows/containers. Gaps come in two flavors, inner and outer gaps wherein inner gaps are those between two adjacent containers (or a container and an edge) and outer gaps are an additional spacing along the screen edges. Gaps can be configured in your config either globally or per workspace, and can additionally be changed during runtime using commands (e.g., through i3-msg).

Note: Outer gaps are added to the inner gaps, i.e., the gaps between a screen edge and a container will be the sum of outer and inner gaps.

Configuration

You can define gaps either globally or per workspace using the following syntax. Note that the gaps configurations should be ordered from least specific to most specific as some directives can overwrite others.

gaps [inner|outer|horizontal|vertical|top|left|bottom|right] <px>
workspace <ws> gaps [inner|outer|horizontal|vertical|top|left|bottom|right] <px>

The inner and outer keywords are as explained above. With top, left, bottom and right you can specify outer gaps on specific sides, and horizontal and vertical are shortcuts for the respective sides. <px> stands for a numeric value in pixels and <ws> for either a workspace number or a workspace name.

Commands

Gaps can be modified at runtime with the following command syntax:

gaps inner|outer|horizontal|vertical|top|right|bottom|left current|all set|plus|minus|toggle <px>

# Examples
gaps inner all set 20
gaps outer current plus 5
gaps horizontal current plus 40
gaps outer current toggle 60

With current or all you can change gaps either for only the currently focused or all currently existing workspaces (note that this does not affect the global configuration itself).

You can find an example configuration in the wiki.

Smart Gaps

Gaps can be automatically turned on/off on a workspace in certain scenarios using the following config directives:

# Only enable gaps on a workspace when there is at least one container
smart_gaps on

# Only enable outer gaps when there is exactly one container
smart_gaps inverse_outer

Smart Borders

Smart borders will draw borders on windows only if there is more than one window in a workspace. This feature can also be enabled only if the gap size between window and screen edge is 0.

# Activate smart borders (always)
smart_borders on

# Activate smart borders (only when there are effectively no gaps)
smart_borders no_gaps

Smart Edge Borders

This extends i3's hide_edge_borders with a new option. When set, edge-specific borders of a container will be hidden if it's the only container on the workspace and the gaps to the screen edge is 0.

i3bar

Bar Height

The height of an i3bar instance can be specified explicitly by defining the height key in the bar configuration. If not set, the height will be calculated automatically depending on the font size.

bar {
    # Height in pixels
    height 25
}

Borders

You can define a border width of each block for each individual side by sending the border_top, border_left, border_bottom and border_right keys in the i3bar JSON protocol. Each value, if absent, defaults to 1, and a value of 0 hides the border for the specified side.

Transparency and RGBA Colors

By starting i3bar with the -t flag, RGBA color mode will be activated. This allows the use of colors with an additional alpha channel. Please note that this has two major implications:

  • Due to technical constraints the background of tray icons will always be fully transparent.
  • We consider this feature unstable in the sense that issues will only be fixed if they do not require major changes as we prioritize the ability to stay up to date with upstream.

To start i3bar with the -t flag, adapt your bar configuration:

bar {
        i3bar_command i3bar -t
}

You can now use RGBA colors, e.g. #FFFFFF99 where the last two digits represent the alpha channel.

You can’t perform that action at this time.