aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-04-18Merge pull request #1178 from 4e554c4c/forkDrew DeVault
Prevent sway from duplicating on a failed fork
2017-04-18Prevent sway from duplicating on a failed forkCalvin Lee
Also remove a useless `sway_log` and replace it with a pipe
2017-04-18Merge pull request #1180 from wasamasa/feature-move-to-scratchpadDrew DeVault
Feature move to scratchpad
2017-04-18Implement and document `move [to] scratchpad`Vasilij Schneidermann
2017-04-18Add .build.yml (for builds.sr.ht)Drew DeVault
2017-04-16Merge pull request #1173 from JerziKaminsky/security_resolve_symlinkDrew DeVault
FOR_REVIEW: IPC security - Allow policy targets to be symlinks
2017-04-16Handle symlinks as IPC security targetsJerzi Kaminsky
- When policies are allocated, the ipc target path goes through symlink resolution. The result is used as the canonical for matching pids to policies at runtime. In particular, this matches up with the target of the `/proc/<pid>/exe`. - There's a possible race condition if this isn't done correctly, read below. Originally, validate_ipc_target() always tried to resolve its argument for symlinks, and returned a parogram target string if it validates. This created a possible race condition with security implications. The problem is that get_feature_policy() first independently resolved the policy target in order to check whether a policy already exists. If it didn't find any, it called alloc_feature_policy() which called validate_ipc_target() which resolved the policy target again. In the time between the two checks, the symlink could be altered, and a lucky attacker could fool the program into thinking that a policy doesn't exist for a target, and then switch the symlink to point at another file. At the very least this could allow him to create two policies for the same program target, and possibly to bypass security by associating the permissions for one target with another, or force default permissions to apply to a target for which a more specific rule has been configured. So we don't that. Instead, the policy target is resolved once and that result is used for the rest of the lookup/creation process.
2017-04-16Add resolve_path() to utilsJerzi Kaminsky
2017-04-16Add validate_ipc_target()Jerzi Kaminsky
2017-04-16Move get_feature_policy to sway/security.cJerzi Kaminsky
2017-04-16Rename get_policy to get_feature_policyJerzi Kaminsky
2017-04-16Disambiguate get_*_policy() and get_*_policy_mask()Jerzi Kaminsky
2017-04-16Merge pull request #1175 from JerziKaminsky/fix_sway_assert_variadicDrew DeVault
Fix multiple issues in sway_assert
2017-04-16Fix location reported by sway_assertJerzi Kaminsky
2017-04-16Fix variadic forwarding in sway_assertJerzi Kaminsky
_sway_assert is a variadic function which tries to delegate to another variadic function. This requires a vprintf-style variant of the delegate. https://stackoverflow.com/a/150616
2017-04-14Merge pull request #1171 from JerziKaminsky/misc_fixesDrew DeVault
Misc fixes
2017-04-14Fix style in sway-bar(5) manpageJerzi Kaminsky
2017-04-14Remain compat with libinput < 1.7.0Jerzi Kaminsky
2017-04-12Merge pull request #1147 from SirCmpwn/nvidia-supportDrew DeVault
Downgrade nvidia proprietary driver warning
2017-04-12Implement more thourough nvidia config checkDrew DeVault
2017-04-12Downgrade nvidia proprietary driver warningDrew DeVault
2017-04-10Merge pull request #1146 from SirCmpwn/pretty-print-swaymsgDrew DeVault
Add pretty printing to swaymsg
2017-04-10Merge branch 'master' into pretty-print-swaymsgDrew DeVault
2017-04-08Merge pull request #1150 from JerziKaminsky/cmake_find_libcapDrew DeVault
Add libcap check to CMake
2017-04-07Merge pull request #1155 from 4e554c4c/get_marksDrew DeVault
Add `-t get_marks` and use more i3-like marks
2017-04-07Add `-t get_marks` and use more i3-like marksCalvin Lee
In i3 every mark is unique and one mark cannot be used in more than one window, sway behavior has been amended to match this. `swaymsg -t get_marks` will now return an array of all marks used in sway. See #98
2017-04-07Merge pull request #1153 from SirCmpwn/fix-1152Drew DeVault
Fix dangling file descriptors (fixes #1152)
2017-04-07Merge pull request #1154 from ascent12/fix-1152Drew DeVault
Removed explicitly setting file descriptors to -1
2017-04-08Removed explicitly setting file descriptors to -1Scott Anderson
2017-04-07Fix dangling file descriptors (fixes #1152)Drew DeVault
2017-04-07Add libcap check to CMakeJerziKaminsky
- Moved ``<sys/capability.h>`` include inside `__linux__` guard, because all uses are similarly guarded. - <sys/capability.h> is part of an optional devel package, at least in fedora. CMake now explicitly checks that libcap devel files are available. - Added libcap to the list of install packages in .travis.yml, to make the dependency explicit. travis-ci installs the package by default, which is why this hasn't surfaced previously.
2017-04-06Merge pull request #1151 from ascent12/masterDrew DeVault
Change regex to use PCRE
2017-04-07Added designated initaliser, to prevent any possible problem withScott Anderson
ordering
2017-04-07Changed regular expressions to use PCRE for i3 compatibilityScott Anderson
2017-04-06Merge pull request #1149 from 4e554c4c/criteriaDrew DeVault
Improve criteria handling
2017-04-05Improve criteria handlingCalvin Lee
This commit changes how commands decide what container to act on. Commands get the current container though `current_container`, a global defined in sway/commands.c. If a criteria is given before a command, then the following command will be run once for every container the criteria matches with a reference to the matching container in 'current_container'. Commands should use this instead of `get_focused_container()` from now on. This commit also fixes a few (minor) mistakes made in implementing marks such as non-escaped arrows in sway(5) and calling the "mark" command "floating" by accident. It also cleans up `criteria.c` in a few places.
2017-04-03Merge pull request #1145 from 4e554c4c/marksDrew DeVault
Impliment i3-style marks
2017-04-03Impliment i3-style marksCalvin Lee
This commit adds three commands to sway: `show_marks`, `mark` and `unmark`. Marks are displayed right-aligned in the window border as i3 does. Marks may be found using criteria. Fixes #1007
2017-04-03Update man pageDrew DeVault
2017-04-03Add pretty printing to swaymsgDrew DeVault
If stdout is a tty, it will pretty print unless -r (--raw) is given. Sample outputs: ``` ~/s/s/build > ./bin/swaymsg fullscreen toggle Error: Permission denied for fullscreen toggle via IPC ~/s/s/build > ./bin/swaymsg -t get_workspaces Workspace 3:三 Output: DVI-I-1 Layout: splith Workspace 1:一 (off-screen) Output: HDMI-A-1 Layout: splith Workspace 5:五 (focused) Output: HDMI-A-1 Layout: splith ~/s/s/build > ./bin/swaymsg -t get_inputs Input device Metadot - Das Keyboard Das Keyboard Type: Keyboard Sway ID: 9456:320:Metadot_-_Das_Keyboard_Das_Keyb Input device Wacom Intuos S 2 Pen Type: Tablet tool Sway ID: 1386:827:Wacom_Intuos_S_2 Input device Wacom Intuos S 2 Pad Type: Tablet pad Sway ID: 1386:827:Wacom_Intuos_S_2 Input device Logitech Gaming Mouse G502 Type: Keyboard, Mouse Sway ID: 1133:49277:Logitech_Gaming_Mous ~/s/s/build > ./bin/swaymsg -t get_outputs Output DVI-I-1 Geometry: 1920x1080 @ 3840,0 Scale factor: 1x Workspace: 3:三 Output DVI-D-1 Geometry: 1920x1080 @ 0,0 Scale factor: 1x Workspace: 4:四 Output HDMI-A-1 Geometry: 1920x1080 @ 1920,0 Scale factor: 1x Workspace: 5:五 ```
2017-03-28Update README.mdDrew DeVault
2017-03-27Mention cap_sys_tty_config in readmeDrew DeVault
2017-03-19Merge pull request #1130 from oranenj/fix_move_next_crashDrew DeVault
Fix move next crash
2017-03-19Prevent "move next" and "move prev" commands from crashingJarkko Oranen
Fixes #1120 When the parent of a view is C_WORKSPACE and the movement direction is either MOVE_PREV or MOVE_NEXT, the code would attempt to move the views to the next output, but swayc_adjacent_output can't accept non-directional movement commands and causes undefined behaviour and a segfault. If the code is simply skipped, we end up in an infinite loop. Instead, we can allow containers whose parent is a C_WORKSPACE take the path that handles MOVE_PREV and MOVE_NEXT, which behaves as you would expect. I'm not certain that this fix is entirely correct as the desired behaviour of move_container is not very well defined, but it seems to work.
2017-03-19The default layout of a workspace should follow the outputJarkko Oranen
Hardcoding it to L_HORIZ does not make sense to me, as you get the unexpected behaviour that windows will be arranged horizontally until you switch the layout.
2017-03-18Merge pull request #1126 from zandrmartin/prevent-fullscreen-focus-stealingDrew DeVault
prevent fullscreen focus thievery
2017-03-18prevent fullscreen focus thieveryZandr Martin
I believe this fixes #1102
2017-03-18Merge pull request #1125 from zandrmartin/remove-unnecessary-todoDrew DeVault
remove unnecessary todo item
2017-03-18Merge branch 'master' into remove-unnecessary-todoDrew DeVault
2017-03-18remove unnecessary todo itemZandr Martin
As best I can tell this todo was intended to add workspace movement to the given output with the `workspace <ws> output <op>` command, but i3 does not behave this way.