View focus issue with simple tile key toggle
while disabling/enabling tile with key_toggle, the current focused view cannot focus and won't regain it until all views in the current workspace are closed.
https://github.com/user-attachments/assets/53d59afe-44cc-457e-854a-a8f6e9d5639b
To reproduce:
[simple-tile]
key_toggle = "
Press Super + T while two views are tiled side by side.
Can't reproduce, have you tried this in a fresh wayfire instance without any custom ipc scripts first?
Can't reproduce, have you tried this in a fresh wayfire instance without any custom ipc scripts first?
Tried this old config in a new instance, same issue
[alpha]
min_value = 1.000000
modifier = <alt>
[ammen99-bench]
average_frames = 1.000000
immediate_draw = true
refresh_interval = 1.000000
stdout = true
[animate]
close_animation = none
duration = 0ms circle
enabled_for = (type equals "toplevel" | (type equals "x-or" & focusable equals true))
fade_duration = 300ms circle
fade_enabled_for = type equals "overlay"
fire_color = \#B22303FF
fire_duration = 300ms circle
fire_enabled_for = none
fire_particle_size = 10.000000
fire_particles = 2000
minimize_animation = zoom
open_animation = none
random_fire_color = true
spin_duration = 300ms circle
spin_rotations = 3
squeezimize_duration = 500ms linear
startup_duration = 600ms circle
zap_duration = 300ms sigmoid
zoom_duration = 300ms easeOutElastic
zoom_enabled_for = none
[annotate]
clear_workspace = <alt> <super> KEY_C
draw = <alt> <super> BTN_LEFT
from_center = true
line_width = 3.000000
method = draw
stroke_color = \#FF0000FF
[autorotate-iio]
lock_rotation = false
rotate_down = <ctrl> <super> KEY_DOWN
rotate_left = <ctrl> <super> KEY_LEFT
rotate_right = <ctrl> <super> KEY_RIGHT
rotate_up = <ctrl> <super> KEY_UP
[autostart]
autostart_wf_shell = true
cursor-size = gsettings set org.gnome.desktop.interface cursor-size 32
dbus_activation_update = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = swww query || swww-daemon && swww img ~/.config/waypanel/fav.jpg
gamma = wlsunset
polkit = /usr/lib/polkit-kde-authentication-agent-1
portal = /usr/lib/xdg-desktop-portal
wayremote = python /home/neo/Git/wayremote/wayremote.py
xdg_current_desktop = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
[background-view]
app_id = mpv
command = mpv --loop=inf
file =
inhibit_input = true
[bench]
average_frames = 25
position = top_center
[blur]
blur_by_default = type is "toplevel"
bokeh_degrade = 1
bokeh_iterations = 15
bokeh_offset = 5.000000
box_degrade = 1
box_iterations = 2
box_offset = 0.700000
gaussian_degrade = 1
gaussian_iterations = 2
gaussian_offset = 1.000000
kawase_degrade = 3
kawase_iterations = 2
kawase_offset = 1.700000
method = gaussian
saturation = 0.600000
toggle = <shift> BTN_LEFT
[blur-to-background]
enabled_for = none
[command]
binding_terminal = <alt> KEY_ENTER
command_terminal = kitty
[core]
background_color = \#1A1A1AFF
close_top_view = <alt> KEY_Q | <alt> KEY_F4
disable_primary_selection = false
exit = <alt> <ctrl> KEY_BACKSPACE
focus_button_with_modifiers = false
focus_buttons = BTN_LEFT | BTN_MIDDLE | BTN_RIGHT
focus_buttons_passthrough = true
focus_buttons_pasthrough = true
max_render_time = -1
plugins = stipc alpha autostart command foreign-toplevel idle gtk-shell ipc ipc-rules resize shortcuts-inhibit window-rules xdg-activation wayfire-shell wsets focus-steal-prevent session-lock oswitch expo focus-change vswitch grid place force-fullscreen move hide-view zoom wm-actions vswipe view-shot scale fast-switcher switcher cube wobbly extra-animations animate decoration simple-tile
preferred_decoration_mode = server
transaction_timeout = 100
vheight = 3
vwidth = 3
xwayland = true
xwayland_startup_script =
[crosshair]
line_color = \#FF0000FF
line_width = 2
[cube]
activate = <alt> <ctrl> BTN_LEFT
background = \#272727FF
background_mode = simple
deform = 0
initial_animation = 350ms circle
light = true
rotate_left = none
rotate_right = none
skydome_mirror = true
speed_spin_horiz = 0.020000
speed_spin_vert = 0.020000
speed_zoom = 0.070000
zoom = 0.100000
[cursor]
hardware-cursor = true
[decoration]
active_color = \#222222AA
border_size = 0
button_order = minimize maximize close
font = sans-serif
forced_views = none
ignore_views = none
inactive_color = \#222222AA
title_height = 0
[example-plugin]
[expo]
background = \#1A1A1AFF
duration = 300ms circle
inactive_brightness = 0.700000
keyboard_interaction = true
offset = 10
select_workspace_1 = KEY_1
select_workspace_2 = KEY_2
select_workspace_3 = KEY_3
select_workspace_4 = KEY_4
select_workspace_5 = KEY_5
select_workspace_6 = KEY_6
select_workspace_7 = KEY_7
select_workspace_8 = KEY_8
select_workspace_9 = KEY_9
toggle = <super> KEY_E
transition_length = 200
[extra-animations]
blinds_duration = 700ms linear
blinds_strip_height = 20
helix_duration = 700ms linear
helix_rotations = 2
helix_strip_height = 20
shatter_duration = 1000ms linear
vortex_duration = 1000ms linear
[extra-gestures]
close_fingers = 20
move_delay = 500
move_fingers = 3
[fast-switcher]
activate = <alt> KEY_ESC
activate_backward = <alt> <shift> KEY_ESC
inactive_alpha = 0.700000
[filters]
[fisheye]
radius = 450.000000
toggle = <alt> <ctrl> KEY_F
zoom = 7.000000
[focus-change]
cross-output = false
cross-workspace = false
down = <shift> <super> KEY_DOWN
grace-down = 1
grace-left = 1
grace-right = 1
grace-up = 1
left = <shift> <super> KEY_LEFT
raise-on-change = true
right = <shift> <super> KEY_RIGHT
scan-height = 0
scan-width = 0
up = <shift> <super> KEY_UP
[focus-steal-prevent]
cancel_keys = KEY_ENTER
deny_focus_views = none
timeout = 1000
[follow-cursor-bindings]
[follow-focus]
change_output = true
change_view = true
focus_delay = 0
raise_on_top = true
threshold = 400
[force-fullscreen]
constrain_pointer = false
constraint_area = view
key_toggle_fullscreen = <alt> <super> KEY_F
preserve_aspect = true
transparent_behind_views = true
x_skew = 0.000000
y_skew = 0.000000
[foreign-toplevel]
[gapsdecor]
active_color = \#222222AA
border_size = 0
button_order = minimize maximize close
font = sans-serif
ignore_views = none
inactive_color = \#333333DD
title_height = 0
[ghost]
ghost_match =
ghost_toggle =
[grid]
duration = 300ms circle
restore = <super> KEY_DOWN | <alt> KEY_KP0
slot_b = <alt> KEY_KP2
slot_bl = <alt> KEY_KP1
slot_br = <alt> KEY_KP3
slot_c = <super> KEY_UP | <alt> KEY_KP5
slot_l = <super> KEY_LEFT | <alt> KEY_KP4
slot_r = <super> KEY_RIGHT | <alt> KEY_KP6
slot_t = <alt> KEY_KP8
slot_tl = <alt> KEY_KP7
slot_tr = <alt> KEY_KP9
type = crossfade
[gtk-shell]
[hide-cursor]
hide_delay = 2000
toggle = <ctrl> <super> KEY_H
[hide-view]
[hinge]
filename = /sys/bus/iio/devices/iio:device1/in_angl0_raw
flip_degree = 180
poll_freq = 200
[idle]
cube_max_zoom = 1.500000
cube_rotate_speed = 1.000000
cube_zoom_speed = 1000
disable_initially = false
disable_on_fullscreen = true
dpms_timeout = -1
screensaver_timeout = 3600
toggle = <ctrl> <shift> KEY_F1
[input]
3fg_drag = default
click_method = default
cursor_size = 24
cursor_theme = default
disable_touchpad_while_mouse = false
disable_touchpad_while_typing = false
drag_lock = false
gesture_sensitivity = 4.000000
kb_capslock_default_state = false
kb_numlock_default_state = true
kb_repeat_delay = 400
kb_repeat_rate = 50
left_handed_mode = false
middle_emulation = false
modifier_binding_timeout = 400
mouse_accel_profile = default
mouse_cursor_speed = 0.010000
mouse_natural_scroll = false
mouse_scroll_speed = 4.000000
natural_scroll = false
scroll_method = default
tablet_motion_mode = default
tap_and_drag = true
tap_to_click = true
touchpad_accel_profile = default
touchpad_cursor_speed = 0.000000
touchpad_scroll_speed = 1.000000
xkb_layout = br, us
xkb_model = br, us
xkb_options =
xkb_rules = evdev
xkb_variant =
[input-device]
calibration =
output =
[input-method-v1]
enable_text_input_v1 = true
enable_text_input_v3 = true
[invert]
preserve_hue = false
toggle = <alt> KEY_I
[ipc]
[ipc-extra]
[ipc-rules]
[join-views]
[keycolor]
color = \#CC3333FF
enabled = true
opacity = 0.250000
threshold = 0.500000
[mag]
default_height = 500
toggle = <alt> <super> KEY_M
zoom_level = 75
[minimal-transformer]
[move]
activate = <super> BTN_LEFT
enable_snap = false
enable_snap_off = false
join_views = false
preview_base_border = \#404080CC
preview_base_color = \#8080FF80
preview_border_width = 3
quarter_snap_threshold = 50
snap_off_threshold = 10
snap_threshold = 10
workspace_switch_after = 0
[obs]
[oswitch]
next_output = <alt> KEY_O
next_output_with_win = <alt> <shift> KEY_O
prev_output =
prev_output_with_win =
[output]
depth = 8
icc_profile =
mode = auto
position = auto
scale = 1.000000
transform = normal
vrr = false
[output:DP-1]
depth = 8
icc_profile =
mode = 1920x1080@165000
position = auto
scale = 1.000000
transform = normal
vrr = false
[output:DP-2]
depth = 8
icc_profile =
mode = 2560x1080@75000
position = 0, 0
scale = 1.000000
transform = normal
vrr = true
[place]
mode = maximize
[preserve-output]
last_output_focus_timeout = 10000
[primary-monitor-switch]
external-monitor = HDMI-A-2
[resist-edge]
command = python -c "from wayfire import WayfireSocket; sock = WayfireSocket(); sock.toggle_expo()"
cooldown-time = 500
cooldown_time = 500
corner = top-left
edge-height = 100
edge-width = 10
resistance = 0.000000
run = python /tmp/expo.py
[resize]
activate = <alt> BTN_RIGHT
activate_preserve_aspect = none
min_height = 0
min_width = 0
[scale]
allow_zoom = false
bg_color = \#000000FF
close_on_new_view = false
duration = 200ms circle
inactive_alpha = 1.000000
include_minimized = false
leave = <super> KEY_P
middle_click_close = true
minimized_alpha = 0.000000
outer_margin = 60
spacing = 50
text_color = \#CCCCCCFF
title_font_size = 22
title_overlay = never
title_position = center
toggle = BTN_SIDE
toggle_all = <super> KEY_S
[scale-title-filter]
bg_color = \#00000080
case_sensitive = false
font_size = 33
overlay = true
share_filter = false
text_color = \#CCCCCCCC
[session-lock]
[shortcuts-inhibit]
break_grab = none
ignore_views = none
inhibit_by_default = none
[show-cursor]
start_enabled = true
toggle = none
[showrepaint]
reduce_flicker = true
toggle = <alt> <super> KEY_S
[showtouch]
center_color = \#80008080
finger_color = \#00800080
toggle = <ctrl> <super> KEY_S
touch_duration = 250ms sigmoid
touch_radius = 25
[simple-tile]
animation_duration = 0ms circle
button_move = <alt> BTN_LEFT
button_resize = <alt> BTN_RIGHT
inner_gap_size = 8
keep_fullscreen_on_adjacent = true
key_focus_above = <super> KEY_K
key_focus_below = <super> KEY_J
key_focus_left = <super> KEY_H
key_focus_right = <super> KEY_L
key_toggle = <super> KEY_T
outer_horiz_gap_size = 8
outer_vert_gap_size = 8
preview_base_border = \#404080CC
preview_base_color = \#8080FF80
preview_border_width = 4
tile_by_default = all
[switch-kb-layouts]
toggle = <shift> <super> KEY_SPACE
[switcher]
next_view = <alt> KEY_TAB
prev_view = <alt> <shift> KEY_TAB
speed = 0ms sigmoid
view_thumbnail_rotation = 0
view_thumbnail_scale = 0.800000
[tablet-mode]
touch_reenable_timeout = 500
[vswipe]
background = \#1A1A1AFF
delta_threshold = 24.000000
duration = 180ms circle
enable_free_movement = false
enable_horizontal = true
enable_smooth_transition = false
enable_vertical = true
fingers = 4
gap = 32.000000
speed_cap = 0.050000
speed_factor = 256.000000
threshold = 0.350000
[vswitch]
background = \#1A1A1AFF
binding_down = <alt> <ctrl> KEY_DOWN
binding_last =
binding_left = <alt> <ctrl> KEY_LEFT
binding_right = <alt> <ctrl> KEY_RIGHT
binding_up = <alt> <ctrl> KEY_UP
duration = 80ms circle
gap = 20
send_win_down =
send_win_last =
send_win_left =
send_win_right =
send_win_up =
with_win_down = <alt> <ctrl> <shift> KEY_DOWN
with_win_last =
with_win_left = <alt> <ctrl> <shift> KEY_LEFT
with_win_right = <alt> <ctrl> <shift> KEY_RIGHT
with_win_up = <alt> <ctrl> <shift> KEY_UP
wraparound = false
[vulkan-minimal-example]
[window-rules]
hexchat = on created if app_id is "Hexchat" then start_on_output "DP-2"
hexchat_alpha = on created if app_id is "Hexchat" then set alpha 0.88
kitty = on created if app_id is "kitty" then set alpha 0.88
telegram_2 = on created if title contains "Visualizador" then start_on_output "DP-2"
thunar_dialog_crash = on created if title contains "wallpaper" then start_on_output "DP-2"
wdisplay = on created if app_id is "wdisplays" then set alpha 0.88
[window-zoom]
[winzoom]
dec_x_binding = <ctrl> <super> KEY_LEFT
dec_y_binding = <ctrl> <super> KEY_UP
inc_x_binding = <ctrl> <super> KEY_RIGHT
inc_y_binding = <ctrl> <super> KEY_DOWN
modifier = <ctrl> <super>
nearest_filtering = false
preserve_aspect = true
zoom_step = 0.100000
[wm-actions]
minimize = none
send_to_back = none
toggle_always_on_bottom = <alt> KEY_B
toggle_always_on_top = <alt> <ctrl> <shift> <super> KEY_P
toggle_fullscreen = <alt> KEY_F
toggle_maximize = none
toggle_showdesktop = <super> KEY_P
toggle_sticky = <alt> <shift> KEY_X
[wobbly]
disable_resize_effects = true
friction = 8.000000
grid_resolution = 200
spring_k = 8.000000
[workarounds]
all_dialogs_modal = true
app_id_mode = stock
disable_primary_selection = true
discard_command_output = true
dynamic_repaint_delay = false
enable_input_method_v2 = false
enable_opaque_region_damage_optimizations = false
enable_so_unloading = false
force_frame_sync = false
force_preferred_decoration_mode = true
max_buffer_size = 4096
remove_output_limits = false
use_external_output_configuration = true
[workspace-names]
background_color = \#333333B3
background_radius = 30.000000
display_duration = 500
font = sans-serif
margin = 0
position = center
show_option_names = false
text_color = \#FFFFFFFF
[wrot]
activate = <alt> <ctrl> BTN_RIGHT
activate-3d = <shift> <super> BTN_RIGHT
invert = false
reset = <ctrl> <super> KEY_R
reset-one = <super> KEY_R
reset_radius = 25.000000
sensitivity = 25
[wsets]
label_duration = 2000ms circle
[xdg-activation]
check_surface = false
only_last_request = false
timeout = 30
[zoom]
interpolation_method = 0
modifier = <alt> <ctrl> <super> KEY_Z
smoothing_duration = 300ms linear
speed = 0.010000
Perhaps I wasn't clear enough, You need to press W-KEY_T first to disable tiling, then scale the views, if you want to reproduce in the same way, put also scale toggle in mouse side button toggle = BTN_SIDE
Can't reproduce. I copied the config you provided, started latest wayfire master with it, opened two terminator windows (tiled side by side), pressed super-T to untile one of them, then pressed super-S for scale, it works as expected.
At 0:32 it works fine. You're probably focusing on the view from the left, if you do that, the view from the right will not trigger the issue anymore, so you will have to create new views again. To trigger the issue, open both views, focus on the right one, then use key_toggle.
https://github.com/user-attachments/assets/76340184-aec2-4d87-8606-f7a0c46de0cc
If you still can't reproduce it, I will try a new user with the default wayfire.ini
Gnome session, new user, using the same config you tried
https://github.com/user-attachments/assets/d1f52e0e-d8ce-4ed3-9ec6-a04b90d2eae3