• 2021.08.06.4 50b3b271e5

    A NEW RESTART Stable

    budRich released this 2021-08-06 16:16:06 +00:00 | 363 commits to master since this release

    TKO

    i3king

    Changed the resart behaviour. So i3king will now
    try to restart whenever the IPC socket is broken,
    which happens on f.i. i3 crashes.

    New commandline option: --no-apply, if set i3king
    will not automatically try to apply rules when it
    restarts.

    This update was caught on tape, and can be seen at youtube:
    i3wm RED BOX OF DEATH ... DEFEATED!!!! TKO

    Downloads
  • 2021.08.06.1 10ddeb0442

    budRich released this 2021-08-05 22:57:09 +00:00 | 366 commits to master since this release

    i3king

    Added two new commandline options:
    --apply and --no-restart
    We now handle the restart signal from i3 IPC,
    when that happens, all windows are matched against
    the rules and i3king will automatically get restarted.

    This adds functionality requested in #90 (thank you @DominikMarcinowski)

    i3get

    added y as an argument for --return. It will
    print the window_type of the current window.

    i3fyra

    New commanline option --conid

    Downloads
  • 2021.08.05.1 f142ca14ab

    budRich released this 2021-08-05 16:04:13 +00:00 | 387 commits to next since this release

    i3king

    Fixed issue with default and global rules that
    didn't have blacklists.

    Downloads
  • 2021.08.04.9 a4bc142dc0

    RULES ROYALE Stable

    budRich released this 2021-08-04 06:29:19 +00:00 | 372 commits to master since this release

    logo

    i3king

    New script for managing window rules.

    i3viswiz

    if the setting "focus_wrapping" is set
    to "workspace" in the i3config. i3viswiz will
    wrap the focus only inside the currently
    focused workspace instead of the whole work
    area (other monitors).

    The setting has to be present in the active config
    before the first i3viswiz invokation.

    To force this behavior otherwise, issue the following
    command:
    i3var set focus_wrap workspace

    Or to disable it:
    i3var set focus_wrap normal

    this change fixes #84

    i3menu

    Fixed issue where empty STDIN got treated as a list.

    i3run

    xdotool now also map/unmap a window to trigger
    new window rule when a new window is renamed.

    Downloads
  • 2021.05.29.6 b56025a8d3

    GHOSTSBUSTED Stable

    budRich released this 2021-05-29 11:33:49 +00:00 | 392 commits to next since this release

    logo

    i3viswiz

    Now works correctly with multiple active monitors.

    focusing back and forth in the opposite directions feels more intuitive

    When i3viswiz is used to shift focus in a
    direction (left, right, up, down) the current
    container ID is noted (i3var set). This is done
    so that the next time we focus in a direction we
    will test if the saved ID is adjacent to the
    current container at the searched direction and
    focus that if it is the case.

    less noisy output

    when i3viswiz is used to output text, it by default
    only prints a table representing the visible windows.
    It now also prints the workspace number.
    And all visible windows from all workspaces not just
    the active one. Example:

    $ i3viswiz --instance
    
    * 94475856575600 ws: 1 x: 0     y: 0     w: 1558  h: 410   | termsmall
    - 94475856763248 ws: 1 x: 1558  y: 0     w: 362   h: 272   | gl
    - 94475856286352 ws: 1 x: 0     y: 410   w: 1558  h: 643   | sublime_main
    - 94475856449344 ws: 1 x: 1558  y: 272   w: 362   h: 781   | thunar-lna
    

    In previous versions of i3viswiz the first
    line of this output contained additional
    information that is being used by other i3ass
    scripts. That info is still available, but the
    user needs to use the new --debug VARLIST
    option, to get that info. See the manpage or
    --help for more info.

    i3flip

    Use a lock file to make sure we don't "double
    execute" the script. Updated to work with new
    version of i3viswiz.

    i3fyra

    the value of the environment
    variable, I3FYRA_WS, which is used to declare
    which workspace to be used for i3fyra. Is now
    checked against a workspace name instead of a
    workspace number.

    i3-msg open is not used in i3fyra anymore,
    this shuold make the experience smoother and the
    creation of new containers faster.

    i3Kornhe

    Added 5 new commanline options to set the
    screenmargin size when moving windows in
    direction [1-9].

    Removed the use of i3-msg open and use a more
    robust method for keeping track of the active
    window, previous versions someimes changed the
    titleformat of the wrong windows becuase of the
    old method.

    i3list

    It is now possible to use multiple criteria for windows.

    The output is printed in a better organized way.
    Two new keys added to the output array:

    i3list["RID"] # root container id
    i3list["ORI"] # i3fyra orientation
    

    i3menu

    Improved the way i3menu reads from STDIN.
    Large lists (10000+ lines) loads much faster now.

    i3var

    Add variables as marks on the root container
    instead of creating separate empty windows with
    i3-msg open for each mark.

    Downloads
  • 2020.08.11.1 e0428515db

    budRich released this 2020-08-11 16:49:57 +00:00 | 381 commits to master since this release

    i3flip

    We now use the output of i3viswiz instead of a custom AWK script. This made everything more reliable and --move function now works as expected in all types of layouts, (not just tabbed and stacked as before). Also added --json, --verbose and --dryrun options.

    i3fyra

    Now keeps track of the virtual position of a window. What this means is that if you have the following window rule defined in your i3 config file:

    for_window [instance=irssi class=URxvt] focus;exec --no-startup-id i3fyra --move A
    

    And spawn a window matching the criteria it will get moved to the A container, which by default is the top-left container.

    AAB
    AAD
    CCD
    

    Just as before the containers can be toggled and swapped by using i3fyra --move DIRECTION (where direction is up,down,left or right). And if the A container would have focus, and we execute --move left it would hide the B and D containers:

    AAA
    AAA
    CCC
    

    If we in this state would execute --move right (while the A container is focused), it would move the A and C container to the right and show the B and D containers to the left, but i3fyra will also internally rename all the containers:

    ABB
    ABB
    CDD
    

    This used to mean that if we now would spawn a window matching our previously defined window rule, it would still get placed in the top-left container. This is where things are different now. In i3list there are four new keys, [VPA],[VPB],[VPC] and [VPD] which contains a number between zero and three (0-3). If i3list would get executed with the scenario above we would get the following results:

    i3list[VPA]=1
    i3list[VPB]=0
    i3list[VPC]=3
    i3list[VPD]=2
    

    the integers corresponds to the index of the hypothetical array a=([0]=A [1]=B [2]=C [3]=D), and with this information we can see that when we want to send a window to container A, we test the virtual position, and see that A is positioned at 1 (B), be placed in B instead. In most cases this is the desired result, but sometimes it isn't, and for those cases one can use the --force option (which is new) to ignore the virtual positions. But this is probably nothing that anyone needs to worry about, and is more or less only used internally in i3fyra, i3menu and i3run. This transformation to virtual positions of the containers also works with the --layout option.

    A lot of performance and stability improvements has been done in this update, and toggling layouts and containers now works much better and predictable.

    Removed --target option. I found myself never using and it just created awkward cornercase issues.

    Added --force, --array, --verbose and --dryrun options.

    i3get

    Now uses one (well, sometimes two ;) single regular expression test in bash instead of parsing the json with awk, this made the script twice as fast and also, imo, easier to maintain and extend. I also added two new --print options, s for sticky status, and e for fullscreen status. But the most important change is done to the --synk functionality, which now uses i3-msg -t subscribe instead of a while true; do sleep 10 ..., and it makes everything much more responsive while at the same time being so much more efficient and nice on system recourses. Some output is different for example "marks" will now print the whole JSON list (["mark1","mark2"...]), previous behavior was to only show the first mark unqouted. If no value is found for a requested output (--print) a line looking like:
    --i3get could not find: m
    will be printed, previous behavior was to skip the line i think this new behavior is better especially if one relies on the order of the output lines.

    i3Kornhe

    fixed typo related issue that caused windows not being moved correctly. All types of containers are now resized and moved in pixel (px) unit. When i3fyra is executed from this script, the --array option is used.

    i3list

    No big changes to the script. Added --json options and watch script to help testing and development. As well as a few new keys to the output array:

    i3list["XAB"] # family AB workspace
    i3list["XAC"] # family AC workspace
    i3list["XCD"] # family CD workspace
    i3list["XBD"] # family BD workspace
    
    i3list["VPA"] # virtual position A
    i3list["VPB"] # virtual position B
    i3list["VPC"] # virtual position C
    i3list["VPD"] # virtual position D
    

    i3menu

    Added support for i3fyras virtual positions.

    i3run

    Only change since last version is to use i3fyra --force --array ARRAY to override the new virtual positions which are not needed with i3run because it already figures out the correct container.

    i3viswiz

    Support for --json option. A lot more information is printed to the first line, to make things easier for i3fyra and i3flip.

    Downloads
  • 2020.01.26.6 0d8bb7eeaa

    TWENTY TVENNY Stable

    budRich released this 2020-01-26 22:16:09 +00:00 | 384 commits to master since this release

    2020.01.26.5

    [i3menu]

    • added sleep .05 before reading from STDIN. Hopefully fixes issue with list not getting populated.
    • Added XDG_CONFIG_HOME environment variable default.

    [i3run]

    • added --force and --FORCE options. When enabled command will get executed even if the window exist.
    Downloads
  • 2019.03.14.5 1a27f67253

    budRich released this 2019-03-14 20:23:37 +00:00 | 388 commits to master since this release

    [i3menu]

    • fix: improved autopositioning (negative xoffset works), less delay when invoked by mouse.
    • removed: test notifications.
    Downloads
  • 2019.03.14.4 9730d310b6

    budRich released this 2019-03-14 13:35:47 +00:00 | 392 commits to master since this release

    [i3get]

    • fix: issue in resulting in wrong conid being returned.

    [i3menu]

    • fix: removed extra row in vertical menus.
    • fix: less twitchy moving of menu when invoked with mouse and off screen.
    • add: negative position argument for xpos and ypos

    example

    echo list | i3menu --xpos -10 --ypos -20 --width 200 --orientation vertical
    this will result in a menu displayed at a position calculated from
    the right and bottom edges of the screen.
    x=(screenwidth-(menuwidth+xpos))
    y=(screenheight-(menuheight+ypos))
    
    if you really want the menu to appear at a "real" negative coordinate 
    (to the left of the left screen edge or above the top),
    use: --xoffset or --yoffset:
    
    echo list | i3menu \
        --xpos -0 \
        --ypos 0 \
        --width 200 \
        --orientation vertical \
        --yoffset -20 \
        --xoffset 30
    
     this would place the "top right corner" of the menu, 
    20 pixels above the active screen and 30 pixels to the right of the active screen.
    
    
    Downloads
  • 2019.03.07.2 ac94b86395

    budRich released this 2019-03-07 22:50:48 +00:00 | 394 commits to master since this release

    grand reorganization of i3ass. created a new GitHub organization: i3ass-dev.
    Where all the i3ass scripts have it's own repo. It's on these repos development will be done from now on. This (budlabs/i3ass), will be the repo where all issues should be reported host the wiki and the installable version of i3ass. I think this will be great.

    This repo also contains two fixes to issues reported by APotOfSoup:
    i3get reported wrong info when criteria was con_id. and i3flip was not moving containers at all (the latter issue is only partially fixed, moving in containers that are not tabbed or stacked with i3flip is temporarily disabled)

    more i3get fixes: there where some issues related to special characters in title of a window, and a bug that made all class searching and fetching not work. both fixed now.

    Downloads