aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2016-01-11Strip quotes from workspace name.Mikkel Oscar Lyderik
Fix #444 This is a temporary fix, the real fix is to store the commands as a formatted argv array, so they don't have to be reformatted all over the place.
2016-01-09Add backwards compatability for binding eventMikkel Oscar Lyderik
2016-01-09Add bindcode to binding events.Mikkel Oscar Lyderik
2016-01-09Add support for bincode commandMikkel Oscar Lyderik
If a bindsym and bincode maps to the same combination, the last one will overwrite any previous mappings.
2016-01-08Unescape string after doing var replacementMikkel Oscar Lyderik
Fix #426
2016-01-08Make IPC binding event support a compile time opt.Mikkel Oscar Lyderik
2016-01-08Reduce duplicate codeMikkel Oscar Lyderik
2016-01-08Implement IPC binding event (keyboard)Mikkel Oscar Lyderik
This implements the IPC binding event for keyboard bindings. It is slightly different from the i3 implementation [1] since sway supports more than one non-modifier key in a binding. Thus the json interface has been changed from: { ... "symbol": "t", ... } to: { ... "symbols": [ "t" ], ... } [1] http://i3wm.org/docs/ipc.html#_binding_event
2016-01-08Add function for duplication a sway_bindingMikkel Oscar Lyderik
2016-01-07Implement bindsym --releaseMikkel Oscar Lyderik
This is a "simple" version of --release (same as i3) that only supports a binding that contain one normal key. e.g.: bindsym --release $mod+x exec somthing-fun I didn't bother implementing it for a combination like `$mod+x+z` since it is a bit tricky to get right and also a bit weird to actually do on a keyboard.
2016-01-06Merge pull request #434 from mikkeloscar/detect-modifierDrew DeVault
Send IPC modifier event on bar_modifier up/down
2016-01-05Merge branch 'master' of github.com:SirCmpwn/swayMikkel Oscar Lyderik
2016-01-05Fix whitespace issues.Mikkel Oscar Lyderik
2016-01-05Only send modifier event once for active modifiersMikkel Oscar Lyderik
This makes sure that a modifier event is only sent for active bar modifiers, and that it is only sent once for each of those modifiers. An active bar modifier is a modifier defined for a bar with `mode hide` and `hidden_state hide`.
2016-01-05Clearer order of locations searched for config file.Jøhannes Lippmann
The i3wm config locations are visited _before_ using the fallback configs. The man page was confusing - it talked about the fallback configs first, but also said they are looked at "at last". By changing the order of the sentences, this should be clearer.
2016-01-05Init layout before checking configMikkel Oscar Lyderik
2016-01-05Add modifier key to bar_config jsonMikkel Oscar Lyderik
2016-01-05Move modifier name table to common/util.cMikkel Oscar Lyderik
Lookup of modifier names is required in several places, thus it makes sense to move it to a general place.
2016-01-04Revert "Free wordexp_t in config.c:get_config_path"Drew DeVault
This reverts commit 33b24736c78d9993a26d295ea3e56ad77d6f1390.
2016-01-05Send IPC modifier event on bar_modifier up/downMikkel Oscar Lyderik
Detects when a bar modifier key is pressed/released and sends a modifier IPC event to any listeners (usually swaybars). This way a swaybar can listen on the modifier event and hide/show the bar accordingly (not implemented yet) The modifier event looks like this: { "change": "pressed", // or released "modifier": "Mod4" }
2016-01-04Free wordexp_t in config.c:get_config_pathDrew DeVault
Thanks @jollywho
2016-01-05Merge pull request #433 from crondog/issue431Mikkel Oscar Lyderik
Return focus to fullscreen view
2016-01-05Return focus to fullscreen viewcrondog
This fixes https://github.com/SirCmpwn/sway/issues/431 by returning focus to the fullscreen view. Also it fixes the issue with the fullscreen view pointer not being set which did my head in
2016-01-05Detect bar modifier pressed/releasedMikkel Oscar Lyderik
2016-01-04Fix overwriting current pressed keys.Mikkel Oscar Lyderik
This fixes a bug where the key at index 0 in the `key_state_array` would be overwritten by the next pressed key. This broke any bindings consisting of multiple non-mod keys like: `$mod+a+b`.
2016-01-03swaybar: Implement binding_mode_indicatorMikkel Oscar Lyderik
2016-01-03Add IPC event typesMikkel Oscar Lyderik
Adds custom IPC_EVENT_* types
2015-12-31split togglecrondog
Not sure if you will accept this, but i find it useful (I use it when opening new terminal windows on a workspace v2: add short hand command and docs
2015-12-30Dont try and fullscreen a workspace with no viewscrondog
Found this completely by accident
2015-12-29Merge pull request #418 from mikkeloscar/sway-handle-sigtermDrew DeVault
Handle SIGTERM sent to sway
2015-12-29Handle SIGTERM sent to swayMikkel Oscar Lyderik
This makes sway handle and gracefully shut down everything when receiving a SIGTERM. Fix #416
2015-12-29Fix use-after-free when closing fullscreen viewsDrew DeVault
2015-12-28handlers: geometry_request: Better debug output.S. Christoffer Eliesen
Previous output was confusing.
2015-12-28arrange_windows_r: Round pixels to match reality, fixes calculations.S. Christoffer Eliesen
If the width or height of a container can't be evenly distributed to its children, then the layout algorithm still thought it got it right (due to using decimals) which caused a gap of one or more pixels for some window arrangements. This is fixed by this patch by first rounding off the width and height (so that decimals are never introduced) and then adjusting the last view in a container to fill the remaining pixels (which now is counted correctly due to the decimals being removed). Also, due to the way gaps are implemented, an odd sized gap can never be aligned properly, so just adjust to closest even number.
2015-12-28arrange_windows_r: Bring parent coordinates into layout calculations.S. Christoffer Eliesen
This brings consistency into the algorithm (instead of resetting and then fetching again).
2015-12-25Focus new sibling added to containerMikkel Oscar Lyderik
This makes sure that the window being added to a container gets focus.
2015-12-25Trigger workspace init event (floating)Mikkel Oscar Lyderik
Triggers workspace init event when moving a floating window to a new workspace. This is a follow up on #391 which didn't handle floating windows.
2015-12-23Use SYSCONFDIR as recommendedYacine Hmito
- swaylock config path not hardcoded anymore - the unusual and weird FALLBACK_CONFIG_DIR is no more
2015-12-22Initialize id, part twoDrew DeVault
2015-12-22Initialize IDDrew DeVault
2015-12-21Merge pull request #393 from robotanarchy/musl-libc-compatibilityDrew DeVault
musl libc compatibility
2015-12-22replace non-standard qsort_r with qsortrobotanarchy
I've tried to make as few changes, as possible. Usually the reason for using qsort_r is, that you can pass an extra userdata pointer to the compare function. However, in sway list_sort wrapped qsort_r and always called a wrapper function for comparing, the wrapper function then had the real compare function as argument. The only thing, that the wrapper function does, is dereferencing the 'left' and 'right' function arguments before passing them to the real compare function. I have renamed list_sort to list_qsort to avoid confusion (so nobody tries to use list_qsort like list_sort) and removed the wrapper functionality. Now the dereferencing must be done in the compare function, that gets passed. Some compare functions were used in both list_sort and list_seq_find. To make the difference clear, I've added a '_qsort' suffix to the compare functions, that are intended to be used with the new list_qsort. (In other words: list_qsort is not compatible anymore with list_seq_find). - Changed and renamed function (it isn't used anywhere but in commands.c, and only for sorting): compare_set -> compare_set_qsort - New wrapper functions: sway_binding_cmp_qsort (for sway_binding_cmp) sway_mouse_binding_cmp_qsort (for sway_mouse_binding_cmp)
2015-12-21Trigger ipc_event_workspace in all casesMikkel Oscar Lyderik
This makes sure that the workspace IPC event is triggered when needed. Fixes #382 while making sure that the IPC event is only triggered once.
2015-12-21remove unused execinfo.h include from debug_log.crobotanarchy
2015-12-21Merge pull request #390 from mikkeloscar/workspace-ipc-eventDrew DeVault
Don't skip all clients on ipc_workspace_event.
2015-12-21Don't skip all clients on ipc_workspace_event.Mikkel Oscar Lyderik
Only clients not subcriped to the workspace event should be skipped.
2015-12-21Trigger event on bar mode|hidden_state commandsMikkel Oscar Lyderik
2015-12-21Implement `barconfig_update` IPC eventMikkel Oscar Lyderik
2015-12-21Handle bar commands outside config fileMikkel Oscar Lyderik
Our initial implementation of `bar { }` assumed that the commands could only be used in the config. This is not true for two commands: * bar mode * bar hidden_state This patch makes it possible to issue these commands outside a bar block, for instance through swaymsg $ swaymsg bar mode hide bar-0 This does not implement the `barconfig_update` IPC event which should be trigged from these commands. I have added TODO's where this should be added once implemented.
2015-12-21Fix default swaybar fontDrew DeVault