sway_sources = files( 'action-binder-v1.c', 'commands.c', 'config.c', 'criteria.c', 'decoration.c', 'ipc-json.c', 'ipc-server.c', 'lock.c', 'main.c', 'realtime.c', 'scene_descriptor.c', 'server.c', 'sway_text_node.c', 'swaynag.c', 'xdg_activation_v1.c', 'xdg_decoration.c', 'desktop/idle_inhibit_v1.c', 'desktop/layer_shell.c', 'desktop/output.c', 'desktop/transaction.c', 'desktop/xdg_shell.c', 'desktop/launcher.c', 'input/input-manager.c', 'input/cursor.c', 'input/keyboard.c', 'input/seat.c', 'input/seatop_default.c', 'input/seatop_down.c', 'input/seatop_move_floating.c', 'input/seatop_move_tiling.c', 'input/seatop_resize_floating.c', 'input/seatop_resize_tiling.c', 'input/switch.c', 'input/tablet.c', 'input/text_input.c', 'config/bar.c', 'config/output.c', 'config/seat.c', 'config/input.c', 'commands/action.c', 'commands/assign.c', 'commands/bar.c', 'commands/bind.c', 'commands/border.c', 'commands/client.c', 'commands/create_output.c', 'commands/default_border.c', 'commands/default_floating_border.c', 'commands/default_orientation.c', 'commands/exit.c', 'commands/exec.c', 'commands/exec_always.c', 'commands/floating.c', 'commands/floating_minmax_size.c', 'commands/floating_modifier.c', 'commands/focus.c', 'commands/focus_follows_mouse.c', 'commands/focus_on_window_activation.c', 'commands/focus_wrapping.c', 'commands/font.c', 'commands/for_window.c', 'commands/force_display_urgency_hint.c', 'commands/force_focus_wrapping.c', 'commands/fullscreen.c', 'commands/gaps.c', 'commands/gesture.c', 'commands/hide_edge_borders.c', 'commands/inhibit_idle.c', 'commands/kill.c', 'commands/mark.c', 'commands/max_render_time.c', 'commands/opacity.c', 'commands/include.c', 'commands/input.c', 'commands/layout.c', 'commands/mode.c', 'commands/mouse_warping.c', 'commands/move.c', 'commands/new_float.c', 'commands/new_window.c', 'commands/no_focus.c', 'commands/nop.c', 'commands/output.c', 'commands/popup_during_fullscreen.c', 'commands/primary_selection.c', 'commands/reload.c', 'commands/rename.c', 'commands/resize.c', 'commands/scratchpad.c', 'commands/seat.c', 'commands/seat/attach.c', 'commands/seat/cursor.c', 'commands/seat/fallback.c', 'commands/seat/hide_cursor.c', 'commands/seat/idle.c', 'commands/seat/keyboard_grouping.c', 'commands/seat/pointer_constraint.c', 'commands/seat/shortcuts_inhibitor.c', 'commands/seat/xcursor_theme.c', 'commands/set.c', 'commands/show_marks.c', 'commands/shortcuts_inhibitor.c', 'commands/smart_borders.c', 'commands/smart_gaps.c', 'commands/split.c', 'commands/sticky.c', 'commands/swaybg_command.c', 'commands/swaynag_command.c', 'commands/swap.c', 'commands/tiling_drag.c', 'commands/tiling_drag_threshold.c', 'commands/title_align.c', 'commands/title_format.c', 'commands/titlebar_border_thickness.c', 'commands/titlebar_padding.c', 'commands/unmark.c', 'commands/urgent.c', 'commands/workspace.c', 'commands/workspace_layout.c', 'commands/ws_auto_back_and_forth.c', 'commands/xwayland.c', 'commands/bar/bind.c', 'commands/bar/binding_mode_indicator.c', 'commands/bar/colors.c', 'commands/bar/font.c', 'commands/bar/gaps.c', 'commands/bar/height.c', 'commands/bar/hidden_state.c', 'commands/bar/icon_theme.c', 'commands/bar/id.c', 'commands/bar/mode.c', 'commands/bar/modifier.c', 'commands/bar/output.c', 'commands/bar/pango_markup.c', 'commands/bar/position.c', 'commands/bar/separator_symbol.c', 'commands/bar/status_command.c', 'commands/bar/status_edge_padding.c', 'commands/bar/status_padding.c', 'commands/bar/strip_workspace_numbers.c', 'commands/bar/strip_workspace_name.c', 'commands/bar/swaybar_command.c', 'commands/bar/tray_bind.c', 'commands/bar/tray_output.c', 'commands/bar/tray_padding.c', 'commands/bar/workspace_buttons.c', 'commands/bar/workspace_min_width.c', 'commands/bar/wrap_scroll.c', 'commands/input/accel_profile.c', 'commands/input/calibration_matrix.c', 'commands/input/click_method.c', 'commands/input/drag.c', 'commands/input/drag_lock.c', 'commands/input/dwt.c', 'commands/input/dwtp.c', 'commands/input/events.c', 'commands/input/left_handed.c', 'commands/input/map_from_region.c', 'commands/input/map_to_output.c', 'commands/input/map_to_region.c', 'commands/input/middle_emulation.c', 'commands/input/natural_scroll.c', 'commands/input/pointer_accel.c', 'commands/input/rotation_angle.c', 'commands/input/repeat_delay.c', 'commands/input/repeat_rate.c', 'commands/input/scroll_button.c', 'commands/input/scroll_button_lock.c', 'commands/input/scroll_factor.c', 'commands/input/scroll_method.c', 'commands/input/tap.c', 'commands/input/tap_button_map.c', 'commands/input/tool_mode.c', 'commands/input/xkb_capslock.c', 'commands/input/xkb_file.c', 'commands/input/xkb_layout.c', 'commands/input/xkb_model.c', 'commands/input/xkb_numlock.c', 'commands/input/xkb_options.c', 'commands/input/xkb_rules.c', 'commands/input/xkb_switch_layout.c', 'commands/input/xkb_variant.c', 'commands/output/adaptive_sync.c', 'commands/output/background.c', 'commands/output/disable.c', 'commands/output/dpms.c', 'commands/output/enable.c', 'commands/output/max_render_time.c', 'commands/output/mode.c', 'commands/output/position.c', 'commands/output/power.c', 'commands/output/render_bit_depth.c', 'commands/output/scale.c', 'commands/output/scale_filter.c', 'commands/output/subpixel.c', 'commands/output/toggle.c', 'commands/output/transform.c', 'commands/output/unplug.c', 'tree/arrange.c', 'tree/container.c', 'tree/node.c', 'tree/root.c', 'tree/view.c', 'tree/workspace.c', 'tree/output.c', ) sway_deps = [ cairo, drm, jsonc, libevdev, libinput, libudev, math, pango, pcre2, pixman, threads, wayland_server, wlroots, xkbcommon, xcb, xcb_icccm, ] if have_xwayland sway_sources += 'desktop/xwayland.c' endif if wlroots_features['libinput_backend'] sway_sources += 'input/libinput.c' endif executable( 'sway', sway_sources + wl_protos_src, include_directories: [sway_inc], dependencies: sway_deps, link_with: [lib_sway_common], install: true )