It would be great if focus could stay in the REPL when plotting.
In Atom, putting a semicolon after all but one plotting command alleviates the problem a bit
Copying what I said on Slack: you can try Makie.GLMakie.GLFW.WindowHint(Makie.GLMakie.GLFW.FOCUS_ON_SHOW, 0), which _should_ force GLFW not to cause the window to be focused when opened.
it'd be a nice thing to add as an option though
Out of curiosity, any reason why this shouldn't be the default behavior?
Oops.
julia> using Makie
julia> Makie.GLMakie.GLFW.WindowHint(Makie.GLMakie.GLFW.FOCUS_ON_SHOW, 0)
ERROR: UndefVarError: FOCUS_ON_SHOW not defined
Stacktrace:
[1] getproperty(::Module, ::Symbol) at .\Base.jl:13
[2] top-level scope at REPL[2]:1
julia> Makie.GLMakie.GLFW.
@callback KEY_COMMA Monitor
@windowcallback KEY_D MouseButton
ACCUM_ALPHA_BITS KEY_DELETE NATIVE_CONTEXT_API
ACCUM_BLUE_BITS KEY_DOWN NOT_INITIALIZED
ACCUM_GREEN_BITS KEY_E NO_API
ACCUM_RED_BITS KEY_END NO_CURRENT_CONTEXT
ALPHA_BITS KEY_ENTER NO_RESET_NOTIFICATION
ANY_RELEASE_BEHAVIOR KEY_EQUAL NO_ROBUSTNESS
API_UNAVAILABLE KEY_ESCAPE NO_WINDOW_CONTEXT
ARROW_CURSOR KEY_F OPENGL_ANY_PROFILE
AUTO_ICONIFY KEY_F1 OPENGL_API
AUX_BUFFERS KEY_F10 OPENGL_COMPAT_PROFILE
Action KEY_F11 OPENGL_CORE_PROFILE
BLUE_BITS KEY_F12 OPENGL_DEBUG_CONTEXT
CLIENT_API KEY_F13 OPENGL_ES_API
CONNECTED KEY_F14 OPENGL_FORWARD_COMPAT
CONTEXT_CREATION_API KEY_F15 OPENGL_PROFILE
CONTEXT_NO_ERROR KEY_F16 OUT_OF_MEMORY
CONTEXT_RELEASE_BEHAVIOR KEY_F17 PLATFORM_ERROR
CONTEXT_REVISION KEY_F18 PRESS
CONTEXT_ROBUSTNESS KEY_F19 PollEvents
CONTEXT_VERSION_MAJOR KEY_F2 PostEmptyEvent
CONTEXT_VERSION_MINOR KEY_F20 RED_BITS
CROSSHAIR_CURSOR KEY_F21 REFRESH_RATE
CURSOR KEY_F22 RELEASE
CURSOR_DISABLED KEY_F23 RELEASE_BEHAVIOR_FLUSH
CURSOR_HIDDEN KEY_F24 RELEASE_BEHAVIOR_NONE
CURSOR_NORMAL KEY_F25 REPEAT
Callback KEY_F3 RESIZABLE
CreateStandardCursor KEY_F4 RestoreWindow
CreateWindow KEY_F5 SAMPLES
CreateWindowSurface KEY_F6 SRGB_CAPABLE
Cursor KEY_F7 STENCIL_BITS
DECORATED KEY_F8 STEREO
DEPTH_BITS KEY_F9 STICKY_KEYS
DISCONNECTED KEY_G STICKY_MOUSE_BUTTONS
DONT_CARE KEY_GRAVE_ACCENT SetCharCallback
DOUBLEBUFFER KEY_H SetCharModsCallback
DefaultWindowHints KEY_HOME SetCursor
DestroyCursor KEY_I SetCursorEnterCallback
DestroyWindow KEY_INSERT SetCursorPos
DeviceConfigEvent KEY_J SetCursorPosCallback
EGL_CONTEXT_API KEY_K SetDropCallback
ErrorCode KEY_KP_0 SetErrorCallback
ExtensionSupported KEY_KP_1 SetFramebufferSizeCallback
FLOATING KEY_KP_2 SetGamma
FOCUSED KEY_KP_3 SetInputMode
FORMAT_UNAVAILABLE KEY_KP_4 SetJoystickCallback
GLFWError KEY_KP_5 SetKeyCallback
GLFWImage KEY_KP_6 SetMonitorCallback
GREEN_BITS KEY_KP_7 SetMouseButtonCallback
GetCurrentContext KEY_KP_8 SetScrollCallback
GetCursorPos KEY_KP_9 SetWindowAspectRatio
GetFramebufferSize KEY_KP_ADD SetWindowCloseCallback
GetInputMode KEY_KP_DECIMAL SetWindowFocusCallback
GetInstanceProcAddress KEY_KP_DIVIDE SetWindowIcon
GetJoystickAxes KEY_KP_ENTER SetWindowIconifyCallback
GetJoystickButtons KEY_KP_EQUAL SetWindowMonitor
GetJoystickName KEY_KP_MULTIPLY SetWindowPos
GetKey KEY_KP_SUBTRACT SetWindowPosCallback
GetKeyName KEY_L SetWindowRefreshCallback
GetMonitorName KEY_LEFT SetWindowShouldClose
GetMonitorPhysicalSize KEY_LEFT_ALT SetWindowSize
GetMonitorPos KEY_LEFT_BRACKET SetWindowSizeCallback
GetMonitors KEY_LEFT_CONTROL SetWindowSizeLimits
GetMouseButton KEY_LEFT_SHIFT SetWindowTitle
GetPhysicalDevicePresentationSupport KEY_LEFT_SUPER ShowWindow
GetPrimaryMonitor KEY_M StandardCursorShape
GetProcAddress KEY_MENU SwapBuffers
GetRequiredInstanceExtensions KEY_MINUS SwapInterval
GetVersion KEY_N Terminate
GetVersionString KEY_NUM_LOCK VERSION_UNAVAILABLE
GetVideoMode KEY_O VISIBLE
GetVideoModes KEY_P VRESIZE_CURSOR
GetWindowAttrib KEY_PAGE_DOWN VidMode
GetWindowFrameSize KEY_PAGE_UP VkAllocationCallbacks
GetWindowMonitor KEY_PAUSE VkInstance
GetWindowPos KEY_PERIOD VkPhysicalDevice
GetWindowSize KEY_PRINT_SCREEN VkResult
HAND_CURSOR KEY_Q VkSurfaceKHR
HRESIZE_CURSOR KEY_R VulkanSupported
HideWindow KEY_RIGHT WaitEvents
IBEAM_CURSOR KEY_RIGHT_ALT Window
ICONIFIED KEY_RIGHT_BRACKET WindowHint
INITIALIZED KEY_RIGHT_CONTROL WindowShouldClose
INVALID_ENUM KEY_RIGHT_SHIFT _CharCallbackWrapper
INVALID_VALUE KEY_RIGHT_SUPER _CharModsCallbackWrapper
IconifyWindow KEY_S _CursorEnterCallbackWrapper
Init KEY_SCROLL_LOCK _CursorPosCallbackWrapper
JOYSTICK_1 KEY_SEMICOLON _DropCallbackWrapper
JOYSTICK_10 KEY_SLASH _ErrorCallbackWrapper
JOYSTICK_11 KEY_SPACE _FramebufferSizeCallbackWrapper
JOYSTICK_12 KEY_T _JoystickCallbackWrapper
JOYSTICK_13 KEY_TAB _KeyCallbackWrapper
JOYSTICK_14 KEY_U _MonitorCallbackWrapper
JOYSTICK_15 KEY_UNKNOWN _MouseButtonCallbackWrapper
JOYSTICK_16 KEY_UP _ScrollCallbackWrapper
JOYSTICK_2 KEY_V _WindowCloseCallbackWrapper
JOYSTICK_3 KEY_W _WindowFocusCallbackWrapper
JOYSTICK_4 KEY_WORLD_1 _WindowIconifyCallbackWrapper
JOYSTICK_5 KEY_WORLD_2 _WindowPosCallbackWrapper
JOYSTICK_6 KEY_X _WindowRefreshCallbackWrapper
JOYSTICK_7 KEY_Y _WindowSizeCallbackWrapper
JOYSTICK_8 KEY_Z __init__
JOYSTICK_9 Key _window_callback_num
Joystick LOSE_CONTEXT_ON_RESET _window_callbacks
JoystickPresent MAXIMIZED arrowsplit
KEY_0 MOD_ALT callbackcode
KEY_1 MOD_CONTROL callbacks
KEY_2 MOD_SHIFT eval
KEY_3 MOD_SUPER extractargs
KEY_4 MOUSE_BUTTON_1 include
KEY_5 MOUSE_BUTTON_2 is_initialized
KEY_6 MOUSE_BUTTON_3 make_fullscreen!
KEY_7 MOUSE_BUTTON_4 make_windowed!
KEY_8 MOUSE_BUTTON_5 paramname
KEY_9 MOUSE_BUTTON_6 paramtype
KEY_A MOUSE_BUTTON_7 primarymonitorresolution
KEY_APOSTROPHE MOUSE_BUTTON_8 set_visibility!
KEY_B MOUSE_BUTTON_LEFT standard_context_hints
KEY_BACKSLASH MOUSE_BUTTON_MIDDLE standard_screen_resolution
KEY_BACKSPACE MOUSE_BUTTON_RIGHT standard_window_hints
KEY_C MakeContextCurrent
KEY_CAPS_LOCK MaximizeWindow
Most helpful comment
it'd be a nice thing to add as an option though