GithubHelp home page GithubHelp logo

airblader / i3 Goto Github PK

View Code? Open in Web Editor NEW
5.9K 115.0 324.0 13.2 MB

A fork of the i3 window manager with gaps and some other features. :warning: i3-gaps has been merged into i3.

License: BSD 3-Clause "New" or "Revised" License

Perl 38.52% Shell 0.71% C 58.57% Dockerfile 0.25% Meson 0.66% Python 1.19% Vim Script 0.02% Roff 0.08%
i3-gaps i3 i3wm x11 x11-wm xorg xcb

i3's People

Contributors

9ary avatar acrisci avatar adaephon-gh avatar airblader avatar ammgws avatar bapt avatar bitonic avatar cybershadow avatar d912e3 avatar dcoppa avatar deiz avatar elsbrock avatar fernandotcl avatar hwangcc23 avatar jolange avatar knopwob avatar loblik avatar maikf avatar merovius avatar mh21 avatar mihaicmn avatar nmschulte avatar orestisfl avatar pbui avatar psychon avatar sardemff7 avatar shdown avatar stapelberg avatar stlukey avatar xzfc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

i3's Issues

i3-gaps has often overloads my CPU up to 100%

Hello,

i3-gaps has often overloads my CPU up to 100%.

My CPU is Intel(R) Core(TM)2 Quad CPU Q8300.

I don't understand why.

http://logs.i3wm.org/logs/5740874747084800.bz2
/var/run/user/1000/i3/errorlog.19732 contents:

ERROR: Received ConfigureNotify for unknown window 0x01000000
ERROR: Received ExposeEvent for unknown window 0x01000000
ERROR: Received ConfigureNotify for unknown window 0x01000000
ERROR: Received ConfigureNotify for unknown window 0x01000003
ERROR: Received ExposeEvent for unknown window 0x01000003
ERROR: Received ConfigureNotify for unknown window 0x01000003
ERROR: Received ConfigureNotify for unknown window 0x01000006
ERROR: Received ExposeEvent for unknown window 0x01000006
ERROR: Received ConfigureNotify for unknown window 0x01000006
ERROR: Received ConfigureNotify for unknown window 0x01000009
ERROR: Received ConfigureNotify for unknown window 0x01000009
ERROR: Received ConfigureNotify for unknown window 0x0100000c
ERROR: Received ConfigureNotify for unknown window 0x0100000c
ERROR: Received ConfigureNotify for unknown window 0x01000003
ERROR: Received ExposeEvent for unknown window 0x01000003
ERROR: Received ConfigureNotify for unknown window 0x01000003
ERROR: Received ConfigureNotify for unknown window 0x01000000
ERROR: Received ExposeEvent for unknown window 0x01000000
ERROR: Received ConfigureNotify for unknown window 0x01000000
ERROR: Received ConfigureNotify for unknown window 0x01000006
ERROR: Received ExposeEvent for unknown window 0x01000006
ERROR: Received ConfigureNotify for unknown window 0x01000006

My i3-gaps version is:

Binary i3 version:  4.10.3-347-g586854b (2015-07-30, branch "makepkg") © 2009-2014 Michael Stapelberg and contributors
Running i3 version: 4.10.3-347-g586854b (2015-07-30, branch "makepkg") (pid 19732)

The i3 binary you just called: /usr/bin/i3
The i3 binary you are running: i3-with-/i3

Resize containers per mouse in both x and y direction

I know this is probably pretty far fetched, but it's a pretty cool feature and the only thing I miss in i3 after using this fork.

In bspwm it's possible, when using $mod+ Right Click, to manipulate both the x axis and the y axis at once, whereas i3 only allows the manipulation of one axis.

Example:
http://youtu.be/U17CLayt_aA?t=14s (14 seconds in)

Would this be possible to implement?

smart_gaps just for specific workspaces?

Thank you for this repo, it's been great, one thing though, is it possible to assign smart_gaps only for certain workspaces?

As in

smart_gaps off
workspace 1 smart_gaps on

cannot exit i3

I try using $mod+shift+e
then I attempt to click "yes, exit i3"
nothing happens
however I can hit the close button

Gap between containers double as big as between container and edge of screen/panel

I don't know if this is a bug or an intended feature, but it would be nice to be able to do something about it.

If I have, say, gap_size = 10, then the gap_size between container A and B will total 20, whereas the gap_size between a container and the edge of the screen will be 10. Would be nice to have consistency, so gap_size = 10 would be 10 everywhere.

Here's a crappy picture for reference:
http://imgur.com/XiHoLXH

Thanks

Gaps misbehave when fullscreening a split container

Given a "H" layout where the right container is a "V" layout with two containers
When selecting the "V" container
And going fullscreen
Then the gaps from the left window in the "H" container are still considered.

Not really essential or anything since it's probably an unusual workflow; shouldn't be hard too fix, though.

More than one color per block

This will remove the necessity to combine multiple blocks which is awkward and verbose.

Syntax could be

full_text: "${#ffffff}Text"

Enhancement: Add ability to resize outer gap horizontaly or vertically

Hi, first time adding a feature request on github... accidantely pushed enter too early.

Just wanted to mention that it would be cool if there was a way to specify the vertical outer gap seperatly to the horizontal. It's possible in xmonad, and I find it quite usefull for having my two conky windows visible in one layout.

screenshot

fix tabbed view+shadows

i'm not sure if there's a work-around here, but how easy would it be to fix the issue with shadows and tabbed view? notice how the shadows are darker around the entire tabbed frame because it's considered four separate windows, so the shadows stack. also, shadows are drawn from the window title
screenshot

Open workspaces with correct names on startup

This is an i3 "bug", so if fixed, this should be submitted to i3 as well, though it may not be accepted there.

If workspaces are named, i3 on startup opens one workspace per output, but they are labelled "1", "2" and so on. Can this be fixed by actually giving workspaces names in the i3 config?

Indicator does not respect fading

The indicator of a faded terminal is not faded. This is an i3 bug, IMHO, and if I fix it, I'll submit it there. This ticket is just a reminder for me.

Using i3-gaps with i3blocks causes flickering in i3bar

Hi again

I saw you made an issue on the i3 github repo completely by chance as I was installing i3blocks (and i3-gaps of course) to my laptop, but I don't know whether the issue lies within i3blocks or i3-gaps. I've been an avid user of i3blocks and actually talked to Vivien about using it with your fork a little while abck. I was very kindly given instructions to add a few lines to the i3blocks file block.h and then compile:

http://pastebin.com/wbgZFZar (this is line 39-59 in block.h)

and now i3blocks works with your fork, however, when I use the border options you added, it causes -very- annoying flickering multiple times a second independently of my interval settings it my i3blocks.conf, and the issue didn't seem to be with i3blocks.

Is this something on my end or is it a bug in i3-gaps?

Regardless, I at least hope the block.h file modification is useful to you anyway.

Thanks!

[Feature request] Toggle split direction

There are split horizontal and split vertical that change the orientation of the current workspace. There seems to be missing split toggle, though. My use case is as follows:

  1. The desktop is blank.

  2. I open a new window, 1, so it has one container.

  3. I open another window, 2. The container changes like this:

    ### ###
    #1# #2#
    ### ###
    

    ...and the focus is given to 2.

Now I'd like to press a hotkey that figures the current orientation for 2's container, and changes it, so that when I open a new window, 3,

  1. I get this:

    ### #2#
    #1#
    ### #3#
    

    instead of this:

    ## ## ##
    #1 #2 #3
    ## ## ##
    
  2. I don't have to figure which key to press now to change the current orientation (which would be required if I used split h|v).

I'm aware that there is layout toggle split, but it acts on already opened windows, rearraging the whole layout. What I want is to change the orientation property "behind the scenes", so that it will only become visible after I actually open a new window.

I apologize if this feature is already implemented; I searched the manual and experimented with config but I just couldn't figure out a way to do what I described.

Titlebar for all floating windows

Is there a way to allow floating windows to have a titlebar? I find it useful for moving around dialog windows that pop up at a strange location, or are at the large side. Alternately, can I let all floating windows appear in a corner? Or perhaps, how do you manage this?

I have not found that you can set a for_window to target floating windows and my apologies if here is not the right place to ask this. And of course, thanks for your kind time. ^_^

Installing i3-gaps on Ubuntu 15.04 ends up with broken installation

What it says on the tin. Some commands(such as Alt+D) cause the error status_command not found or is missing a library dependency, and the configuration file does not write to ~/.i3 after you are asked to generate a config file.

How i installed:

git clone https://www.github.com/Airblader/i3 i3-gaps
cd i3-gaps
git checkout gaps && git pull
make 
make install

Dependencies installed:

libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev libxcb-icccm4-dev libyajl-dev libstartup-notification0-dev libxcb-randr0-dev libev-dev libxcb-cursor-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev

(all the dependencies from here https://github.com/Airblader/i3/wiki/Compiling-&-Installing )

OS: Ubuntu 15.04

Installation log:

[libi3] CC libi3/get_process_filename.c
[libi3] CC libi3/safewrappers.c
[libi3] CC libi3/root_atom_contents.c
[libi3] CC libi3/is_debug_build.c
[libi3] CC libi3/get_mod_mask.c
[libi3] CC libi3/string.c
[libi3] CC libi3/ipc_connect.c
[libi3] CC libi3/get_config_path.c
[libi3] CC libi3/ucs2_conversion.c
[libi3] CC libi3/dpi.c
[libi3] CC libi3/font.c
[libi3] CC libi3/get_exe_path.c
[libi3] CC libi3/resolve_tilde.c
[libi3] CC libi3/get_colorpixel.c
[libi3] CC libi3/strndup.c
[libi3] CC libi3/fake_configure_notify.c
[libi3] CC libi3/ipc_send_message.c
[libi3] CC libi3/mkdirp.c
[libi3] CC libi3/get_visualtype.c
[libi3] CC libi3/ipc_recv_message.c
[libi3] AR libi3.a
[i3] CC src/resize.c
[i3] CC src/log.c
[i3] CC src/debug.c
[i3] Generating command parser
[i3] CC src/commands_parser.c
[i3] CC src/regex.c
[i3] CC src/config.c
[i3] CC src/restore_layout.c
[i3] CC src/fake_outputs.c
[i3] CC src/bindings.c
[i3] CC src/manage.c
[i3] CC src/con.c
[i3] CC src/xinerama.c
[i3] CC src/scratchpad.c
[i3] CC src/match.c
[i3] CC src/main.c
[i3] CC src/window.c
[i3] CC src/move.c
[i3] CC src/key_press.c
[i3] CC src/x.c
[i3] CC src/config_directives.c
[i3] CC src/load_layout.c
[i3] CC src/output.c
[i3] CC src/floating.c
[i3] CC src/xcb.c
[i3] CC src/ipc.c
[i3] CC src/sd-daemon.c
[i3] CC src/version.c
[i3] CC src/commands.c
[i3] CC src/randr.c
[i3] CC src/xcursor.c
[i3] CC src/util.c
[i3] CC src/workspace.c
[i3] CC src/click.c
[i3] Generating config parser
[i3] CC src/config_parser.c
[i3] CC src/sighandler.c
[i3] CC src/ewmh.c
[i3] CC src/assignments.c
[i3] CC src/handlers.c
[i3] CC src/display_version.c
[i3] CC src/render.c
[i3] CC src/startup.c
[i3] CC src/tree.c
[i3] Link i3
[i3] Link test.commands_parser
[i3] Link test.config_parser
[i3-config-wizard] CC i3-config-wizard/main.c
[i3-config-wizard] Link i3-config-wizard
[i3-msg] CC i3-msg/main.c
[i3-msg] Link i3-msg
[i3-input] CC i3-input/keysym2ucs.c
[i3-input] CC i3-input/main.c
[i3-input] Link i3-input
[i3-nagbar] CC i3-nagbar/main.c
[i3-nagbar] Link i3-nagbar
[i3bar] CC i3bar/src/outputs.c
[i3bar] CC i3bar/src/parse_json_header.c
[i3bar] CC i3bar/src/config.c
[i3bar] CC i3bar/src/workspaces.c
[i3bar] CC i3bar/src/mode.c
[i3bar] CC i3bar/src/ipc.c
[i3bar] CC i3bar/src/main.c
[i3bar] CC i3bar/src/xcb.c
[i3bar] CC i3bar/src/child.c
[i3bar] Link i3bar
[i3-dump-log] CC i3-dump-log/main.c
[i3-dump-log] Link i3-dump-log
[i3] Install
[i3-config-wizard] Install
[i3-msg] Install
[i3-input] Install
[i3-nagbar] Install
[i3bar] Install
[i3-dump-log] Install

Version:

Binary i3 version:  4.10.3-347-g586854b (2015-07-30, branch "gaps") © 2009-2014 Michael Stapelberg and contributors
Running i3 version: 4.10.3-347-g586854b (2015-07-30, branch "gaps") (pid 1774)

The i3 binary you just called: /usr/bin/i3
RUNNING BINARY DIFFERENT FROM BINARY ON DISK!
The i3 binary you are running: i3

Log:

logs.i3wm.org/logs/5629652273987584.bz2

Graphical glitches with tabs

i3-gaps isn't supposed to work with stacked and tabbed mode, right? I'm saying that because using the following configuration and still gets some graphical glitches sometimes (seems random).

new_window pixel 3
new_float pixel 3

Let me ask you a dumb question why stacked and tabbed mode does not work well with gaps? We can't get rid of the title bars entirely?

Set gaps on a per-output basis

I recently acquired a second, larger monitor and it would be nice to set the inner/outer gaps seperately for each output, not for a workspace (so I can have larger gaps and some outer gaps on the larger monitor).

I don't really know whether and how that would fit into the current protocol, if you don't think it's fitting then I will have to consistently assign my workspaces to my outputs.

Improve gap_size

The current branch "feature-configurable-gaps" contains a fix to change the gap size without having to open a container to cause the rerender.

It would be nice to also have some command like gap_size plus 5.

i have trouble compiling it

when i try compiling with make && sudo make install, i get following output:

fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
[i3] CC src/ipc.c
In file included from ../i3-gaps/src/ipc.c:13:0:
../i3-gaps/src/ipc.c: In function ‘handle_get_version’:
include/yajl_utils.h:17:50: error: expected expression before ‘)’ token
#define y(x, ...) yajl_gen_##x(gen, ##VA_ARGS)
^
../i3-gaps/src/ipc.c:822:5: note: in expansion of macro ‘y’
y(integer, MAJOR_VERSION);
^
include/yajl_utils.h:17:50: error: expected expression before ‘)’ token
#define y(x, ...) yajl_gen_##x(gen, ##VA_ARGS)
^
../i3-gaps/src/ipc.c:825:5: note: in expansion of macro ‘y’
y(integer, MINOR_VERSION);
^

why does this happen, or how could I fix it?

Mouse movement should set focus

Imagine two containers with the mouse being over container 1 and that container being focused. Now switch the workspace, move the mouse so that it would, in theory, be over container 2, and switch back to the first workspace.

Container 1 is still focused and focus will only change on a click or when leaving the container and entering it again. Not updating the focus when switching the workspace is fine, but once the mouse starts moving, it'd be nice to set the focus.

Activate smart borders only if there are no gaps

Hi again

It would be wonderful to have smart border to only activate if there are no gaps. A single window with gaps looks silly without borders.

I don't know the scope of this project, though; whether if would be feasible to implement.

Build fails on ArchLinux

When building i3-gaps-git from the AUR, the build process fails at ipc.c with the following error(s):

[i3] CC src/ipc.c
In file included from ../i3/src/ipc.c:13:0:
../i3/src/ipc.c: In function ‘handle_get_version’:
include/yajl_utils.h:17:53: error: expected expression before ‘)’ token
 #define y(x, ...) yajl_gen_ ## x (gen, ##__VA_ARGS__)
                                                     ^
../i3/src/ipc.c:741:5: note: in expansion of macro ‘y’
     y(integer, MAJOR_VERSION);
     ^
include/yajl_utils.h:17:53: error: expected expression before ‘)’ token
 #define y(x, ...) yajl_gen_ ## x (gen, ##__VA_ARGS__)
                                                     ^
../i3/src/ipc.c:744:5: note: in expansion of macro ‘y’
     y(integer, MINOR_VERSION);
     ^
src/i3.mk:36: recipe for target 'src/ipc.o' failed

The same occurs when building from a cloned repository.

Keep all workspaces open

This is against i3's philosophy, so it definitely won't be accepted as a patch there. But (optionally!) keeping empty workspaces may be an idea.

Make gap_size configurable per workspace

This is a placeholder issue for this topic. Some thought will have to go into how this should work exactly. Also, ideally, this is integrated into the restore layout feature.

Inner gaps leave bar at the top of the screen undrawn

This seems to be the spot that would normally be occupied either by a titlebar or i3bar. I am running without i3bar and gaps inner 30. The bar in the image is BAR; looks the same (except the weird area starts at the top of the screen) with BAR at the bottom.

Text not aligned properly horizontally

Hi again

I don't know if the issue is on my end, but I just reinstalled Arch and set up my wm. The usual routine etc.

Now, after a reboot, the text in my i3bar (but not the icons) are not centered horizontally and it's driving me nuts. I usually use i3blocks but I also tested with i3status to make sure:

i3status:
http://imgur.com/uNJTV2q

i3blocks:
http://i.imgur.com/uKP8yJ5.png

Have I done something wrong or is this a bug?

Thanks a lot!

Smart gaps?

Presently, inner gaps are still applied if there is only one container on the screen even if smart_borders is enabled. This seems counter to the definition of inner gaps as a sort of transparent window border (gaps between containers) while outer gaps are a padding around the edge of the screen.

smart_borders on should hide inner gaps (i3 looks ugly with modest gaps if only one window is open).

Window titel disbehaves when either gaps !=0

Hey,
I just tried this fork for the fist time via AUR.
When I activate gaps, the window titles (most times) dissappear and leave some garbage on top where the gap should be. (Pictures above).
Sometimes it appears but with a gap between title and window.
It just appears if either inner or outer is set to a value != 0, so it isn't a general bug as I think.
It also appears in both gaps and gaps-next branches.
For floating windows it is always working as it should.

With inner 10 and outer 5:
Imgur
With inner 0 and outer 5:
Imgur
With inner 10 and outer 5:
Imgur
And finally with inner 0 and outer 0
Imgur
I made the backgound red, to see what is bg and what is garbage.
new_window and new_float is always set to normal
For none or pixel it is also working as it should.

Persistent container Proposal

This is comparably a huge feature to implement, but something I would find really useful:

fixed size containers that stay open even without children and that allow clients to be assigned to (in a similar fashion to workspaces).

This would allow side-by-side development with graphical applications that need to be restarted when iterating a lot.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.