{"push_id":2412010909,"size":17,"distinct_size":17,"ref":"refs/heads/experimental","head":"2f2394d67301999ca4f2f809e023d5174a8d8b0d","before":"d0485167578f2872d2bdac007cc7ee3e2c49bb4b","commits":[{"sha":"313f72f38ba87d279246a036e63826d5658caf7f","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Add ‘tab::index’ method for finding tab’s index\n\nThe loop going through tabs to find index of given tab has been\nrepeated a few times in the code.  Move it to a new method.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/313f72f38ba87d279246a036e63826d5658caf7f"},{"sha":"820f36227edcd3a7c75274bbce41730a85bdb4f0","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Fix escape and backspace handling when renaming a tab\n\nFirstly, turns out ‘substr $str, -1, 1, '';’ and ‘substr $str, -1, 1;’\ndo *not* do the same thing, yet [e64c47ada32a57201ddf: Add tab_name\nmethod] foolishly replaced the former with the latter in backspace\nhandling section of tab renaming code.  This resulted in backspace not\nworking correctly.  Fix it.\n\nSecondly, escape handling section (of the same code) never called\n$tab->disable('key_press') as it should.  This ommision means that\never since [0a52b044f1cd88e7e01f: Remove on_key_press and\ntab_key_press handlers], escape key stopped working when renaming\ntabs.  Fix that as well.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/820f36227edcd3a7c75274bbce41730a85bdb4f0"},{"sha":"4cc0864bf316250230179dd8040b39750bdb532c","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Refactor rename_tab method\n\nMove key press handling to a separte function thus somewhat reducing\nindentation level of the code.  Hopefully this is more readable for\npeople.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/4cc0864bf316250230179dd8040b39750bdb532c"},{"sha":"88199d94f76b2e9f869575f9d65ec42dd3643c49","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Handle C-h as backspace when renaming tabs","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/88199d94f76b2e9f869575f9d65ec42dd3643c49"},{"sha":"3b65035b842b1211f3cbbfe47cd51a6e85a21f61","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Fix set_tab_name OSC not working properly while renaming tab\n\nIf set_tab_name OSC is used in a non-active tab, let’s call it\n$foo, while the active tab, let’s call it $cur, is being renamed,\nthe code will assume that $foo is being renamed.  This results in\nthe new name (coming from the OSC) to be stored in $foo->{old_name}\nwhich is silently ignored.\n\nFix so that the code correctly checks whether the tab where OSC is\nissued is being renamed or not.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/3b65035b842b1211f3cbbfe47cd51a6e85a21f61"},{"sha":"7b9acaa495a96735d0cb3b1cdbdb2fe3d1672500","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Fix renaming locking up after current tab exits\n\nIf tab being renamed is destroyed (as in process running in it\nterminates) the code will not clear ‘is_inputting_name’ state and\nmake it impossible to rename any other tab.  Fix that by exiting\nthe ‘is_inputting_name’ state when current tab exits.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/7b9acaa495a96735d0cb3b1cdbdb2fe3d1672500"},{"sha":"82779a09bb8e84171ecd2cf8bbda98ab087efdac","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Make clicking on bars separating tab names a no-operation\n\nWhile at it, get rid of unnecessary space after [NEW] button.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/82779a09bb8e84171ecd2cf8bbda98ab087efdac"},{"sha":"697a2b3f026ff7e938ccd219dabfb5e9e8bcbbb4","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Don’t call make_current at the end of move_tab\n\nmove_tab does not change the current tab therefore there is no need for\nit to call make_current method.  The actual desired side effect of calling\nthat method is that it’ll unconditionally call $self->refresh.  Remove the\nindirection and call $self->refresh directly in move_tab.\n\nWhile dealing with that function, convert it to use early return so that\none level of indentation is removed and thus hopefully function made more\nreadable.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/697a2b3f026ff7e938ccd219dabfb5e9e8bcbbb4"},{"sha":"b7622bf0cd8be3efbf92b2af2ad42f71a95383d7","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Don’t refresh tabbar if make_current didn’t change anything.\n\nThere is no need for make_current to call $self->refresh if current tab\nhas not been changed.  Indeed, the invocation used to be guarded by ‘$cur\n!= tab’ check but [54c8d6beb4d65278ed6d: Always refresh in make_current]\nmade it unconditional to work-around a delay in tabbar refresh after tab\nbeing moved.\n\nHowever, the previous commit changed move_tab to call refresh directly\nrather than going through make_current so the aforementioned hack is no\nlonger necessary.  Stop unconditionally calling refresh.\n\nWhile at it, change the function by introducing an early return which\ngets rid of one level of indentation thus simplifying the function.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/b7622bf0cd8be3efbf92b2af2ad42f71a95383d7"},{"sha":"99197ea0149f5cd07e0500a60bcbe7aa7a68d188","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Indicate truncated tab names with an ellipsis","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/99197ea0149f5cd07e0500a60bcbe7aa7a68d188"},{"sha":"e695aac1470730544c50cbaed3fbd3579a260443","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Rework tabbar rendering code\n\nFirst of all, when not all tabs can fit in the tabbar, make sure that\nthe current one *and* the one following it are displayed.  This makes\nit clear that there are still tabs on the right of the active one.\n\nSecond of all, utilise as much space as possible for displaying tab\nnames instead of creating the same width limit for all tabs (even\nthose whose names are nowhere near the limit).\n\nFor example, previously if there were two tabs each tab’s name would be\ntruncated to fill at most half the tab bar.  If one of the tabs had\none-letter name, the other’s name would be truncated at half the tabbar.\nCurrently, the first tab will be displayed in full and the other will be\nlimited to occupy the rest of the tab bar.\n\nThe result is that in more cases tab names will be displayed in full.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/e695aac1470730544c50cbaed3fbd3579a260443"},{"sha":"02ff2aee93fca3cf7ee3e708ee164b628843e8a1","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Add arrows to indicate when tabbar does not fit all tabs","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/02ff2aee93fca3cf7ee3e708ee164b628843e8a1"},{"sha":"af2632758019e35dd69a90737cc35e02af69909d","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Shrink the new-tab button if terminal is very narrow\n\nDepending on the width of the terminal window, use ‘[NEW]’, ‘NEW’\nor just ‘+’ as the text on the new-tab button.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/af2632758019e35dd69a90737cc35e02af69909d"},{"sha":"2e5446e2636a9ec1e3d4a886c5eb232416f2eeb3","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Rework tab hooks creation and play with ‘goto’ a little","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/2e5446e2636a9ec1e3d4a886c5eb232416f2eeb3"},{"sha":"faf708a6918db59afb693957137a71d417c31731","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Add configuration options for formatting tab title\n\nExtend the ‘title’ resource such that it can be used to configure\nhow the tab title is displayed.  In addition to being left-aligned,\nit can now be right-aligned.  Truncation can also be changed so that\nthe title is trimmed from the beginning rather than end.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/faf708a6918db59afb693957137a71d417c31731"},{"sha":"93da28abf7eddeffdf00a33c2bcb15b84d525319","author":{"name":"Jim Diamond","email":"8045ca750172c710b15fd8f9740658ff25623557@acadiau.ca"},"message":"Geomentry fix and preserve argv options\n\n* Work around one or more bugs in urxvt V 9.12 which cause tabbed\n  terminals to open up too small and to ignore X geometry\n  resources.  These changes work for me with these choices:\n\n    fvwm2, Slackware64 13.37, my modified (narrowed) NeXT scrollbars.\n\n  I've tried a few other fonts, but the testing wasn't extensive.\n  For other scrollbar widths, you need to modify a paramter; see\n  the comments at the beginning of on_resize_all_windows().  Also,\n  I used some mystery offsets that worked for me.  YMMV.  (See the\n  comments and 5 and 27.)  NOTE: these changes work in 9.14 with\n  either of the patches suggested on 2011/01/05 on the rxvt-unicode\n  mailing list.  NOTE: these changes work in 9.15 with no patches\n  applied.\n\n* The previous version of on_start() threw away all of @argv up to\n  the \"-e\" (if it exists).  This tossed away arguments that I want,\n  most notably \"-ls\" and \"-e <some command>.  The code below\n  passes through everything except \"-pe <arg>\" and geometry.  If\n  other options are found to be problematic they will need to be\n  tossed too.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/93da28abf7eddeffdf00a33c2bcb15b84d525319"},{"sha":"2f2394d67301999ca4f2f809e023d5174a8d8b0d","author":{"name":"Michal Nazarewicz","email":"3b06a80fbb86cf4b3738455bf6d6701ef9e8c149@mina86.com"},"message":"Introduce URXVT_TAB environment variable\n\nProcess in each tab will now have a URXVT_TAB variable set in their\nenvironment.  It’s value is a total number of tabs opened by urxvt\nfollowed by a colon.  The number starts at zero and always increases.\n\nThe colon is intended for future extension as more information may be\npassed over time in the variable.\n\nThis feature can be used to provide per-tab initialisation or command.\nFor example, ~/.bashrc could include:\n\n    if [ -n \"$URXVT_TAB\" ]; then\n        tab=$URXVT_TAB\n        unset URXVT_TAB\n\n        set_urxvt_tab_name() {\n            printf '\\033]777;tabbedx;set_tab_name;%s\\007' \"$1\"\n        }\n\n        case \"$tab\" in\n        0:*)\n            set_urxvt_tab_name emacs\n            exec emacs\n            ;;\n        1:*)\n            set_urxvt_tab_name work\n            ;;\n        2:*)\n            set_urxvt_tab_name nethack\n            exec nethack\n            ;;\n        esac\n    fi\n\nto name the first three tabs ‘emacs’, ‘work’ and ‘nethack’ and start\nEmacs and NetHack in their respective tabs.","distinct":true,"url":"https://api.github.com/repos/mina86/urxvt-tabbedex/commits/2f2394d67301999ca4f2f809e023d5174a8d8b0d"}]}
{"actor":{"display_login":"mina86"}}