aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2016-03-30Implement bordersMikkel Oscar Lyderik
The borders are implemented as a surface/buffer attached to each view which is sent to and rendered by wlc in the view_pre_render callback. All the drawing logic is handled in sway/border.c and all the logic for calculating the geometry of the border/view is handled in `update_geometry` in sway/layout.c (same place as gaps are calculated).
2016-03-30Add border <none|normal|toggle|pixel> configMikkel Oscar Lyderik
2016-03-30Implement parsing of hide_edge_bordersMikkel Oscar Lyderik
2016-03-30Make client/pango.h not depend on client/window.hMikkel Oscar Lyderik
2016-03-30Add default border colorsMikkel Oscar Lyderik
2016-03-30Implement some more on bordersDrew DeVault
Note that this segfaults ALL THE TIME in wlc code. Paging @Cloudef for help, I'm at a loss.
2016-03-30Initial setup of window border renderingDrew DeVault
Please don't complain to me about the performance of this
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-25Add graphical feedback to swaylock (#526)Kevin Hamacher
2016-03-24Update to new WLC APIDrew DeVault
2016-03-20Implement 'smart_gaps' feature from i3-gapsMikkel Oscar Lyderik
2016-03-17Remove unused panel_size (and fix rearrange)Mikkel Oscar Lyderik
desktop_shell.panel_size was only used to determine if sway should rearrange the output when rendering the panel in the output_pre_render hook. This is not needed since the output will have been arranged at that point. It also caused sway to rearrange all the time when running with two or more different monitors/resolutions because panel_size kept changing with every output_pre_render callback. Should fix #514
2016-03-04Fix assigning workspaces to outputsMikkel Oscar Lyderik
It's possible to assign workspaces to certain outputs using the command: workspace <name> output <output> However, this did not work in some cases where the workspace was assigned before the given output was made available to sway. This patch fixes those cases.
2016-02-27Free config before exiting sway.Mikkel Oscar Lyderik
Apart from freeing the sway_config struct, this also terminates the swaybars spawned by sway, since they are linked by PID to the bar config structs.
2016-02-27Improve how swaybars are spawnedMikkel Oscar Lyderik
2016-02-27Differentiate between all or no outputsMikkel Oscar Lyderik
2016-02-27Make sway spawn only one bar per bar configMikkel Oscar Lyderik
2016-02-27Make single bar handle multiple outputsMikkel 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-21Fix ipc event bit masksMikkel Oscar Lyderik
2016-02-08Replace deprecated function wlc_output_get_pixels.Mikkel Oscar Lyderik
This makes IPC GET_PIXELS use the new `wlc_pixels_read` call instead of the deprecated `wlc_output_get_pixels`. The old version worked by passing a callback function to wlc which would grab the pixels and send them to the IPC client. The new version works by maintaining a list of clients who have requested the pixels of some output and then grap and send the pixels in the output_post_render hook of the `wlc_interface`.
2016-01-28Print /proc/<pid>/maps on segfaultDrew DeVault
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-25extract cairo_set_source_u32()Christoph Gysin
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-24swaybar: move headers to include/barMikkel Oscar Lyderik
2016-01-24swaybar: move core functionality to state.cMikkel Oscar Lyderik
2016-01-23Revert "s/numlen/log10/g"Drew DeVault
This reverts commit 038bb8cc7c4dee77f8ee4ba3ac1ffc47409b2370.
2016-01-23s/numlen/log10/gDrew DeVault
2016-01-19libinputCole Mickens
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-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-08Add function for getting list of modifier names.Mikkel Oscar Lyderik
Get an array of modifier names from modifier masks.
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-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-05Detect bar modifier pressed/releasedMikkel Oscar Lyderik
2016-01-03swaybar: Implement binding_mode_indicatorMikkel Oscar Lyderik
2016-01-03Add type to returned response.Mikkel Oscar Lyderik
Makes `ipc_recv_response` return a struct with size, type and payload rather than just the payload string. This is useful if the type has to be checked on the client.
2016-01-03Add IPC event typesMikkel Oscar Lyderik
Adds custom IPC_EVENT_* types
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-22swaybar: fix memory leaksprogandy
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-21Implement `barconfig_update` IPC eventMikkel Oscar Lyderik
2015-12-20Merge pull request #373 from sce/per_panel_configDrew DeVault
Per panel config
2015-12-20make gdk-pixbuf dependency really optionalprogandy