aboutsummaryrefslogtreecommitdiff
path: root/sway/commands
AgeCommit message (Collapse)Author
2018-07-24Implement floating_modifier <mod> [inverse|normal]Brian Ashworth
2018-07-24Merge pull request #2165 from swaywm/pid-workspacesDrew DeVault
Implement pid->workspace tracking
2018-07-24Merge branch 'master' into mouse-bindingsRyan Dwyer
2018-07-23Invoke mouse bindingsfrsfnrrg
The mouse binding logic is inspired/copied from the keyboard binding logic; we store a sorted list of the currently pressed buttons, and trigger a binding when the currently pressed (or just recently pressed, in the case of a release binding) buttons, as well as modifiers/container region, match those of a given binding. As the code to execute a binding is not very keyboard specific, keyboard_execute_command is renamed to seat_execute_command and moved to where the other binding handling functions are. The call to transaction_commit_dirty has been lifted out.
2018-07-23Address review comments on parse_booleanBrian Ashworth
2018-07-23Switch to using a function to parse booleansBrian Ashworth
2018-07-23Parse mouse binding optionsfrsfnrrg
First, the existing sway_binding structure is given an enumerated type code. As all flags to bindsym/bindcode are boolean, a single uint32 is used to hold all flags. The _BORDER, _CONTENTS, _TITLEBAR flags, when active, indicate in which part of a container the binding can trigger; to localize complexity, they do not overlap with the command line arguments, which center around _TITLEBAR being set by default. The keyboard handling code is adjusted for this change, as is binding_key_compare; note that BINDING_LOCKED is *not* part of the key portion of the binding. Next, list of mouse bindings is introduced and cleaned up. Finally, the binding command parsing code is extended to handle the case where bindsym is used to describe a mouse binding rather than a keysym binding; the difference between the two may be detected as late as when the first key/button is parsed, or as early as the first flag. As bindings can have multiple keycodes/keysyms/buttons, mixed keysym/button sequences are prohibited.
2018-07-23Merge branch 'master' into pid-workspacesDrew DeVault
2018-07-23Store scratchpad list in sway_root instead of serverRyan Dwyer
2018-07-23Implement scratchpadRyan Dwyer
Implements the following commands: * move scratchpad * scratchpad show * [criteria] scratchpad show Also fixes these: * Fix memory leak when executing command with criteria (use `list_free(views)` instead of `free(views)`) * Fix crash when running `move to` with no further arguments
2018-07-22Remove unnecessary includesRyan Dwyer
2018-07-22Implement floating_modifier and mouse operations for floating viewsRyan Dwyer
This implements the following: * `floating_modifier` configuration directive * Drag a floating window by its title bar * Hold mod + drag a floating window from anywhere * Resize a floating view by dragging the border * Resize a floating view by holding mod and right clicking anywhere on the view * Resize a floating view and keep aspect ratio by holding shift while resizing using either method * Mouse cursor turns into resize when hovering floating border or corner
2018-07-20Reset outputs on reloadBrian Ashworth
2018-07-21Fix urgent timer logic and remove unnecessary header includesRyan Dwyer
2018-07-21Implement force_display_urgency_hintRyan Dwyer
The directive sets the timeout before an urgent view becomes normal again after switching to it from another workspace. Also: * When an xwayland surface removes the urgent hint while the timer is active, we now ignore the request. This happens as soon as the view receives focus, so it was effectively making the timer pointless. * The timeout is now only applied when switching to it from another workspace.
2018-07-20Fix output wildcard handlingBrian Ashworth
2018-07-19Use parse_movement_directionRyan Dwyer
2018-07-19Defer the focus commandsRyan Dwyer
2018-07-19Implement focus output commandRyan Dwyer
2018-07-17Implement default_floating_border command and adjust CSD behaviourRyan Dwyer
2018-07-16Merge pull request #2276 from RyanDwyer/urgencyDrew DeVault
Implement urgency base functionality
2018-07-16Implement no_focus commandRyan Dwyer
2018-07-16Implement urgency base functionalityRyan Dwyer
Introduces a command to manually set urgency, as well as rendering of urgent views, sending the IPC event, removing urgency after focused for one second, and matching urgent views via criteria.
2018-07-15bar: free old position when changingIan Fan
2018-07-15Merge pull request #2272 from RyanDwyer/simplify-transactionsDrew DeVault
Simplify transactions by using a dirty flag on containers
2018-07-14Simplify transactions by utilising a dirty flag on containersRyan Dwyer
This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty.
2018-07-14Implement tap_button_map for input devicesBrian Ashworth
2018-07-14Force min/max size when resizing floating containersRyan Dwyer
2018-07-14Implement resize grow|shrink <direction> <amount> or <amount>Ryan Dwyer
2018-07-14Implement resize command for floating viewsRyan Dwyer
Implements the following for floating views: * resize set <width> <height> * resize <grow|shrink> <width|height|up|down|left|right> <amount>
2018-07-13add error handling for scroll button out of rangeRobert Kubosz
user will be informed if the scroll button indentifier values causes underflow or overflow.
2018-07-12expanded error detection for scroll button optionRobert Kubosz
Now the scroll_button will not accept: - letters on string beginning; - negative numbers. What is tolerated: - letters after number; - rational numbers: the fraction after dot will be omitted.
2018-07-12rm constraint for max value of button identifierRobert Kubosz
updated error message to be more adequate for current contraint
2018-07-12increase maximum value of button identifierRobert Kubosz
and also cleanup spaces
2018-07-11add scroll button optionRobert Kubosz
This commit introduces a scroll_button option, which is intended to be used with scroll_method. Now user can edit his sway config and add an scroll_button option to device section.
2018-07-11Implement floating_minimum_size and floating_maximum_sizeRyan Dwyer
2018-07-10Add get_config message type to ipcIan Fan
2018-07-09Merge branch 'master' into focus-mode-toggleDrew DeVault
2018-07-09Update for swaywm/wlroots#1126emersion
2018-07-09Implement `focus mode_toggle`emersion
2018-07-09Implement some floating move commandsRyan Dwyer
This implements the following for floating containers: * move <direction> <amount> * move [absolute] position <x> <y> * move [absolute] position mouse
2018-07-05Implement mode --pango_markupBrian Ashworth
2018-07-02cmd_assign: fix leak on errorDominique Martinet
Found through static analysis.
2018-07-02bar_cmd_modifier: fix use-after-free on errorDominique Martinet
Found through static analysis.
2018-07-02bar_cmd_font: fix leak of fontDominique Martinet
join_args is a freshly allocated string and can be used as is. Found through static analysis.
2018-07-02cmd_background: fix leak on errorDominique Martinet
Found through static analysis.
2018-07-02output commands: move !argc checks after argc gets decrementedDominique Martinet
Found through static analysis.
2018-07-02input_config: free new_input_config on errorDominique Martinet
Found through static analysis.
2018-07-02exec_always: fix leaksDominique Martinet
- child would leak in the workspace_record_pid path - removing malloc lets us get rid of That Comment nobody seems to remember what it was about - we would leak pipe fds on first fork failling - we didn't return an error if second fork failed - the final executed process still had both pipe fds (would show up in /proc/23560/fd in launched programs) - we would write twice to the pipe if execl failed for some reason (e.g. if /bin/sh doesn't exist?!)
2018-07-01Implement pid->workspace trackingDrew DeVault
When you spawn a process with the exec command, sway now notes the workspace you had focused and the pid of the child process, then assigns that workspace to the child when its window appears. Some of this is carried over from sway 0.15, but with some major refactoring and centralization of state.