diff --git a/lib/fedoradistribution.pm b/lib/fedoradistribution.pm index e1a9e46d..50921dde 100644 --- a/lib/fedoradistribution.pm +++ b/lib/fedoradistribution.pm @@ -64,7 +64,7 @@ sub init() { # If this should change in the future, we would need to enhance this routine. sub x11_start_program { my ($self, $program, $timeout, $options) = @_; - send_key (get_var("DESKTOP") eq "i3" ? get_i3_modifier() . "-d" : "alt-f2"); + send_key(get_var("DESKTOP") eq "i3" ? "alt-d" : "alt-f2"); assert_screen "desktop_runner"; type_string $program, 20; sleep 5; # because of KDE dialog - SUSE guys are doing the same! @@ -183,19 +183,5 @@ sub assert_script_sudo { return; } -sub become_root { - my ($self) = @_; - - my $rootpwd = get_var("ROOT_PASSWORD", "weakpassword"); - - if (check_screen("apps_run_terminal") || is_serial_terminal()) { - type_string("su -\n"); - sleep(2); - type_string("$rootpwd\n"); - } else { - die "No terminal to become root is present"; - } -} - 1; # vim: set sw=4 et: diff --git a/lib/i3.pm b/lib/i3.pm index 0f71bd3e..2451281b 100644 --- a/lib/i3.pm +++ b/lib/i3.pm @@ -8,48 +8,17 @@ use Exporter; use testapi; use utils; -our @EXPORT = qw/firstlaunch_setup get_i3_modifier create_user_i3_config launch_terminal/; - - -sub get_i3_modifier { - return get_var("I3_MODIFIER", 'alt'); -} - -sub firstlaunch_setup { - my %args = @_; - my $timeout = $args{timeout} || 30; - my $modifier = $args{modifier} || get_i3_modifier(); - - die "invalid modifier $modifier, only alt and super are possible" unless (($modifier eq 'alt') || ($modifier eq 'super')); - - assert_screen('i3_firstlaunch_wizard', $timeout); - - if ($modifier eq 'alt') { - send_key('esc', wait_screen_change => 1); - } else { - send_key('ret', wait_screen_change => 1); - send_key_until_needlematch('down', 'i3_generate_config'); - send_key('ret', wait_screen_change => 1); - } -} +our @EXPORT = qw/create_user_i3_config/; sub create_user_i3_config { my %args = @_; - my $login = $args{login}; - my $remove_config_wizard = $args{remove_config_wizard} || 1; assert_script_run("mkdir -p /home/$login/.config/i3/"); # ensure that no alias of cp prevents an existing config from being overwritten assert_script_run("/usr/bin/cp -f /etc/i3/config /home/$login/.config/i3/config"); - if ($remove_config_wizard) { - assert_script_run("sed -i '/i3-config-wizard/d' /home/$login/.config/i3/config"); - } - assert_script_run "chown -R $login.$login /home/$login/.config"; + assert_script_run("sed -i '/i3-config-wizard/d' /home/$login/.config/i3/config"); + assert_script_run "chown -R $login:$login /home/$login/.config"; assert_script_run "restorecon -vr /home/$login/.config"; } -sub launch_terminal { - send_key(get_i3_modifier() . '-ret'); - assert_screen("apps_run_terminal"); -} diff --git a/lib/utils.pm b/lib/utils.pm index caf5508e..5c575140 100644 --- a/lib/utils.pm +++ b/lib/utils.pm @@ -814,12 +814,23 @@ sub console_initial_setup { sub handle_welcome_screen { # handle the 'welcome' screen on GNOME and KDE since F38. shared # in a few places - if (check_screen "getting_started", 45) { + my %args = @_; + my $timeout = $args{timeout} || 45; + if (check_screen "getting_started", $timeout) { if (get_var("DESKTOP") eq "kde") { # just closing it seems to result in it running again on # next boot, so let's click Skip click_lastmatch; } + elsif (get_var("DESKTOP") eq "i3") { + # Press enter to start config, then move one line down + # and press enter once more to confirm. + send_key("ret"); + sleep(1); + send_key("down"); + sleep(1); + send_key("ret"); + } else { send_key "alt-f4"; # for GNOME 40, alt-f4 doesn't work @@ -1083,7 +1094,6 @@ sub check_desktop { # close it if it's open. my %args = ( timeout => 30, - no_firstlaunch_check => 0, @_ ); my $count = 5; @@ -1111,34 +1121,11 @@ sub check_desktop { } } - if (get_var("DESKTOP") eq 'i3') { - my $version = get_var('VERSION'); - - # i3 launches pretty quickly, but sometimes we have to wait for the - # whole VM to launch - assert_screen("i3-bar", $args{timeout}); - if ($version ne "Rawhide") { - assert_screen("${version}_background"); - } - - unless ($args{no_firstlaunch_check}) { - die "firstlaunch setup is present" if defined(check_screen('i3_firstlaunch_wizard')); - } - } else { - assert_screen "apps_menu_button", $args{timeout}; - # GNOME 40 starts on the overview by default; for consistency with - # older GNOME and KDE, let's just close it - if (match_has_tag "apps_menu_button_active") { - wait_still_screen 3; - send_key "alt-f1"; - assert_screen "apps_menu_button_inactive"; - } - } - if ($activematched) { # make sure we got to inactive after active die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive"); } +} sub quit_firefox { # Quit Firefox, handling the 'close multiple tabs' warning screen if @@ -1398,22 +1385,23 @@ sub menu_launch_type { my $app = shift; # To overcome BZ2097208, let's move the mouse out of the way # and give the launcher some time to take the correct focus. - if (get_var("DESKTOP") eq "kde") { - diag("Moving the mouse away from the launcher."); - mouse_set(1, 1); - } if (get_var("DESKTOP") eq "i3") { - send_key(get_var("I3_MODIFIER", 'alt') . "-d"); - } else { + send_key("alt-d"); + } + else { + if (get_var("DESKTOP") eq "kde") { + diag("Moving the mouse away from the launcher."); + mouse_set(1, 1); + } wait_screen_change { send_key 'super'; }; # srsly KDE y u so slo wait_still_screen 3; + type_very_safely $app; + # Wait for KDE to place focus correctly. + wait_still_screen 2; + send_key 'ret'; + wait_still_screen 3; } - type_very_safely $app; - # Wait for KDE to place focus correctly. - wait_still_screen 2; - send_key 'ret'; - wait_still_screen 3; } sub tell_source { @@ -1669,7 +1657,7 @@ sub solidify_wallpaper { } elsif ($desktop eq "gnome") { # Start the terminal to set up backgrounds. - menu_launch_type "terminal"; + menu_launch_type("terminal"); # wait to be sure it's fully open wait_still_screen(stilltime => 5, similarity_level => 38); # When the application opens, run command in it to set the background to black diff --git a/needles/i3-mousepad-printing_pdfprinter_ready.png b/needles/i3-mousepad-printing_pdfprinter_ready.png deleted file mode 100644 index 8ac76d08..00000000 Binary files a/needles/i3-mousepad-printing_pdfprinter_ready.png and /dev/null differ diff --git a/needles/i3-pavucontrol.json b/needles/i3-pavucontrol.json deleted file mode 100644 index d880e671..00000000 --- a/needles/i3-pavucontrol.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "area": [ - { - "xpos": 3, - "ypos": 3, - "width": 95, - "height": 11, - "type": "match" - }, - { - "xpos": 17, - "ypos": 22, - "width": 68, - "height": 25, - "type": "match" - }, - { - "xpos": 111, - "ypos": 26, - "width": 71, - "height": 20, - "type": "match" - }, - { - "xpos": 209, - "ypos": 25, - "width": 106, - "height": 21, - "type": "match" - } - ], - "properties": [], - "tags": [ - "audio_mixer" - ] -} \ No newline at end of file diff --git a/needles/i3-pavucontrol.png b/needles/i3-pavucontrol.png deleted file mode 100644 index 3643b35d..00000000 Binary files a/needles/i3-pavucontrol.png and /dev/null differ diff --git a/needles/addon_add-i3-20210719.json b/needles/i3/addon_add-i3-20210719.json similarity index 100% rename from needles/addon_add-i3-20210719.json rename to needles/i3/addon_add-i3-20210719.json diff --git a/needles/addon_add-i3-20210719.png b/needles/i3/addon_add-i3-20210719.png similarity index 100% rename from needles/addon_add-i3-20210719.png rename to needles/i3/addon_add-i3-20210719.png diff --git a/needles/i3/addon_add-i3-20240708.json b/needles/i3/addon_add-i3-20240708.json new file mode 100644 index 00000000..4a8d04b7 --- /dev/null +++ b/needles/i3/addon_add-i3-20240708.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 30, + "type": "match", + "xpos": 483, + "ypos": 511, + "height": 18 + } + ], + "properties": [], + "tags": [ + "firefox_addon_add" + ] +} \ No newline at end of file diff --git a/needles/i3/addon_add-i3-20240708.png b/needles/i3/addon_add-i3-20240708.png new file mode 100644 index 00000000..968f6ddc Binary files /dev/null and b/needles/i3/addon_add-i3-20240708.png differ diff --git a/needles/addon_success-i3-20210719.json b/needles/i3/addon_success-i3-20210719.json similarity index 100% rename from needles/addon_success-i3-20210719.json rename to needles/i3/addon_success-i3-20210719.json diff --git a/needles/addon_success-i3-20210719.png b/needles/i3/addon_success-i3-20210719.png similarity index 100% rename from needles/addon_success-i3-20210719.png rename to needles/i3/addon_success-i3-20210719.png diff --git a/needles/i3/addon_success-i3-20240708.json b/needles/i3/addon_success-i3-20240708.json new file mode 100644 index 00000000..c1476464 --- /dev/null +++ b/needles/i3/addon_success-i3-20240708.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "ypos": 511, + "xpos": 528, + "height": 17, + "type": "match", + "width": 62 + }, + { + "width": 20, + "type": "match", + "xpos": 951, + "ypos": 75, + "height": 19 + } + ], + "properties": [], + "tags": [ + "firefox_addon_success" + ] +} \ No newline at end of file diff --git a/needles/i3/addon_success-i3-20240708.png b/needles/i3/addon_success-i3-20240708.png new file mode 100644 index 00000000..73ee4429 Binary files /dev/null and b/needles/i3/addon_success-i3-20240708.png differ diff --git a/needles/i3/apps_run_blivetgui-i3.json b/needles/i3/apps_run_blivetgui-i3.json new file mode 100644 index 00000000..24a0b434 --- /dev/null +++ b/needles/i3/apps_run_blivetgui-i3.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 555, + "ypos": 24, + "width": 38, + "height": 17, + "type": "match" + }, + { + "xpos": 513, + "ypos": 3, + "width": 64, + "height": 13, + "type": "match" + } + ], + "properties": [], + "tags": [ + "apps_run_blivetgui" + ] +} \ No newline at end of file diff --git a/needles/i3/apps_run_blivetgui-i3.png b/needles/i3/apps_run_blivetgui-i3.png new file mode 100644 index 00000000..032bc0f1 Binary files /dev/null and b/needles/i3/apps_run_blivetgui-i3.png differ diff --git a/needles/i3/apps_run_mousepad.json b/needles/i3/apps_run_mousepad.json new file mode 100644 index 00000000..a921897a --- /dev/null +++ b/needles/i3/apps_run_mousepad.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 762, + "ypos": 4, + "width": 51, + "height": 12, + "type": "match" + }, + { + "xpos": 870, + "ypos": 23, + "width": 67, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "apps_run_mousepad" + ] +} \ No newline at end of file diff --git a/needles/i3/apps_run_mousepad.png b/needles/i3/apps_run_mousepad.png new file mode 100644 index 00000000..b4ce9475 Binary files /dev/null and b/needles/i3/apps_run_mousepad.png differ diff --git a/needles/i3/apps_run_terminal-i3-20240708.json b/needles/i3/apps_run_terminal-i3-20240708.json new file mode 100644 index 00000000..e250ea0e --- /dev/null +++ b/needles/i3/apps_run_terminal-i3-20240708.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 3, + "xpos": 2, + "height": 13, + "type": "match", + "width": 112 + } + ], + "properties": [], + "tags": [ + "apps_run_terminal" + ] +} \ No newline at end of file diff --git a/needles/i3/apps_run_terminal-i3-20240708.png b/needles/i3/apps_run_terminal-i3-20240708.png new file mode 100644 index 00000000..b9a81656 Binary files /dev/null and b/needles/i3/apps_run_terminal-i3-20240708.png differ diff --git a/needles/i3/apps_run_terminal-i3.json b/needles/i3/apps_run_terminal-i3.json new file mode 100644 index 00000000..b308c7de --- /dev/null +++ b/needles/i3/apps_run_terminal-i3.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "type": "match", + "width": 52, + "ypos": 3, + "xpos": 2, + "height": 14 + }, + { + "xpos": 128, + "ypos": 26, + "width": 57, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ + "apps_run_terminal" + ] +} \ No newline at end of file diff --git a/needles/i3/apps_run_terminal-i3.png b/needles/i3/apps_run_terminal-i3.png new file mode 100644 index 00000000..458da1a4 Binary files /dev/null and b/needles/i3/apps_run_terminal-i3.png differ diff --git a/needles/i3/getting_started_i3-20240708.json b/needles/i3/getting_started_i3-20240708.json new file mode 100644 index 00000000..2bd66f44 --- /dev/null +++ b/needles/i3/getting_started_i3-20240708.json @@ -0,0 +1,29 @@ +{ + "area": [ + { + "xpos": 493, + "ypos": 300, + "width": 143, + "height": 17, + "type": "match" + }, + { + "width": 201, + "type": "match", + "height": 16, + "xpos": 514, + "ypos": 401 + }, + { + "xpos": 519, + "ypos": 434, + "height": 14, + "width": 214, + "type": "match" + } + ], + "properties": [], + "tags": [ + "getting_started" + ] +} \ No newline at end of file diff --git a/needles/i3/getting_started_i3-20240708.png b/needles/i3/getting_started_i3-20240708.png new file mode 100644 index 00000000..7fd75b9f Binary files /dev/null and b/needles/i3/getting_started_i3-20240708.png differ diff --git a/needles/i3_firstlaunch_wizard.json b/needles/i3/getting_started_i3.json similarity index 74% rename from needles/i3_firstlaunch_wizard.json rename to needles/i3/getting_started_i3.json index 7923ccfa..22898213 100644 --- a/needles/i3_firstlaunch_wizard.json +++ b/needles/i3/getting_started_i3.json @@ -1,29 +1,29 @@ -{ - "area": [ - { - "xpos": 493, - "ypos": 281, - "width": 137, - "height": 13, - "type": "match" - }, - { - "xpos": 514, - "ypos": 364, - "width": 201, - "height": 16, - "type": "match" - }, - { - "xpos": 519, - "ypos": 391, - "width": 214, - "height": 14, - "type": "match" - } - ], - "properties": [], - "tags": [ - "i3_firstlaunch_wizard" - ] -} +{ + "area": [ + { + "xpos": 492, + "ypos": 283, + "width": 142, + "height": 13, + "type": "match" + }, + { + "xpos": 514, + "ypos": 364, + "width": 201, + "height": 16, + "type": "match" + }, + { + "xpos": 519, + "ypos": 391, + "width": 214, + "height": 14, + "type": "match" + } + ], + "properties": [], + "tags": [ + "getting_started" + ] +} \ No newline at end of file diff --git a/needles/i3_firstlaunch_wizard.png b/needles/i3/getting_started_i3.png similarity index 100% rename from needles/i3_firstlaunch_wizard.png rename to needles/i3/getting_started_i3.png diff --git a/needles/i3/i3-bar-20240708.json b/needles/i3/i3-bar-20240708.json new file mode 100644 index 00000000..b96dd5a5 --- /dev/null +++ b/needles/i3/i3-bar-20240708.json @@ -0,0 +1,31 @@ +{ + "area": [ + { + "type": "match", + "width": 16, + "height": 17, + "ypos": 748, + "xpos": 2 + }, + { + "height": 14, + "ypos": 751, + "xpos": 408, + "type": "match", + "width": 15 + }, + { + "height": 14, + "xpos": 460, + "ypos": 750, + "width": 18, + "type": "match" + } + ], + "properties": [], + "tags": [ + "i3-bar", + "apps_menu_button", + "apps_menu_button_inactive" + ] +} diff --git a/needles/i3/i3-bar-20240708.png b/needles/i3/i3-bar-20240708.png new file mode 100644 index 00000000..3603af43 Binary files /dev/null and b/needles/i3/i3-bar-20240708.png differ diff --git a/needles/i3-bar.json b/needles/i3/i3-bar.json similarity index 79% rename from needles/i3-bar.json rename to needles/i3/i3-bar.json index 82df0840..0a9b0511 100644 --- a/needles/i3-bar.json +++ b/needles/i3/i3-bar.json @@ -24,6 +24,8 @@ ], "properties": [], "tags": [ - "i3-bar" + "i3-bar", + "apps_menu_button", + "apps_menu_button_inactive" ] -} \ No newline at end of file +} diff --git a/needles/i3-bar.png b/needles/i3/i3-bar.png similarity index 100% rename from needles/i3-bar.png rename to needles/i3/i3-bar.png diff --git a/needles/i3/i3-blivet_gui_application.json b/needles/i3/i3-blivet_gui_application.json new file mode 100644 index 00000000..e26138f3 --- /dev/null +++ b/needles/i3/i3-blivet_gui_application.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 343, + "ypos": 3, + "width": 62, + "height": 15, + "type": "match" + }, + { + "xpos": 7, + "ypos": 716, + "width": 123, + "height": 23, + "type": "match" + } + ], + "properties": [], + "tags": [ + "blivet_gui_application" + ] +} \ No newline at end of file diff --git a/needles/i3/i3-blivet_gui_application.png b/needles/i3/i3-blivet_gui_application.png new file mode 100644 index 00000000..318dc16a Binary files /dev/null and b/needles/i3/i3-blivet_gui_application.png differ diff --git a/needles/i3/i3-dmenu-20240708.json b/needles/i3/i3-dmenu-20240708.json new file mode 100644 index 00000000..da08aaf2 --- /dev/null +++ b/needles/i3/i3-dmenu-20240708.json @@ -0,0 +1,29 @@ +{ + "area": [ + { + "ypos": 0, + "xpos": 1, + "height": 17, + "type": "match", + "width": 44 + }, + { + "ypos": 2, + "xpos": 998, + "height": 18, + "type": "match", + "width": 25 + }, + { + "xpos": 370, + "ypos": 5, + "width": 24, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ + "desktop_runner" + ] +} \ No newline at end of file diff --git a/needles/i3/i3-dmenu-20240708.png b/needles/i3/i3-dmenu-20240708.png new file mode 100644 index 00000000..cfb37b78 Binary files /dev/null and b/needles/i3/i3-dmenu-20240708.png differ diff --git a/needles/i3-dmenu.json b/needles/i3/i3-dmenu.json similarity index 100% rename from needles/i3-dmenu.json rename to needles/i3/i3-dmenu.json diff --git a/needles/i3-dmenu.png b/needles/i3/i3-dmenu.png similarity index 100% rename from needles/i3-dmenu.png rename to needles/i3/i3-dmenu.png diff --git a/needles/i3/i3-lightdm-login_screen-20240708.json b/needles/i3/i3-lightdm-login_screen-20240708.json new file mode 100644 index 00000000..f9420caa --- /dev/null +++ b/needles/i3/i3-lightdm-login_screen-20240708.json @@ -0,0 +1,25 @@ +{ + "area": [ + { + "height": 41, + "ypos": 369, + "xpos": 460, + "type": "match", + "width": 130 + }, + { + "xpos": 599, + "ypos": 425, + "height": 24, + "width": 53, + "type": "match" + } + ], + "properties": [], + "tags": [ + "login_screen", + "graphical_login_input", + "graphical_login", + "lightdm_login_screen" + ] +} \ No newline at end of file diff --git a/needles/i3/i3-lightdm-login_screen-20240708.png b/needles/i3/i3-lightdm-login_screen-20240708.png new file mode 100644 index 00000000..72c3ca43 Binary files /dev/null and b/needles/i3/i3-lightdm-login_screen-20240708.png differ diff --git a/needles/i3-lightdm-login_screen-no_cursor.json b/needles/i3/i3-lightdm-login_screen-no_cursor.json similarity index 100% rename from needles/i3-lightdm-login_screen-no_cursor.json rename to needles/i3/i3-lightdm-login_screen-no_cursor.json diff --git a/needles/i3-lightdm-login_screen-no_cursor.png b/needles/i3/i3-lightdm-login_screen-no_cursor.png similarity index 100% rename from needles/i3-lightdm-login_screen-no_cursor.png rename to needles/i3/i3-lightdm-login_screen-no_cursor.png diff --git a/needles/i3-lightdm-login_screen.json b/needles/i3/i3-lightdm-login_screen.json similarity index 100% rename from needles/i3-lightdm-login_screen.json rename to needles/i3/i3-lightdm-login_screen.json diff --git a/needles/i3-lightdm-login_screen.png b/needles/i3/i3-lightdm-login_screen.png similarity index 100% rename from needles/i3-lightdm-login_screen.png rename to needles/i3/i3-lightdm-login_screen.png diff --git a/needles/i3/i3-logout-bar-20240708.json b/needles/i3/i3-logout-bar-20240708.json new file mode 100644 index 00000000..65455bf8 --- /dev/null +++ b/needles/i3/i3-logout-bar-20240708.json @@ -0,0 +1,26 @@ +{ + "area": [ + { + "type": "match", + "width": 180, + "height": 17, + "ypos": 7, + "xpos": 4 + }, + { + "click_point": { + "ypos": 7.5, + "xpos": 36.5 + }, + "type": "match", + "ypos": 9, + "width": 73, + "xpos": 891, + "height": 15 + } + ], + "properties": [], + "tags": [ + "i3-logout-bar" + ] +} \ No newline at end of file diff --git a/needles/i3/i3-logout-bar-20240708.png b/needles/i3/i3-logout-bar-20240708.png new file mode 100644 index 00000000..27fe2801 Binary files /dev/null and b/needles/i3/i3-logout-bar-20240708.png differ diff --git a/needles/i3-logout-bar.json b/needles/i3/i3-logout-bar.json similarity index 100% rename from needles/i3-logout-bar.json rename to needles/i3/i3-logout-bar.json diff --git a/needles/i3-logout-bar.png b/needles/i3/i3-logout-bar.png similarity index 100% rename from needles/i3-logout-bar.png rename to needles/i3/i3-logout-bar.png diff --git a/needles/i3-mousepad-printing_pdfprinter_ready.json b/needles/i3/i3-mousepad-printing_print-20240708.json similarity index 52% rename from needles/i3-mousepad-printing_pdfprinter_ready.json rename to needles/i3/i3-mousepad-printing_print-20240708.json index 9e345f26..c476687a 100644 --- a/needles/i3-mousepad-printing_pdfprinter_ready.json +++ b/needles/i3/i3-mousepad-printing_print-20240708.json @@ -1,19 +1,19 @@ { "area": [ { - "xpos": 227, - "ypos": 200, - "width": 113, - "height": 21, - "type": "match", + "ypos": 623, "click_point": { - "xpos": 56.5, + "xpos": 28, "ypos": 10.5 - } + }, + "type": "match", + "xpos": 738, + "height": 21, + "width": 56 } ], "properties": [], "tags": [ - "printing_pdfprinter_ready" + "printing_print" ] } \ No newline at end of file diff --git a/needles/i3/i3-mousepad-printing_print-20240708.png b/needles/i3/i3-mousepad-printing_print-20240708.png new file mode 100644 index 00000000..5bad48a1 Binary files /dev/null and b/needles/i3/i3-mousepad-printing_print-20240708.png differ diff --git a/needles/i3-mousepad-printing_print.json b/needles/i3/i3-mousepad-printing_print.json similarity index 100% rename from needles/i3-mousepad-printing_print.json rename to needles/i3/i3-mousepad-printing_print.json diff --git a/needles/i3-mousepad-printing_print.png b/needles/i3/i3-mousepad-printing_print.png similarity index 100% rename from needles/i3-mousepad-printing_print.png rename to needles/i3/i3-mousepad-printing_print.png diff --git a/needles/i3-mupdf-printing_check_sentence.json b/needles/i3/i3-mupdf-printing_check_sentence.json similarity index 100% rename from needles/i3-mupdf-printing_check_sentence.json rename to needles/i3/i3-mupdf-printing_check_sentence.json diff --git a/needles/i3-mupdf-printing_check_sentence.png b/needles/i3/i3-mupdf-printing_check_sentence.png similarity index 100% rename from needles/i3-mupdf-printing_check_sentence.png rename to needles/i3/i3-mupdf-printing_check_sentence.png diff --git a/needles/i3-urxvt-run.json b/needles/i3/i3-urxvt-run.json similarity index 100% rename from needles/i3-urxvt-run.json rename to needles/i3/i3-urxvt-run.json diff --git a/needles/i3-urxvt-run.png b/needles/i3/i3-urxvt-run.png similarity index 100% rename from needles/i3-urxvt-run.png rename to needles/i3/i3-urxvt-run.png diff --git a/needles/i3/i3_dunst_foo_notification-20240708.json b/needles/i3/i3_dunst_foo_notification-20240708.json new file mode 100644 index 00000000..e6dbc8ac --- /dev/null +++ b/needles/i3/i3_dunst_foo_notification-20240708.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 19, + "xpos": 713, + "ypos": 60, + "width": 285, + "type": "match" + } + ], + "properties": [], + "tags": [ + "i3_dunst_foo_notification" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_dunst_foo_notification-20240708.png b/needles/i3/i3_dunst_foo_notification-20240708.png new file mode 100644 index 00000000..57261cde Binary files /dev/null and b/needles/i3/i3_dunst_foo_notification-20240708.png differ diff --git a/needles/i3/i3_dunst_foo_notification-20240718.json b/needles/i3/i3_dunst_foo_notification-20240718.json new file mode 100644 index 00000000..66e67bd3 --- /dev/null +++ b/needles/i3/i3_dunst_foo_notification-20240718.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 720, + "type": "match", + "ypos": 58, + "width": 74, + "height": 35 + } + ], + "properties": [], + "tags": [ + "i3_dunst_foo_notification" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_dunst_foo_notification-20240718.png b/needles/i3/i3_dunst_foo_notification-20240718.png new file mode 100644 index 00000000..09a1785c Binary files /dev/null and b/needles/i3/i3_dunst_foo_notification-20240718.png differ diff --git a/needles/i3_dunst_foo_notification.json b/needles/i3/i3_dunst_foo_notification.json similarity index 100% rename from needles/i3_dunst_foo_notification.json rename to needles/i3/i3_dunst_foo_notification.json diff --git a/needles/i3_dunst_foo_notification.png b/needles/i3/i3_dunst_foo_notification.png similarity index 100% rename from needles/i3_dunst_foo_notification.png rename to needles/i3/i3_dunst_foo_notification.png diff --git a/needles/i3/i3_windows_split-20240708.json b/needles/i3/i3_windows_split-20240708.json new file mode 100644 index 00000000..e7af0ed2 --- /dev/null +++ b/needles/i3/i3_windows_split-20240708.json @@ -0,0 +1,29 @@ +{ + "area": [ + { + "ypos": 2, + "xpos": 0, + "height": 16, + "type": "match", + "width": 679 + }, + { + "type": "match", + "width": 373, + "height": 128, + "ypos": 396, + "xpos": 328 + }, + { + "xpos": 497, + "ypos": 42, + "height": 23, + "width": 132, + "type": "match" + } + ], + "properties": [], + "tags": [ + "i3_windows_split" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_windows_split-20240708.png b/needles/i3/i3_windows_split-20240708.png new file mode 100644 index 00000000..eb81f3f6 Binary files /dev/null and b/needles/i3/i3_windows_split-20240708.png differ diff --git a/needles/i3/i3_windows_split-20240718.json b/needles/i3/i3_windows_split-20240718.json new file mode 100644 index 00000000..d146004f --- /dev/null +++ b/needles/i3/i3_windows_split-20240718.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "ypos": 0, + "height": 47, + "width": 100, + "xpos": 630, + "type": "match" + }, + { + "xpos": 309, + "ypos": 2, + "width": 69, + "height": 40, + "type": "match" + } + ], + "properties": [], + "tags": [ + "i3_windows_split" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_windows_split-20240718.png b/needles/i3/i3_windows_split-20240718.png new file mode 100644 index 00000000..c1bc6314 Binary files /dev/null and b/needles/i3/i3_windows_split-20240718.png differ diff --git a/needles/i3_windows_split.json b/needles/i3/i3_windows_split.json similarity index 100% rename from needles/i3_windows_split.json rename to needles/i3/i3_windows_split.json diff --git a/needles/i3_windows_split.png b/needles/i3/i3_windows_split.png similarity index 100% rename from needles/i3_windows_split.png rename to needles/i3/i3_windows_split.png diff --git a/needles/i3/i3_windows_stacked-20240708.json b/needles/i3/i3_windows_stacked-20240708.json new file mode 100644 index 00000000..fcf62f01 --- /dev/null +++ b/needles/i3/i3_windows_stacked-20240708.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 55, + "ypos": 2, + "xpos": 0, + "type": "match", + "width": 117 + } + ], + "properties": [], + "tags": [ + "i3_windows_stacked" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_windows_stacked-20240708.png b/needles/i3/i3_windows_stacked-20240708.png new file mode 100644 index 00000000..ca7c145e Binary files /dev/null and b/needles/i3/i3_windows_stacked-20240708.png differ diff --git a/needles/i3/i3_windows_stacked-20240718.json b/needles/i3/i3_windows_stacked-20240718.json new file mode 100644 index 00000000..675cc4e3 --- /dev/null +++ b/needles/i3/i3_windows_stacked-20240718.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 2, + "width": 117, + "height": 55, + "xpos": 0, + "type": "match" + } + ], + "properties": [], + "tags": [ + "i3_windows_stacked" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_windows_stacked-20240718.png b/needles/i3/i3_windows_stacked-20240718.png new file mode 100644 index 00000000..a3286cbc Binary files /dev/null and b/needles/i3/i3_windows_stacked-20240718.png differ diff --git a/needles/i3_windows_stacked.json b/needles/i3/i3_windows_stacked.json similarity index 100% rename from needles/i3_windows_stacked.json rename to needles/i3/i3_windows_stacked.json diff --git a/needles/i3_windows_stacked.png b/needles/i3/i3_windows_stacked.png similarity index 100% rename from needles/i3_windows_stacked.png rename to needles/i3/i3_windows_stacked.png diff --git a/needles/i3/i3_windows_tabbed-20240708.json b/needles/i3/i3_windows_tabbed-20240708.json new file mode 100644 index 00000000..614808e9 --- /dev/null +++ b/needles/i3/i3_windows_tabbed-20240708.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 18, + "xpos": 0, + "ypos": 2, + "width": 824, + "type": "match" + } + ], + "properties": [], + "tags": [ + "i3_windows_tabbed" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_windows_tabbed-20240708.png b/needles/i3/i3_windows_tabbed-20240708.png new file mode 100644 index 00000000..eaa551de Binary files /dev/null and b/needles/i3/i3_windows_tabbed-20240708.png differ diff --git a/needles/i3/i3_windows_tabbed-20240718.json b/needles/i3/i3_windows_tabbed-20240718.json new file mode 100644 index 00000000..09f403f7 --- /dev/null +++ b/needles/i3/i3_windows_tabbed-20240718.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "xpos": 460, + "height": 46, + "width": 112, + "ypos": 0 + } + ], + "properties": [], + "tags": [ + "i3_windows_tabbed" + ] +} \ No newline at end of file diff --git a/needles/i3/i3_windows_tabbed-20240718.png b/needles/i3/i3_windows_tabbed-20240718.png new file mode 100644 index 00000000..4bba6a5f Binary files /dev/null and b/needles/i3/i3_windows_tabbed-20240718.png differ diff --git a/needles/i3_windows_tabbed.json b/needles/i3/i3_windows_tabbed.json similarity index 100% rename from needles/i3_windows_tabbed.json rename to needles/i3/i3_windows_tabbed.json diff --git a/needles/i3_windows_tabbed.png b/needles/i3/i3_windows_tabbed.png similarity index 100% rename from needles/i3_windows_tabbed.png rename to needles/i3/i3_windows_tabbed.png diff --git a/needles/lightdm-login_jack.json b/needles/i3/lightdm-login_jack.json similarity index 100% rename from needles/lightdm-login_jack.json rename to needles/i3/lightdm-login_jack.json diff --git a/needles/lightdm-login_jack.png b/needles/i3/lightdm-login_jack.png similarity index 100% rename from needles/lightdm-login_jack.png rename to needles/i3/lightdm-login_jack.png diff --git a/needles/lightdm-login_jim.json b/needles/i3/lightdm-login_jim.json similarity index 100% rename from needles/lightdm-login_jim.json rename to needles/i3/lightdm-login_jim.json diff --git a/needles/lightdm-login_jim.png b/needles/i3/lightdm-login_jim.png similarity index 100% rename from needles/lightdm-login_jim.png rename to needles/i3/lightdm-login_jim.png diff --git a/needles/lightdm-login_wrong_password.json b/needles/i3/lightdm-login_wrong_password.json similarity index 100% rename from needles/lightdm-login_wrong_password.json rename to needles/i3/lightdm-login_wrong_password.json diff --git a/needles/lightdm-login_wrong_password.png b/needles/i3/lightdm-login_wrong_password.png similarity index 100% rename from needles/lightdm-login_wrong_password.png rename to needles/i3/lightdm-login_wrong_password.png diff --git a/needles/i3/lightdm_power_menu-20240708.json b/needles/i3/lightdm_power_menu-20240708.json new file mode 100644 index 00000000..db1e9c22 --- /dev/null +++ b/needles/i3/lightdm_power_menu-20240708.json @@ -0,0 +1,33 @@ +{ + "area": [ + { + "xpos": 966, + "height": 19, + "width": 54, + "ypos": 4, + "type": "match", + "click_point": { + "ypos": 9.5, + "xpos": 42 + } + }, + { + "width": 89, + "type": "match", + "xpos": 358, + "ypos": 321, + "height": 91 + }, + { + "width": 56, + "type": "match", + "xpos": 597, + "ypos": 424, + "height": 25 + } + ], + "properties": [], + "tags": [ + "lightdm_power_menu" + ] +} \ No newline at end of file diff --git a/needles/i3/lightdm_power_menu-20240708.png b/needles/i3/lightdm_power_menu-20240708.png new file mode 100644 index 00000000..3c26418b Binary files /dev/null and b/needles/i3/lightdm_power_menu-20240708.png differ diff --git a/needles/i3/lightdm_power_menu-reboot-20240708.json b/needles/i3/lightdm_power_menu-reboot-20240708.json new file mode 100644 index 00000000..1d9c1513 --- /dev/null +++ b/needles/i3/lightdm_power_menu-reboot-20240708.json @@ -0,0 +1,40 @@ +{ + "area": [ + { + "type": "match", + "width": 76, + "height": 85, + "ypos": 322, + "xpos": 366 + }, + { + "height": 21, + "ypos": 426, + "xpos": 599, + "type": "match", + "width": 54 + }, + { + "height": 21, + "xpos": 861, + "width": 82, + "ypos": 85, + "type": "match", + "click_point": { + "xpos": 41, + "ypos": 10.5 + } + }, + { + "width": 59, + "type": "match", + "xpos": 965, + "ypos": 1, + "height": 25 + } + ], + "properties": [], + "tags": [ + "lightdm_power_menu-reboot" + ] +} \ No newline at end of file diff --git a/needles/i3/lightdm_power_menu-reboot-20240708.png b/needles/i3/lightdm_power_menu-reboot-20240708.png new file mode 100644 index 00000000..ba8793b2 Binary files /dev/null and b/needles/i3/lightdm_power_menu-reboot-20240708.png differ diff --git a/needles/i3/lightdm_power_menu-reboot-confirm.json b/needles/i3/lightdm_power_menu-reboot-confirm.json new file mode 100644 index 00000000..e7b6a81f --- /dev/null +++ b/needles/i3/lightdm_power_menu-reboot-confirm.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 663, + "ypos": 428, + "width": 51, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "lightdm_power_menu-reboot-confirm" + ] +} \ No newline at end of file diff --git a/needles/i3/lightdm_power_menu-reboot-confirm.png b/needles/i3/lightdm_power_menu-reboot-confirm.png new file mode 100644 index 00000000..f4904bde Binary files /dev/null and b/needles/i3/lightdm_power_menu-reboot-confirm.png differ diff --git a/needles/lightdm_power_menu-reboot.json b/needles/i3/lightdm_power_menu-reboot.json similarity index 100% rename from needles/lightdm_power_menu-reboot.json rename to needles/i3/lightdm_power_menu-reboot.json diff --git a/needles/lightdm_power_menu-reboot.png b/needles/i3/lightdm_power_menu-reboot.png similarity index 100% rename from needles/lightdm_power_menu-reboot.png rename to needles/i3/lightdm_power_menu-reboot.png diff --git a/needles/i3/lightdm_power_menu-shutdown-confirm-20240709.json b/needles/i3/lightdm_power_menu-shutdown-confirm-20240709.json new file mode 100644 index 00000000..4b893a33 --- /dev/null +++ b/needles/i3/lightdm_power_menu-shutdown-confirm-20240709.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 659, + "ypos": 428, + "width": 65, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "lightdm_power_menu-shutdown-confirm" + ] +} \ No newline at end of file diff --git a/needles/i3/lightdm_power_menu-shutdown-confirm-20240709.png b/needles/i3/lightdm_power_menu-shutdown-confirm-20240709.png new file mode 100644 index 00000000..1b3f347d Binary files /dev/null and b/needles/i3/lightdm_power_menu-shutdown-confirm-20240709.png differ diff --git a/needles/lightdm_power_menu-shutdown-confirm.json b/needles/i3/lightdm_power_menu-shutdown-confirm.json similarity index 100% rename from needles/lightdm_power_menu-shutdown-confirm.json rename to needles/i3/lightdm_power_menu-shutdown-confirm.json diff --git a/needles/lightdm_power_menu-shutdown-confirm.png b/needles/i3/lightdm_power_menu-shutdown-confirm.png similarity index 100% rename from needles/lightdm_power_menu-shutdown-confirm.png rename to needles/i3/lightdm_power_menu-shutdown-confirm.png diff --git a/needles/lightdm_power_menu.json b/needles/i3/lightdm_power_menu.json similarity index 100% rename from needles/lightdm_power_menu.json rename to needles/i3/lightdm_power_menu.json diff --git a/needles/lightdm_power_menu.png b/needles/i3/lightdm_power_menu.png similarity index 100% rename from needles/lightdm_power_menu.png rename to needles/i3/lightdm_power_menu.png diff --git a/needles/i3/lightdm_user_selection-20240708.json b/needles/i3/lightdm_user_selection-20240708.json new file mode 100644 index 00000000..9ce372d7 --- /dev/null +++ b/needles/i3/lightdm_user_selection-20240708.json @@ -0,0 +1,33 @@ +{ + "area": [ + { + "type": "match", + "width": 51, + "ypos": 426, + "xpos": 600, + "height": 21 + }, + { + "width": 43, + "xpos": 624, + "height": 47, + "type": "match", + "click_point": { + "ypos": 23.5, + "xpos": 21.5 + }, + "ypos": 320 + }, + { + "height": 90, + "ypos": 321, + "xpos": 364, + "type": "match", + "width": 81 + } + ], + "properties": [], + "tags": [ + "lightdm_user_selection" + ] +} \ No newline at end of file diff --git a/needles/i3/lightdm_user_selection-20240708.png b/needles/i3/lightdm_user_selection-20240708.png new file mode 100644 index 00000000..00c88de9 Binary files /dev/null and b/needles/i3/lightdm_user_selection-20240708.png differ diff --git a/needles/lightdm_user_selection.json b/needles/i3/lightdm_user_selection.json similarity index 100% rename from needles/lightdm_user_selection.json rename to needles/i3/lightdm_user_selection.json diff --git a/needles/lightdm_user_selection.png b/needles/i3/lightdm_user_selection.png similarity index 100% rename from needles/lightdm_user_selection.png rename to needles/i3/lightdm_user_selection.png diff --git a/needles/i3/login_jack-i3.json b/needles/i3/login_jack-i3.json new file mode 100644 index 00000000..e86e7435 --- /dev/null +++ b/needles/i3/login_jack-i3.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 465, + "ypos": 273, + "width": 87, + "height": 23, + "type": "match" + } + ], + "properties": [], + "tags": [ + "login_jack" + ] +} \ No newline at end of file diff --git a/needles/i3/login_jack-i3.png b/needles/i3/login_jack-i3.png new file mode 100644 index 00000000..5bac9735 Binary files /dev/null and b/needles/i3/login_jack-i3.png differ diff --git a/needles/i3/login_jim-i3.json b/needles/i3/login_jim-i3.json new file mode 100644 index 00000000..c18be1ef --- /dev/null +++ b/needles/i3/login_jim-i3.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 466, + "ypos": 366, + "width": 61, + "height": 25, + "type": "match" + } + ], + "properties": [], + "tags": [ + "login_jim" + ] +} \ No newline at end of file diff --git a/needles/i3/login_jim-i3.png b/needles/i3/login_jim-i3.png new file mode 100644 index 00000000..42854931 Binary files /dev/null and b/needles/i3/login_jim-i3.png differ diff --git a/needles/i3/login_wrong_password-20240709.json b/needles/i3/login_wrong_password-20240709.json new file mode 100644 index 00000000..19ba253f --- /dev/null +++ b/needles/i3/login_wrong_password-20240709.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 404, + "ypos": 408, + "width": 128, + "height": 23, + "type": "match" + } + ], + "properties": [], + "tags": [ + "login_wrong_password" + ] +} \ No newline at end of file diff --git a/needles/i3/login_wrong_password-20240709.png b/needles/i3/login_wrong_password-20240709.png new file mode 100644 index 00000000..7fc93713 Binary files /dev/null and b/needles/i3/login_wrong_password-20240709.png differ diff --git a/needles/i3/mousepad_no_document_open-20240708.json b/needles/i3/mousepad_no_document_open-20240708.json new file mode 100644 index 00000000..ab6f5bb4 --- /dev/null +++ b/needles/i3/mousepad_no_document_open-20240708.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 6, + "xpos": 684, + "height": 19, + "type": "match", + "width": 182 + } + ], + "properties": [], + "tags": [ + "mousepad_no_document_open" + ] +} \ No newline at end of file diff --git a/needles/i3/mousepad_no_document_open-20240708.png b/needles/i3/mousepad_no_document_open-20240708.png new file mode 100644 index 00000000..93b52c16 Binary files /dev/null and b/needles/i3/mousepad_no_document_open-20240708.png differ diff --git a/needles/mousepad_no_document_open.json b/needles/i3/mousepad_no_document_open.json similarity index 100% rename from needles/mousepad_no_document_open.json rename to needles/i3/mousepad_no_document_open.json diff --git a/needles/mousepad_no_document_open.png b/needles/i3/mousepad_no_document_open.png similarity index 100% rename from needles/mousepad_no_document_open.png rename to needles/i3/mousepad_no_document_open.png diff --git a/needles/i3/navigation_three_workspaces-20240607.json b/needles/i3/navigation_three_workspaces-20240607.json new file mode 100644 index 00000000..7ba8a3f0 --- /dev/null +++ b/needles/i3/navigation_three_workspaces-20240607.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 98, + "xpos": 447, + "width": 127, + "type": "match", + "height": 38 + } + ], + "properties": [], + "tags": [ + "navigation_three_workspaces" + ] +} \ No newline at end of file diff --git a/needles/i3/navigation_three_workspaces-20240607.png b/needles/i3/navigation_three_workspaces-20240607.png new file mode 100644 index 00000000..8276eb5a Binary files /dev/null and b/needles/i3/navigation_three_workspaces-20240607.png differ diff --git a/needles/i3/printing_check_sentence-i3.json b/needles/i3/printing_check_sentence-i3.json new file mode 100644 index 00000000..38eae01b --- /dev/null +++ b/needles/i3/printing_check_sentence-i3.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 321, + "type": "match", + "height": 18, + "xpos": 118, + "ypos": 21 + } + ], + "properties": [], + "tags": [ + "printing_check_sentence" + ] +} \ No newline at end of file diff --git a/needles/i3/printing_check_sentence-i3.png b/needles/i3/printing_check_sentence-i3.png new file mode 100644 index 00000000..8ccc0d48 Binary files /dev/null and b/needles/i3/printing_check_sentence-i3.png differ diff --git a/needles/i3/printing_kde_location_line-i3.json b/needles/i3/printing_kde_location_line-i3.json new file mode 100644 index 00000000..07c95973 --- /dev/null +++ b/needles/i3/printing_kde_location_line-i3.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 270, + "ypos": 428, + "width": 161, + "height": 18, + "type": "match" + } + ], + "properties": [], + "tags": [ + "printing_kde_location_line" + ] +} \ No newline at end of file diff --git a/needles/i3/printing_kde_location_line-i3.png b/needles/i3/printing_kde_location_line-i3.png new file mode 100644 index 00000000..4bd13e8c Binary files /dev/null and b/needles/i3/printing_kde_location_line-i3.png differ diff --git a/needles/i3/printing_use_cups_printer-i3.json b/needles/i3/printing_use_cups_printer-i3.json new file mode 100644 index 00000000..b85d6f96 --- /dev/null +++ b/needles/i3/printing_use_cups_printer-i3.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 250, + "ypos": 244, + "width": 64, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "printing_use_cups_printer" + ] +} \ No newline at end of file diff --git a/needles/i3/printing_use_cups_printer-i3.png b/needles/i3/printing_use_cups_printer-i3.png new file mode 100644 index 00000000..f5cf5d93 Binary files /dev/null and b/needles/i3/printing_use_cups_printer-i3.png differ diff --git a/needles/i3/printing_use_saveas_pdf-i3.json b/needles/i3/printing_use_saveas_pdf-i3.json new file mode 100644 index 00000000..da2eafcd --- /dev/null +++ b/needles/i3/printing_use_saveas_pdf-i3.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 247, + "ypos": 221, + "width": 77, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "printing_use_saveas_pdf" + ] +} \ No newline at end of file diff --git a/needles/i3/printing_use_saveas_pdf-i3.png b/needles/i3/printing_use_saveas_pdf-i3.png new file mode 100644 index 00000000..0b4196c9 Binary files /dev/null and b/needles/i3/printing_use_saveas_pdf-i3.png differ diff --git a/needles/kde/leave_button-20240715.json b/needles/kde/leave_button-20240715.json new file mode 100644 index 00000000..9b9bcf22 --- /dev/null +++ b/needles/kde/leave_button-20240715.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "height": 21, + "ypos": 666, + "xpos": 634, + "width": 19 + } + ], + "properties": [], + "tags": [ + "leave_button" + ] +} \ No newline at end of file diff --git a/needles/kde/leave_button-20240715.png b/needles/kde/leave_button-20240715.png new file mode 100644 index 00000000..7858e5fb Binary files /dev/null and b/needles/kde/leave_button-20240715.png differ diff --git a/needles/lightdm_power_menu-reboot-confirm.json b/needles/lightdm_power_menu-reboot-confirm.json deleted file mode 100644 index fdb69773..00000000 --- a/needles/lightdm_power_menu-reboot-confirm.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "area": [ - { - "xpos": 278, - "ypos": 314, - "width": 53, - "height": 53, - "type": "match" - }, - { - "xpos": 345, - "ypos": 316, - "width": 53, - "height": 18, - "type": "match" - }, - { - "xpos": 682, - "ypos": 426, - "width": 54, - "height": 22, - "type": "match", - "click_point": { - "xpos": 27, - "ypos": 11 - } - } - ], - "properties": [], - "tags": [ - "lightdm_power_menu-reboot-confirm" - ] -} \ No newline at end of file diff --git a/needles/lightdm_power_menu-reboot-confirm.png b/needles/lightdm_power_menu-reboot-confirm.png deleted file mode 100644 index 9abeef25..00000000 Binary files a/needles/lightdm_power_menu-reboot-confirm.png and /dev/null differ diff --git a/needles/printing_select_pdfprinter-mousepad.json b/needles/printing_select_pdfprinter-mousepad.json deleted file mode 100644 index 30a1a5f5..00000000 --- a/needles/printing_select_pdfprinter-mousepad.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "area": [ - { - "ypos": 223, - "width": 99, - "type": "match", - "xpos": 231, - "height": 19 - } - ], - "properties": [], - "tags": [ - "printing_select_pdfprinter" - ] -} \ No newline at end of file diff --git a/needles/printing_select_pdfprinter-mousepad.png b/needles/printing_select_pdfprinter-mousepad.png deleted file mode 100644 index ad183b7c..00000000 Binary files a/needles/printing_select_pdfprinter-mousepad.png and /dev/null differ diff --git a/templates.fif.json b/templates.fif.json index 21916843..f468cb4c 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -527,7 +527,7 @@ "machine": "bios", "product": "fedora-KDE-live-iso-x86_64-*" }, - "fedora-i3-live-x86_64-*-uefi": { + "fedora-i3-live-x86_64-*-bios": { "machine": "uefi", "product": "fedora-i3-live-x86_64*" }, @@ -654,8 +654,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-live-iso-x86_64-*-64bit": 40, "fedora-Workstation-live_osbuild-iso-x86_64-*-64bit": 70, - "fedora-Workstation-live-iso-x86_64-*-64bit": 40, - "fedora-i3-live-x86_64-*-64bit": 40 + "fedora-Workstation-live-iso-x86_64-*-64bit": 40 }, "settings": { "BOOTFROM": "c", @@ -688,7 +687,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, - "fedora-i3-live-x86_64-*-64bit": 20 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -722,7 +721,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, - "fedora-i3-live-x86_64-*-64bit": 20 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -751,7 +750,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, - "fedora-i3-live-x86_64-*-64bit": 20 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -780,7 +779,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 42, - "fedora-i3-live-x86_64-*-64bit": 40 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -814,8 +813,8 @@ "fedora-Workstation-live_osbuild-iso-x86_64-*-64bit": 70, "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, - "fedora-Workstation-raw_xz-raw.xz-aarch65-*-aarch64": 42, - "fedora-i3-live-x86_64-*-64bit": 40 + "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 42, + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -849,7 +848,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 42, - "fedora-i3-live-x86_64-*-64bit": 40 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -883,7 +882,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 42, - "fedora-i3-live-x86_64-*-64bit": 40 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -944,7 +943,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, - "fedora-i3-live-x86_64-*-64bit": 50 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -960,7 +959,7 @@ "fedora-Workstation-live_osbuild-iso-x86_64-*-64bit": 70, "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-live-iso-ppc64le-*-ppc64le": 30, - "fedora-i3-live-x86_64-*-64bit": 30 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -994,7 +993,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, - "fedora-i3-live-x86_64-*-64bit": 20 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -1009,7 +1008,7 @@ "fedora-Workstation-live-iso-ppc64le-*-ppc64le": 30, "fedora-Workstation-live-iso-x86_64-*-64bit": 30, "fedora-Workstation-live_osbuild-iso-x86_64-*-64bit": 70, - "fedora-i3-live-x86_64-*-64bit": 30 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "ENTRYPOINT": "desktop_notifications" @@ -1023,7 +1022,7 @@ "fedora-Workstation-live-iso-x86_64-*-64bit": 30, "fedora-Workstation-live_osbuild-iso-x86_64-*-64bit": 70, "fedora-Workstation-live-iso-x86_64-*-64bit": 30, - "fedora-i3-live-x86_64-*-64bit": 30 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -1059,7 +1058,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, - "fedora-i3-live-x86_64-*-64bit": 20 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -1079,7 +1078,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22, - "fedora-i3-live-x86_64-*-64bit": 30 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -1432,7 +1431,7 @@ }, "i3_tilling": { "profiles": { - "fedora-i3-live-x86_64-*-64bit": 30 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", @@ -1701,11 +1700,7 @@ "fedora-Silverblue-dvd_ostree-iso-x86_64-*-bios": 51, "fedora-Workstation-live-iso-x86_64-*-bios": 11, "fedora-Server-boot-iso-x86_64-*-64bit": 10, - "fedora-Server-boot-iso-x86_64-*-uefi": 11, - "fedora-Server-dvd-iso-x86_64-*-uefi": 11, - "fedora-Silverblue-dvd_ostree-iso-x86_64-*-uefi": 51, - "fedora-Workstation-live-iso-x86_64-*-uefi": 11, - "fedora-i3-live-x86_64-*-64bit": 10 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "PACKAGE_SET": "default", @@ -1727,7 +1722,7 @@ "fedora-Workstation-live-iso-ppc64le-*-ppc64le": 10, "fedora-Workstation-live-iso-x86_64-*-64bit": 10, "fedora-Workstation-live_osbuild-iso-x86_64-*-64bit": 60, - "fedora-i3-live-x86_64-*-64bit": 20 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "PACKAGE_SET": "default", @@ -2571,7 +2566,7 @@ "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 42, - "fedora-i3-live-x86_64-*-64bit": 50 + "fedora-i3-live-x86_64-*-64bit": 70 }, "settings": { "BOOTFROM": "c", diff --git a/tests/_boot_to_anaconda.pm b/tests/_boot_to_anaconda.pm index dd91236f..38bf20a5 100644 --- a/tests/_boot_to_anaconda.pm +++ b/tests/_boot_to_anaconda.pm @@ -5,7 +5,6 @@ use testapi; use utils; use tapnet; use anaconda; -use i3; sub _handle_incomplete_hub { if (match_has_tag "anaconda_main_hub_keyboard_layout_incomplete") { @@ -150,9 +149,15 @@ sub run { my $count = 5; # i3 got no real desktop, so we need to launch liveinst via the launcher if (get_var('DESKTOP') eq 'i3') { - firstlaunch_setup(timeout => 300); + if (check_screen("getting_started", timeout => 300)) { + send_key("esc"); + } x11_start_program("liveinst"); - } else { + # We have launched Anaconda, so we set $launched to skip + # starting it again later in the general part of the code. + $launched = 1; + } + else { while ($count > 0) { $count -= 1; assert_screen ["live_start_anaconda_icon", "apps_menu_button_active", "next_button"], 300; diff --git a/tests/_graphical_wait_login.pm b/tests/_graphical_wait_login.pm index 7baa20d3..264150ed 100644 --- a/tests/_graphical_wait_login.pm +++ b/tests/_graphical_wait_login.pm @@ -2,7 +2,6 @@ use base "installedtest"; use strict; use testapi; use utils; -use i3; sub _enter_password { my $password = shift; @@ -103,10 +102,6 @@ sub run { desktop_vt; } - if (get_var("DESKTOP") eq 'i3') { - firstlaunch_setup(); - } - # Move the mouse somewhere it won't highlight the match areas and # hopefully won't negatively interact with anything else later mouse_set(1023, 384); diff --git a/tests/desktop_background.pm b/tests/desktop_background.pm index 3469a146..2e57329c 100644 --- a/tests/desktop_background.pm +++ b/tests/desktop_background.pm @@ -2,21 +2,9 @@ use base "installedtest"; use strict; use testapi; use utils; -use i3; sub run { - if (!get_var("BOOTFROM")) { - # If we are checking the desktop background on live, we will not get - # _graphical_wait_login scheduled and need to boot ourselves. - # On i3, we'll also get the firstlaunch wizard on auto-login and need to - # ignore it for check_desktop. We then run the firstlaunch setup so that - # the wizard window does not block the desktop background. - do_bootloader(postinstall=>0); - check_desktop(timeout => 120, no_firstlaunch_check => 1); - firstlaunch_setup() if (get_var("DESKTOP") eq "i3"); - } else { - check_desktop; - } + check_desktop; # If we want to check that there is a correct background used, as a part # of self identification test, we will do it here. For now we don't do # this for Rawhide as Rawhide doesn't have its own backgrounds and we diff --git a/tests/desktop_browser.pm b/tests/desktop_browser.pm index c77da9c5..0afc8ee0 100644 --- a/tests/desktop_browser.pm +++ b/tests/desktop_browser.pm @@ -34,11 +34,11 @@ sub run { desktop_vt; if (get_var("DESKTOP") eq "i3") { x11_start_program("firefox"); - } + } else { send_key 'super'; # wait out animations - wait_still_screen(stilltime=>4, similarity_level=>45); + wait_still_screen(stilltime => 4, similarity_level => 45); assert_and_click 'browser_launcher'; } unless (check_screen 'browser', 45) { diff --git a/tests/desktop_login.pm b/tests/desktop_login.pm index 65eb242a..cbe0109e 100644 --- a/tests/desktop_login.pm +++ b/tests/desktop_login.pm @@ -6,12 +6,6 @@ use i3; our $desktop = get_var("DESKTOP"); our $syspwd = get_var("USER_PASSWORD") || "weakpassword"; -our $term = "terminal"; -if ($desktop eq "kde") { - $term = "konsole"; -} elsif ($desktop eq "i3") { - $term = "i3-sensible-terminal"; -} sub type_password { # Safe typing prolongs the operation terribly. @@ -42,19 +36,13 @@ sub adduser { assert_script_run "chage --lastday 0 $login"; } assert_script_run "grep $login /etc/passwd"; - # Disable Gnome initial setup on accounts when testing - # inside Gnome. - if ($desktop eq "gnome") { - assert_script_run "mkdir /home/$login/.config"; - # gnome-initial-setup-done is obsolete from F34 onwards, can be removed after F33 EOL - assert_script_run "echo 'yes' >> /home/$login/.config/gnome-initial-setup-done"; - } - elsif ($desktop eq "i3") { - create_user_i3_config(login => $login); - } - - if ($desktop eq "gnome") { - assert_script_run "chown -R $login.$login /home/$login/.config"; + # Create Config file for $login. + if ($desktop eq "i3") { + assert_script_run("mkdir -p /home/$login/.config/i3/"); + # ensure that no alias of cp prevents an existing config from being overwritten + assert_script_run("/usr/bin/cp -f /etc/i3/config /home/$login/.config/i3/config"); + assert_script_run("sed -i '/i3-config-wizard/d' /home/$login/.config/i3/config"); + assert_script_run "chown -R $login:$login /home/$login/.config"; assert_script_run "restorecon -vr /home/$login/.config"; } } @@ -62,7 +50,8 @@ sub adduser { sub lock_screen { if ($desktop eq "i3") { x11_start_program("i3lock"); - } else { + } + else { # Click on buttons to lock the screen. assert_and_click "system_menu_button"; if ($desktop eq "kde") { @@ -82,18 +71,16 @@ sub login_user { my $user = $args{user}; my $password = $args{password}; my $method = $args{method}; - if (!check_screen "login_$user" || ($desktop eq 'i3')) { + if (($method ne 'unlock' && !check_screen "login_$user") || $desktop eq "i3") { # Sometimes, especially in SDDM, we do not get the user list - # but rather a "screensaver" screen for the DM. If this is the - # case, hit Escape to bring back the user list. - # We do want to skip this with lightdm though, as we would then deselect - # the password entry field - send_key "esc"; + # but rather a "screensaver" screen for the DM. + # We send the Esc key to come back to the login screen. + send_key('esc'); wait_still_screen(stilltime => 5, similarity_level => 45); } if ($method ne "unlock") { # on lightdm we have to open the drop down menu to get to the user selection - if (check_screen('lightdm_login_screen')) { + if ($desktop eq "i3") { assert_and_click('lightdm_user_selection'); } # When we do not just want to unlock the screen, we need to select a user. @@ -111,20 +98,20 @@ sub login_user { # of password typing. type_very_safely "$password\n"; } - if ($desktop eq "kde") { - click_lastmatch if (check_screen "getting_started"); - } - if (get_var('DESKTOP') ne 'i3') { - type_very_safely "$password\n"; - } - else { + if (get_var('DESKTOP') eq 'i3') { # use essentially type_very_safely, but without wait_screen_change being # set, because the i3lock screen does not change enough when typing a # character and that just causes huge delays to unlock the screen type_string("$password\n", max_interval => 1); } + else { + type_very_safely "$password\n"; + } check_desktop(timeout => 60) if ($args{checklogin}); wait_still_screen(stilltime => 5, similarity_level => 45); + if ($desktop eq "kde") { + click_lastmatch if (check_screen "getting_started"); + } } sub check_user_logged_in { @@ -136,15 +123,15 @@ sub check_user_logged_in { # Reading the login name from the terminal prompt seems to be # the most reliable thing to do. if ($desktop eq "gnome") { - menu_launch_type $term; + menu_launch_type("terminal"); wait_still_screen 2; $exitkey = "alt-f4"; - } elsif ($desktop eq "i3") { - my $mod = get_i3_modifier(); - send_key("$mod-ret"); + } + elsif ($desktop eq "i3") { + send_key("alt-ret"); assert_screen("apps_run_terminal"); assert_script_run('[ $(whoami) = "' . "$user\" ]"); - wait_screen_change { send_key("$mod-shift-q"); }; + wait_screen_change { send_key("alt-shift-q"); }; return; } # With KDE, the user is shown in the main menu, so let us just @@ -160,8 +147,7 @@ sub check_user_logged_in { sub logout_user { if ($desktop eq "i3") { - my $mod = get_i3_modifier(); - send_key("$mod-shift-e"); + send_key("alt-shift-e"); assert_and_click("i3-logout-bar"); assert_screen("graphical_login_input"); } else { @@ -195,39 +181,28 @@ sub switch_user { } } -sub reboot_system_i3 { - # we are still in i3 if the bar is visible - if (check_screen('i3-bar')) { - logout_user(); - } - assert_and_click('lightdm_power_menu'); - assert_and_click('lightdm_power_menu-reboot'); - assert_and_click('lightdm_power_menu-reboot-confirm'); - boot_to_login_screen(); -} - sub reboot_system { if ($desktop eq 'i3') { - reboot_system_i3(); - return; + # we are still in i3 if the bar is visible + if (check_screen('i3-bar')) { + logout_user(); + } + assert_and_click('lightdm_power_menu'); + assert_and_click('lightdm_power_menu-reboot'); + assert_and_click('lightdm_power_menu-reboot-confirm'); } # Reboots the system and handles everything until the next GDM screen. - if (check_screen "system_menu_button") { + else { # In a logged in desktop, we access power options through system menu assert_and_click "system_menu_button"; - # In KDE since F34, reboot entry is right here, otherwise we need to + # In KDE reboot entry is right here, on GNOME we need to # enter some kind of power option submenu assert_screen ["power_entry", "reboot_entry"]; click_lastmatch; assert_and_click "reboot_entry" if (match_has_tag("power_entry")); assert_and_click "restart_confirm"; } - # When we are outside KDE (not logged in), the only way to reboot is to click - # the reboot icon. - else { - assert_and_click "reboot_icon"; - } boot_to_login_screen(); } @@ -320,18 +295,12 @@ sub run { reboot_system(); # Try to log in with either account, intentionally entering the wrong password. - login_user(user=>"jack", password=>"wrongpassword", checklogin=>0); + login_user(user => "jack", password => "wrongpassword", checklogin => 0); my $relnum = get_release_number; - if (($desktop eq "gnome" && $relnum < 34) || $desktop eq 'i3') { - # In GDM before F34 or lightdm (used by i3), a message is shown about an - # unsuccessful login and it can be asserted, so let's do it. In SDDM and - # GDM F34+, there is also a message, but it is only displayed for a - # short moment and the assertion fails here, so we will skip the - # assertion. Not being able to login in with a wrong password is enough - # here. + if ($desktop eq 'i3') { + # In LightDM (used by i3), a message is shown about an + # unsuccessful login and it can be asserted, so let's do it. assert_screen "login_wrong_password"; - # don't send escape in lightdm, it does nothing there - send_key 'esc' unless $desktop eq 'i3'; } send_key 'esc' unless (check_screen "login_jim"); diff --git a/tests/desktop_notifications.pm b/tests/desktop_notifications.pm index 4430ba10..9e423e0c 100644 --- a/tests/desktop_notifications.pm +++ b/tests/desktop_notifications.pm @@ -49,7 +49,7 @@ sub run { my $longago = $now - 14 * 24 * 60 * 60; # have to log in as the user to do this script_run 'exit', 0; - console_login(user=>$user, password=>get_var('USER_PASSWORD', 'weakpassword')); + console_login(user => $user, password => get_var('USER_PASSWORD', 'weakpassword')); script_run "gsettings set org.gnome.software check-timestamp ${yyday}", 0; script_run "gsettings set org.gnome.software update-notification-timestamp ${longago}", 0; script_run "gsettings set org.gnome.software online-updates-timestamp ${longago}", 0; @@ -59,14 +59,14 @@ sub run { script_run 'exit', 0; console_login(user => 'root', password => get_var('ROOT_PASSWORD', 'weakpassword')); } - } elsif ($desktop eq 'i3') { + } + elsif ($desktop eq 'i3') { assert_script_run('dnf install -y libnotify'); - my $target_user = get_var("USER_LOGIN"); - if (!defined(get_var("BOOTFROM"))) { - $target_user = "liveuser"; + unless (get_var("BOOTFROM")) { + $user = "liveuser"; } - assert_script_run("usermod -a -G dialout $target_user"); - create_user_i3_config(login => $target_user); + assert_script_run("usermod -a -G dialout $user"); + create_user_i3_config(login => $user); } if ($desktop eq 'kde' && get_var("BOOTFROM")) { # need to login as user for this @@ -135,15 +135,16 @@ sub run { # we launch a terminal so that the top of the screen is filled with # something that we know and can check that it is not covered by a # notification popup from dunst - send_key(get_i3_modifier() . '-ret'); + send_key('alt-ret'); assert_screen("apps_run_terminal"); - assert_script_run('notify-send -t 5000 "foo"'); + assert_script_run('notify-send -t 10000 "foo"'); assert_screen("i3_dunst_foo_notification", timeout => 5); - sleep 6; - assert_screen("i3_dunst_no_notification"); - - # we quit at this point as the i3 spin has no desktop update notifier + sleep 11; + if (check_screen("i3_dunst_foo_notification")) { + # The notifications should not be shown any more. + record_soft_fail("i3 shows notifications longer than expected"); + } return; } if (get_var("BOOTFROM")) { diff --git a/tests/desktop_printing.pm b/tests/desktop_printing.pm index f5130885..e4f4bbed 100644 --- a/tests/desktop_printing.pm +++ b/tests/desktop_printing.pm @@ -2,31 +2,33 @@ use base "installedtest"; use strict; use testapi; use utils; -use i3; sub run { my $self = shift; my $usecups = get_var("USE_CUPS"); + my $desktop = get_var("DESKTOP"); + my $user = get_var("USER_LOGIN", "test"); + my $password = get_var("USER_PASSWORD", "weakpassword"); # Prepare the environment for the test. # # Some actions need a root account, so become root. $self->root_console(tty => 3); # Create a text file, put content to it to prepare it for later printing. - script_run "cd /home/test/"; + script_run "cd /home/$user/"; assert_script_run "echo 'A quick brown fox jumps over a lazy dog.' > testfile.txt"; # Make the file readable and for everybody. script_run "chmod 666 testfile.txt"; + if ($desktop eq "i3") { + assert_script_run("dnf -y install mupdf", timeout => 120); + } # If the test should be running with CUPS-PDF, we need to install it first. if ($usecups) { my $pkgs = "cups-pdf"; - # On I3, we also need to install the PDF reader. - if ($desktop eq "i3") { - $pkgs = $pkgs . " mupdf"; - } # Install the Cups-PDF package to use the Cups-PDF printer - assert_script_run "dnf -y install $pkgs", 240; + assert_script_run "dnf -y install $pkgs", 120; + assert_script_run "systemctl restart cups", 30; } # Here, we were doing a version logic. This is no longer needed, because @@ -34,25 +36,10 @@ sub run { # We will list the directory where the printed file is put and we will # take the file name that will be returned. To make it work, the directory # must be empty, which it normally is, but to make sure let's delete everything. - script_run("rm /home/test/Desktop/*"); + script_run("rm /home/$user/Desktop/*"); # Verification commands need serial console to be writable and readable for # normal users, let's make it writable then. script_run("chmod 666 /dev/${serialdev}"); - # Check whether the cups-pdf printer is actually present on the system - # FIXME: If it is missing, add it manually by removing and installing - # cups-pdf again - my $cups_pdf_present = script_run('lpstat -t|grep -q -i cups-pdf'); - if ($cups_pdf_present != 0) { - record_soft_failure 'Cups-PDF printer is not present on the system (rhbz#1984295)'; - assert_script_run "dnf -y remove cups-pdf", 180; - assert_script_run "dnf -y install cups-pdf", 180; - } - # FIXME: log version of cups-pdf and check it for output location - # this is only necessary as long as the test may run on cups-pdf - # 3.0.1-11 or lower, as soon as that's not true we can cut it - my $cpdfver = script_output 'rpm -q cups-pdf --queryformat "%{VERSION}-%{RELEASE}\n"'; - assert_script_run "dnf -y install rpmdevtools", 180; - my $cpdfvercmp = script_run "rpmdev-vercmp $cpdfver 3.0.1-11.5"; # Leave the root terminal and switch back to desktop for the rest of the test. desktop_vt(); @@ -84,20 +71,21 @@ sub run { } # Let's open the terminal. We will use it to start the applications # as well as to check for the name of the printed file. - unless ($desktop eq "i3") { + if ($desktop eq "i3") { + send_key('alt-ret'); + assert_screen("apps_run_terminal"); + # switch to tabbed mode + send_key("alt-w"); + } + else { menu_launch_type($term); wait_still_screen(5); } - else { - launch_terminal; - # switch to tabbed mode - send_key(get_i3_modifier() . "-w"); - } # Open the text editor and maximize it. - wait_screen_change { type_very_safely "$editor /home/test/testfile.txt &\n"; }; + wait_screen_change { type_very_safely "$editor /home/$user/testfile.txt &\n"; }; wait_still_screen(stilltime => 2, similarity_level => 45); - unless ($desktop eq "i3") { + if (defined($maximize)) { wait_screen_change { send_key($maximize); }; wait_still_screen(stilltime => 2, similarity_level => 45); } @@ -119,7 +107,7 @@ sub run { if ($desktop eq "kde") { assert_and_click "printing_kde_location_line"; send_key("ctrl-a"); - type_safely("/home/test/Documents/output.pdf"); + type_safely("/home/$user/Documents/output.pdf"); } } assert_and_click "printing_print"; @@ -130,28 +118,11 @@ sub run { } else { # Exit the application - send_key "alt-f4" unless $desktop eq "i3"; - } - - # Open the pdf file and check the print - if ($desktop eq "i3") { - launch_terminal; - } else { - send_key "alt-f2"; - wait_still_screen(stilltime=>5, similarity_level=>45); - } - # output location is different for cups-pdf 3.0.1-12 or later (we - # checked this above) - if ($cpdfvercmp eq "12") { - # older cups-pdf - type_safely "$viewer /home/$user/Desktop/testfile.pdf\n"; - } - elsif ($editor eq "mousepad") { - # mousepad creates relatively weird pdf names, so we use a wildcard here - type_safely "$viewer /home/$user/" . 'Mousepad*job_1.pdf' . "\n"; - } - else { - type_safely "$viewer /home/$user/Desktop/testfile-job_1.pdf\n"; + my $killing_weapon = "alt-f4"; + if ($desktop eq "i3") { + $killing_weapon = "alt-shift-q"; + } + send_key($killing_weapon); } # Get the name of the printed file. The path location depends @@ -159,7 +130,7 @@ sub run { # no argument to script_output to make it type slowly, and # it often fails typing fast in a desktop terminal $self->root_console(tty => 3); - my $directory = $usecups ? "/home/test/Desktop" : "/home/test/Documents"; + my $directory = $usecups ? "/home/$user/Desktop" : "/home/$user/Documents"; my $filename = script_output("ls $directory"); my $filepath = "$directory/$filename"; @@ -177,9 +148,8 @@ sub run { wait_still_screen(stilltime => 3, similarity_level => 45); # Resize the window, so that the size of the document fits the bigger space # and gets more readable. - send_key $maximize unless !defined($maximize); - wait_still_screen(stilltime=>2, similarity_level=>45); - # make sure we're at the start of the document + send_key $maximize if (defined($maximize)); + wait_still_screen(stilltime => 2, similarity_level => 45); send_key "ctrl-home" if ($desktop eq "kde"); # Check the printed pdf. assert_screen "printing_check_sentence"; diff --git a/tests/desktop_terminal.pm b/tests/desktop_terminal.pm index e156e2ae..b7468737 100644 --- a/tests/desktop_terminal.pm +++ b/tests/desktop_terminal.pm @@ -6,10 +6,16 @@ use utils; sub run { my $self = shift; my $relnum = get_release_number; + my $desktop = get_var("DESKTOP", "gnome"); check_desktop; # try and avoid double-typing issues - kde_doublek_workaround(key => 't') if (get_var("DESKTOP") eq "kde"); - menu_launch_type('terminal'); + kde_doublek_workaround(key => 't') if ($desktop eq "kde"); + if ($desktop eq "i3") { + send_key("alt-ret"); + } + else { + menu_launch_type('terminal'); + } assert_screen "apps_run_terminal"; wait_still_screen(stilltime => 5, similarity_level => 42); # need to be root diff --git a/tests/i3_tilling.pm b/tests/i3_tilling.pm index 79a7c958..fba5fe04 100644 --- a/tests/i3_tilling.pm +++ b/tests/i3_tilling.pm @@ -6,41 +6,44 @@ use i3; sub run { - my $desktop = get_var("DESKTOP"); - my $mod = get_i3_modifier(); - die "This test is only for the i3 desktop" unless $desktop eq "i3"; + my $password = get_var('USER_PASSWORD', 'weakpassword'); # launch a terminal first - send_key("$mod-ret"); + send_key("alt-ret"); assert_screen("apps_run_terminal"); - # start pavucontrol, mousepad and check that they are split on the screen - x11_start_program("pavucontrol"); + # start blivet_gui, mousepad and check that they are split on the screen + x11_start_program("blivet-gui"); + wait_still_screen(2); + type_very_safely("$password\n"); + assert_screen('apps_run_blivetgui'); x11_start_program("mousepad"); + assert_screen('apps_run_mousepad'); assert_screen("i3_windows_split"); # switch to tabbed layout - send_key("$mod-w"); + send_key("alt-w"); assert_screen("i3_windows_tabbed"); - send_key_until_needlematch("apps_run_terminal", "$mod-j"); + send_key_until_needlematch("apps_run_terminal", "alt-j"); + wait_still_screen(2); - send_key("$mod-;"); - assert_screen("audio_mixer"); + send_key("alt-;"); + assert_screen("blivet_gui_application"); - send_key("$mod-;"); + send_key("alt-;"); assert_screen("mousepad_no_document_open"); # switch to stacked layout - send_key("$mod-s"); + send_key("alt-s"); assert_screen("i3_windows_stacked"); - send_key_until_needlematch("apps_run_terminal", "$mod-k"); + send_key_until_needlematch("apps_run_terminal", "alt-k"); - send_key("$mod-l"); + send_key("alt-l"); assert_screen("mousepad_no_document_open"); - send_key("$mod-l"); - assert_screen("audio_mixer"); + send_key("alt-l"); + assert_screen("blivet_gui_application"); } 1;