aboutsummaryrefslogtreecommitdiff
path: root/sway/commands.c
AgeCommit message (Collapse)Author
2016-03-26Load correct config on reloadMikkel Oscar Lyderik
2016-03-26Implement include commandMikkel Oscar Lyderik
The include command (`include <path>`) makes it possible to include sub config files from the main config file (or from within other sub config files). The include command uses the following rules for including config files: * the `path` can be either a full path or a path that is relative to the parent config. Shell expansion is supported, so it's possible to do `include ~/.config/sway.d/*`. * The same config file can only be included once (to prevent include cycles). If a config is included multiple times it will just be ignored after it has been included once. * Including a sub config file is the same as inserting the content of that file into the parent config, thus rules about overwriting bindsyms etc. works the same as for a single config. Implement #542
2016-03-20Merge pull request #525 from mikkeloscar/fix-clang-warningDrew DeVault
Use correct type for keycode
2016-03-20Use correct type for keycodeMikkel Oscar Lyderik
2016-03-20Implement 'smart_gaps' feature from i3-gapsMikkel Oscar Lyderik
2016-03-19Allow legal non-x11 keycodesMikkel Oscar Lyderik
2016-03-19Add config option workspace_layoutMikkel Oscar Lyderik
This implements the config parsing of `workspace_layout <default|stacking|tabbed>` http://i3wm.org/docs/userguide.html#_layout_mode_for_new_containers
2016-03-18Don't strip quotes from exec argsMikkel Oscar Lyderik
Before passing a command to a command handler the quotes are stripped from each argument in the command. This is usually the wanted behavior but causes a problem in the case of `exec` where quoted arguments can be required when passing the exec command to `/bin/sh -c`. This patch makes `exec` a special case and doesn't strip quotes from the arguments. It will just pass the exec command verbatim to the exec command handler. Fix #518
2016-02-27Improve how swaybars are spawnedMikkel Oscar Lyderik
2016-02-27Make sway spawn only one bar per bar configMikkel Oscar Lyderik
2016-02-26Correctly exit sway on errors.Mikkel Oscar Lyderik
Calling `exit` in sway_terminate prevents sway from correctly shutting down (freeing data, cleanly terminating the ipc server, etc.). A better way is to exit straight away if the failure occurs before `wlc_run` and use sway_abort as usual if it occur when wlc is running.
2016-02-25Prevent crash when showing scratchpad on new ws.Mikkel Oscar Lyderik
Fix #469
2016-02-08Squash trailing whitespaceMikkel Oscar Lyderik
2016-02-08Fix clang warningsMikkel Oscar Lyderik
2016-01-28commands: move position mousecrondog
Bounds checking works ok except it overlaps the bar. Just like with normal floating. Should be fixed once swaybar is fixed.
2016-01-27font: Allow adding font to the config. In prep for border titlescrondog
v2: Give default font and make bar use it if no bar font
2016-01-25Add quotes to multiword arguments.Mikkel Oscar Lyderik
This adds quotes around multiword arguments before they are passed to `/bin/sh -c` in an exec command. Example: I connect to irc like this: exec termite -e "mosh server tmux a" Without this patch the arguments are passed to sh as: termite -e mosh server tmux a When it should be: termite -e "mosh server tmux a" For the command to work.
2016-01-23Revert "s/numlen/log10/g"Drew DeVault
This reverts commit 038bb8cc7c4dee77f8ee4ba3ac1ffc47409b2370.
2016-01-23s/numlen/log10/gDrew DeVault
2016-01-23commands: Fix memory allocation in assignQuentin Glidic
Also use the safer snprintf since we just computed the size. Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2016-01-23commands: Fix usage of arrow in assignQuentin Glidic
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2016-01-21Strip stray whitespaceMikkel Oscar Lyderik
2016-01-19libinputCole Mickens
2016-01-15cmd_assigncrondog
This implements cmd_assign. Basically a copy and paste from cmd_for_window however it has → handling and injects a `move container to workspace`
2016-01-11Strip quotes from workspace name v2Mikkel Oscar Lyderik
This is a more general fix for #444 This reverts part of commit 222f0d44fcda494dca4d5278493a3082068743de.
2016-01-11Strip quotes of each argv when handling commandMikkel Oscar Lyderik
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 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-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-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-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-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-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-03swaybar: Implement binding_mode_indicatorMikkel Oscar Lyderik
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-29Handle SIGTERM sent to swayMikkel Oscar Lyderik
This makes sway handle and gracefully shut down everything when receiving a SIGTERM. Fix #416
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 event on bar mode|hidden_state commandsMikkel 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-18Fix default workspace name generationDrew DeVault
This fixes the issue where workspace 10 ends up being the default.
2015-12-18Merge pull request #359 from mikkeloscar/i3bar-commandDrew DeVault
Add bar option: swaybar_command <command>
2015-12-19Add bar option: swaybar_command <command>Mikkel Oscar Lyderik
2015-12-18Reload swaybar/swaybg on config reload.Mikkel Oscar Lyderik
This works by tracking the pids of the child processes in the related output container and terminating the processes and spawning new ones on a config reload. Should solve: #347
2015-12-18sway: enable workspace selection by numberprogandy