From 0431f52878e22d695180e2c70c97eafa78d93a85 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Mon, 30 Mar 2026 01:46:38 +0300 Subject: [PATCH 01/16] Code cleanup - removed dead code. Signed-off-by: Eran Ifrah --- CodeLite/AsyncProcess/asyncprocess.h | 15 +-- CodeLite/AsyncProcess/winprocess_impl.cpp | 148 +--------------------- CodeLite/AsyncProcess/winprocess_impl.h | 12 -- 3 files changed, 7 insertions(+), 168 deletions(-) diff --git a/CodeLite/AsyncProcess/asyncprocess.h b/CodeLite/AsyncProcess/asyncprocess.h index 2cc8463347..1a2f2700a1 100644 --- a/CodeLite/AsyncProcess/asyncprocess.h +++ b/CodeLite/AsyncProcess/asyncprocess.h @@ -44,16 +44,13 @@ enum IProcessCreateFlags { IProcessCreateWithHiddenConsole = (1 << 2), // Create process with a hidden console IProcessCreateSync = (1 << 3), // Create a synchronous process (i.e. there is no background thread that performs the reads) - IProcessCreateAsSuperuser = (1 << 4), // On platforms that support it, start the process as superuser - IProcessNoRedirect = (1 << 5), - IProcessStderrEvent = (1 << 6), // fire a separate event for stderr output - IProcessRawOutput = (1 << 7), // return the process output as is, don't strip anything. By default CodeLite strips + IProcessNoRedirect = (1 << 4), + IProcessStderrEvent = (1 << 5), // fire a separate event for stderr output + IProcessRawOutput = (1 << 6), // return the process output as is, don't strip anything. By default CodeLite strips // terminal colours escape sequences - IProcessCreateSSH = (1 << 8), // Create a remote process, over SSH - IProcessInteractiveSSH = (1 << 9), - IProcessWrapInShell = (1 << 10), // wrap the command in the OS shell (CMD, BASH) - IProcessPseudoConsole = (1 << 11), // MSW only: use CreatePseudoConsole API for creating the process - IProcessNoPty = (1 << 12), // Unix only: do not use forkpty, use normal fork() + IProcessCreateSSH = (1 << 7), // Create a remote process, over SSH + IProcessWrapInShell = (1 << 8), // wrap the command in the OS shell (CMD, BASH) + IProcessNoPty = (1 << 9), // Unix only: do not use forkpty, use normal fork() }; class WXDLLIMPEXP_CL IProcess; diff --git a/CodeLite/AsyncProcess/winprocess_impl.cpp b/CodeLite/AsyncProcess/winprocess_impl.cpp index 2573291efc..399c4e8029 100644 --- a/CodeLite/AsyncProcess/winprocess_impl.cpp +++ b/CodeLite/AsyncProcess/winprocess_impl.cpp @@ -284,117 +284,10 @@ IProcess* WinProcessImpl::Execute(wxEvtHandler* parent, return Execute(parent, cmd, flags, workingDirectory, cb); } -IProcess* -WinProcessImpl::ExecuteConPTY(wxEvtHandler* parent, const wxString& cmd, size_t flags, const wxString& workingDir) -{ - // - Close these after CreateProcess of child application with pseudoconsole object. - HANDLE inputReadSide, outputWriteSide; - - // - Hold onto these and use them for communication with the child through the pseudoconsole. - HANDLE outputReadSide, inputWriteSide; - HPCON hPC = 0; - - // Create the in/out pipes: - if (!CreatePipe(&inputReadSide, &inputWriteSide, NULL, 0)) { - return nullptr; - } - if (!CreatePipe(&outputReadSide, &outputWriteSide, NULL, 0)) { - ::CloseHandle(inputReadSide); - ::CloseHandle(inputWriteSide); - return nullptr; - } - -#if !defined(_MSC_VER) - // Create the Pseudo Console, using the pipes - if (loadOnce) { - loadOnce = false; - auto hDLL = ::LoadLibrary(L"Kernel32.dll"); - if (hDLL) { - CreatePseudoConsoleFunc = (CreatePseudoConsole_T)::GetProcAddress(hDLL, "CreatePseudoConsole"); - ClosePseudoConsoleFunc = (ClosePseudoConsole_T)::GetProcAddress(hDLL, "ClosePseudoConsole"); - FreeLibrary(hDLL); - } - } -#endif - - if (!CreatePseudoConsoleFunc || !ClosePseudoConsoleFunc) { - ::CloseHandle(inputReadSide); - ::CloseHandle(outputWriteSide); - ::CloseHandle(inputWriteSide); - ::CloseHandle(outputReadSide); - return nullptr; - } - auto hr = CreatePseudoConsoleFunc({1000, 32}, inputReadSide, outputWriteSide, 0, &hPC); - if (FAILED(hr)) { - ::CloseHandle(inputReadSide); - ::CloseHandle(outputWriteSide); - ::CloseHandle(inputWriteSide); - ::CloseHandle(outputReadSide); - return nullptr; - } - - // Prepare the StartupInfoEx structure attached to the ConPTY. - STARTUPINFOEX siEx{}; - PrepareStartupInformation(hPC, &siEx); - - WinProcessImpl* prc = new WinProcessImpl(parent); - ::ZeroMemory(&prc->piProcInfo, sizeof(prc->piProcInfo)); - - auto fSuccess = CreateProcess(nullptr, - (wchar_t*)cmd.wc_str(), - nullptr, - nullptr, - FALSE, - EXTENDED_STARTUPINFO_PRESENT, - nullptr, - nullptr, - &siEx.StartupInfo, - &prc->piProcInfo); - - if (!fSuccess) { - clERROR() << "Failed to launch process:" << cmd << "." << GetLastError() << endl; - wxDELETE(prc); - return nullptr; - } - ::CloseHandle(inputReadSide); - ::CloseHandle(outputWriteSide); - - if (!(prc->m_flags & IProcessCreateSync)) { - prc->StartReaderThread(); - } - prc->m_writerThread = new WinWriterThread(prc->piProcInfo.hProcess, inputWriteSide); - prc->m_writerThread->Start(); - - prc->m_callback = nullptr; - prc->m_flags = flags; - prc->m_pid = prc->piProcInfo.dwProcessId; - prc->hChildStdoutRdDup = outputReadSide; - prc->m_hPseudoConsole = hPC; - return prc; -} - -IProcess* WinProcessImpl::ExecuteConPTY(wxEvtHandler* parent, - const std::vector& args, - size_t flags, - const wxString& workingDir) -{ - wxArrayString wxarr; - wxarr.reserve(args.size()); - for (const auto& arg : args) { - wxarr.Add(arg); - } - wxString cmd = ArrayJoin(wxarr, flags); - return ExecuteConPTY(parent, cmd, flags, workingDir); -} - /*static*/ IProcess* WinProcessImpl::Execute( wxEvtHandler* parent, const wxString& cmd, size_t flags, const wxString& workingDir, IProcessCallback* cb) { - if (flags & IProcessPseudoConsole) { - return ExecuteConPTY(parent, cmd, flags, workingDir); - } - SECURITY_ATTRIBUTES saAttr; BOOL fSuccess; @@ -829,46 +722,7 @@ void WinProcessImpl::Terminate() } } -bool WinProcessImpl::WriteToConsole(const wxString& buff) -{ - wxString pass(buff); - pass.Trim().Trim(false); - - // To write password, we need to attach to the child process console - if (!(m_flags & (IProcessCreateWithHiddenConsole | IProcessCreateConsole))) - return false; - - ConsoleAttacher ca(GetPid()); - if (ca.isAttached == false) - return false; - - HANDLE hStdIn = ::CreateFile( - L"CONIN$", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); - if (hStdIn == INVALID_HANDLE_VALUE) { - return false; - } - - pass += wxT("\r\n"); - std::vector pKeyEvents(pass.Len()); - - for (size_t i = 0; i < pass.Len(); i++) { - pKeyEvents[i].EventType = KEY_EVENT; - pKeyEvents[i].Event.KeyEvent.bKeyDown = TRUE; - pKeyEvents[i].Event.KeyEvent.wRepeatCount = 1; - pKeyEvents[i].Event.KeyEvent.wVirtualKeyCode = LOBYTE(::VkKeyScan(pass[i])); - pKeyEvents[i].Event.KeyEvent.wVirtualScanCode = 0; - pKeyEvents[i].Event.KeyEvent.uChar.UnicodeChar = pass[i]; - pKeyEvents[i].Event.KeyEvent.dwControlKeyState = 0; - } - - DWORD dwTextWritten; - if (::WriteConsoleInput(hStdIn, pKeyEvents.data(), pass.Len(), &dwTextWritten) == FALSE) { - CloseHandle(hStdIn); - return false; - } - CloseHandle(hStdIn); - return true; -} +bool WinProcessImpl::WriteToConsole(const wxString& buff) { return Write(buff); } void WinProcessImpl::Detach() { diff --git a/CodeLite/AsyncProcess/winprocess_impl.h b/CodeLite/AsyncProcess/winprocess_impl.h index e59674e1c0..a0dd5ce72a 100644 --- a/CodeLite/AsyncProcess/winprocess_impl.h +++ b/CodeLite/AsyncProcess/winprocess_impl.h @@ -67,18 +67,6 @@ class WXDLLIMPEXP_CL WinProcessImpl : public IProcess const wxString& workingDir = wxEmptyString, IProcessCallback* cb = NULL); - // Create process asynchronously and return a process object - static IProcess* ExecuteConPTY(wxEvtHandler* parent, - const std::vector& args, - size_t flags = IProcessCreateWithHiddenConsole, - const wxString& workingDir = wxEmptyString); - - // Create process asynchronously and return a process object - static IProcess* ExecuteConPTY(wxEvtHandler* parent, - const wxString& cmd, - size_t flags = IProcessCreateWithHiddenConsole, - const wxString& workingDir = wxEmptyString); - /** * @brief read data from stdout and error * @param buff check the buffer when true is returned From a92dfd47cd19f927c313181ab1342cb4f1946a7a Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Mon, 30 Mar 2026 02:22:06 +0300 Subject: [PATCH 02/16] Fix Windows Process Redirection and Console Creation Remove unnecessary manipulation of parent process standard handles during child process creation. The previous implementation saved and modified the parent's stdin/stdout/stderr handles, which was error-prone and unnecessary since child process handles can be specified directly via STARTUPINFO. The key changes include: * Removed save/restore operations for parent process standard handles (hSaveStdin, hSaveStdout, hSaveStderr) * Removed SetStdHandle calls that modified the parent process * Fixed console creation flag logic to use CREATE_NO_WINDOW instead of CREATE_NEW_CONSOLE when redirecting output, as Windows ignores STARTF_USESTDHANDLES with CREATE_NEW_CONSOLE * Removed console attachment and freopen logic that is no longer needed This simplifies the code and fixes a bug where output redirection could fail when creating hidden console processes. * AsyncProcess/winprocess_impl.h: Remove unused handle declarations * AsyncProcess/winprocess_impl.cpp: Simplify I/O redirection logic and fix console flags **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLite/AsyncProcess/winprocess_impl.cpp | 81 +++++------------------ CodeLite/AsyncProcess/winprocess_impl.h | 3 +- 2 files changed, 16 insertions(+), 68 deletions(-) diff --git a/CodeLite/AsyncProcess/winprocess_impl.cpp b/CodeLite/AsyncProcess/winprocess_impl.cpp index 399c4e8029..611b93eda0 100644 --- a/CodeLite/AsyncProcess/winprocess_impl.cpp +++ b/CodeLite/AsyncProcess/winprocess_impl.cpp @@ -308,29 +308,17 @@ IProcess* WinProcessImpl::Execute( bool redirectOutput = !(flags & IProcessNoRedirect); // The steps for redirecting child process's STDOUT: - // 1. Save current STDOUT, to be restored later. - // 2. Create anonymous pipe to be STDOUT for child process. - // 3. Set STDOUT of the parent process to be write handle to - // the pipe, so it is inherited by the child process. - // 4. Create a noninheritable duplicate of the read handle and + // 1. Create anonymous pipe to be STDOUT for child process. + // 2. Create a noninheritable duplicate of the read handle and // close the inheritable read handle. if (redirectOutput) { - // Save the handle to the current STDOUT. - prc->hSaveStdout = GetStdHandle(STD_OUTPUT_HANDLE); - // Create a pipe for the child process's STDOUT. if (!CreatePipe(&prc->hChildStdoutRd, &prc->hChildStdoutWr, &saAttr, 0)) { delete prc; return NULL; } - // Set a write handle to the pipe to be STDOUT. - if (!SetStdHandle(STD_OUTPUT_HANDLE, prc->hChildStdoutWr)) { - delete prc; - return NULL; - } - // Create noninheritable read handle and close the inheritable read handle. fSuccess = DuplicateHandle(GetCurrentProcess(), prc->hChildStdoutRd, @@ -346,28 +334,16 @@ IProcess* WinProcessImpl::Execute( CloseHandle(prc->hChildStdoutRd); // The steps for redirecting child process's STDERR: - // 1. Save current STDERR, to be restored later. - // 2. Create anonymous pipe to be STDERR for child process. - // 3. Set STDERR of the parent process to be write handle to - // the pipe, so it is inherited by the child process. - // 4. Create a noninheritable duplicate of the read handle and + // 1. Create anonymous pipe to be STDERR for child process. + // 2. Create a noninheritable duplicate of the read handle and // close the inheritable read handle. - // Save the handle to the current STDERR. - prc->hSaveStderr = GetStdHandle(STD_ERROR_HANDLE); - // Create a pipe for the child process's STDERR. if (!CreatePipe(&prc->hChildStderrRd, &prc->hChildStderrWr, &saAttr, 0)) { delete prc; return NULL; } - // Set a write handle to the pipe to be STDERR. - if (!SetStdHandle(STD_ERROR_HANDLE, prc->hChildStderrWr)) { - delete prc; - return NULL; - } - // Create noninheritable read handle and close the inheritable read handle. fSuccess = DuplicateHandle(GetCurrentProcess(), prc->hChildStderrRd, @@ -383,26 +359,16 @@ IProcess* WinProcessImpl::Execute( CloseHandle(prc->hChildStderrRd); // The steps for redirecting child process's STDIN: - // 1. Save current STDIN, to be restored later. - // 2. Create anonymous pipe to be STDIN for child process. - // 3. Set STDIN of the parent to be the read handle to the - // pipe, so it is inherited by the child process. - // 4. Create a noninheritable duplicate of the write handle, + // 1. Create anonymous pipe to be STDIN for child process. + // 2. Create a noninheritable duplicate of the write handle, // and close the inheritable write handle. - // Save the handle to the current STDIN. - prc->hSaveStdin = GetStdHandle(STD_INPUT_HANDLE); - // Create a pipe for the child process's STDIN. if (!CreatePipe(&prc->hChildStdinRd, &prc->hChildStdinWr, &saAttr, 0)) { delete prc; return NULL; } - // Set a read handle to the pipe to be STDIN. - if (!SetStdHandle(STD_INPUT_HANDLE, prc->hChildStdinRd)) { - delete prc; - return NULL; - } + // Duplicate the write handle to the pipe so it is not inherited. fSuccess = DuplicateHandle(GetCurrentProcess(), prc->hChildStdinWr, @@ -439,7 +405,14 @@ IProcess* WinProcessImpl::Execute( if (flags & IProcessCreateWithHiddenConsole) { siStartInfo.wShowWindow = SW_HIDE; - creationFlags = CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP; + // When redirecting output, we cannot use CREATE_NEW_CONSOLE because Windows + // ignores STARTF_USESTDHANDLES when CREATE_NEW_CONSOLE is set. The child would + // get its own console buffer that we cannot read from. Use CREATE_NO_WINDOW instead. + if (redirectOutput) { + creationFlags = CREATE_NO_WINDOW | CREATE_NEW_PROCESS_GROUP; + } else { + creationFlags = CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP; + } } LOG_IF_TRACE { clDEBUG1() << "Running process:" << cmd << endl; } @@ -466,30 +439,6 @@ IProcess* WinProcessImpl::Execute( wxDELETE(prc); return NULL; } - - if (redirectOutput) { - // After process creation, restore the saved STDIN and STDOUT. - if (!SetStdHandle(STD_INPUT_HANDLE, prc->hSaveStdin)) { - delete prc; - return NULL; - } - if (!SetStdHandle(STD_OUTPUT_HANDLE, prc->hSaveStdout)) { - delete prc; - return NULL; - } - if (!SetStdHandle(STD_OUTPUT_HANDLE, prc->hSaveStderr)) { - delete prc; - return NULL; - } - } - - if ((prc->m_flags & IProcessCreateConsole) || (prc->m_flags & IProcessCreateWithHiddenConsole)) { - ConsoleAttacher ca(prc->GetPid()); - if (ca.isAttached) { - freopen("CONOUT$", "wb", stdout); // reopen stout handle as console window output - freopen("CONOUT$", "wb", stderr); // reopen stderr handle as console window output - } - } prc->SetPid(prc->dwProcessId); if (!(prc->m_flags & IProcessCreateSync)) { prc->StartReaderThread(); diff --git a/CodeLite/AsyncProcess/winprocess_impl.h b/CodeLite/AsyncProcess/winprocess_impl.h index a0dd5ce72a..43590c5e87 100644 --- a/CodeLite/AsyncProcess/winprocess_impl.h +++ b/CodeLite/AsyncProcess/winprocess_impl.h @@ -97,8 +97,7 @@ class WXDLLIMPEXP_CL WinProcessImpl : public IProcess hChildStdinWrDup = INVALID_HANDLE_VALUE, hChildStdoutRd = INVALID_HANDLE_VALUE, hChildStdoutWr = INVALID_HANDLE_VALUE, hChildStdoutRdDup = INVALID_HANDLE_VALUE, hChildStderrRd = INVALID_HANDLE_VALUE, hChildStderrWr = INVALID_HANDLE_VALUE, - hChildStderrRdDup = INVALID_HANDLE_VALUE, hSaveStdin = INVALID_HANDLE_VALUE, - hSaveStdout = INVALID_HANDLE_VALUE, hSaveStderr = INVALID_HANDLE_VALUE; + hChildStderrRdDup = INVALID_HANDLE_VALUE; VOID* m_hPseudoConsole = nullptr; // Child process id & information From a97486199455fa02587b0f5f07ebd815653cad0d Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Mon, 30 Mar 2026 21:43:31 +0300 Subject: [PATCH 03/16] Update Terminal Submodule Integration And Event Types Refresh the built-in terminal pane to use the newer wxTerminalEmulator submodule APIs and the renamed terminal event class. The pane now builds against the updated terminal view/control types, uses the modern toolbar implementation, and creates terminal tabs directly from the selected shell command while keeping tab titles and lifecycle events in sync. The terminal launcher also simplifies its UX by always showing the built-in terminal panel instead of toggling focus state manually. * Terminal pane * wxTerminalCtrl events * Debugger process startup **Generated by CodeLite** Signed-off-by: Eran Ifrah --- Debugger/debuggergdb.cpp | 7 - LiteEditor/cl_editor.cpp | 1 + LiteEditor/frame.cpp | 14 +- Plugin/CMakeLists.txt | 2 + .../wxTerminalCtrl/clBuiltinTerminalPane.cpp | 225 ++++++------------ .../wxTerminalCtrl/clBuiltinTerminalPane.hpp | 19 +- Plugin/wxTerminalCtrl/wxTerminalCtrl.cpp | 6 +- Plugin/wxTerminalCtrl/wxTerminalEvent.cpp | 14 +- Plugin/wxTerminalCtrl/wxTerminalEvent.hpp | 34 +-- submodules/wxTerminalEmulator | 2 +- 10 files changed, 107 insertions(+), 217 deletions(-) diff --git a/Debugger/debuggergdb.cpp b/Debugger/debuggergdb.cpp index 49eda2f0b7..a02a0b5283 100644 --- a/Debugger/debuggergdb.cpp +++ b/Debugger/debuggergdb.cpp @@ -305,10 +305,6 @@ bool DbgGdb::Start(const DebugSessionInfo& si, clEnvList_t* env_list) #endif size_t flags = needs_console ? IProcessCreateConsole : IProcessCreateDefault; - if (m_info.flags & DebuggerInformation::kRunAsSuperuser) { - flags |= IProcessCreateAsSuperuser; - } - m_gdbProcess = ::CreateAsyncProcess(this, cmd, flags, si.cwd, env_list); if (!m_gdbProcess) { return false; @@ -1603,9 +1599,6 @@ bool DbgGdb::Attach(const DebugSessionInfo& si, clEnvList_t* env_list) // Build the process creation flags size_t createFlags = IProcessCreateDefault; - if (m_info.flags & DebuggerInformation::kRunAsSuperuser) { - createFlags |= IProcessCreateAsSuperuser; - } m_gdbProcess = CreateAsyncProcess(this, cmd, createFlags, wxEmptyString, env_list); if (!m_gdbProcess) { return false; diff --git a/LiteEditor/cl_editor.cpp b/LiteEditor/cl_editor.cpp index 889efcb4ae..2969755bf4 100644 --- a/LiteEditor/cl_editor.cpp +++ b/LiteEditor/cl_editor.cpp @@ -78,6 +78,7 @@ #include #include #include +#include #include #include #include diff --git a/LiteEditor/frame.cpp b/LiteEditor/frame.cpp index 19ed1adbcb..15422a6e5d 100644 --- a/LiteEditor/frame.cpp +++ b/LiteEditor/frame.cpp @@ -4643,19 +4643,7 @@ void clMainFrame::OnIncrementalReplace(wxCommandEvent& event) void clMainFrame::OnShowBuiltInTerminal(wxCommandEvent& e) { wxUnusedVar(e); - // toggle the terminal view - if (GetOutputPane()->IsShown() && GetOutputPane()->GetBuiltInTerminal()->IsFocused()) { - ManagerST::Get()->ShowOutputPane(_("Terminal"), false, false); - if (clGetManager()->GetActiveEditor()) { - // set the focus back to the editor - clGetManager()->GetActiveEditor()->SetActive(); - } else { - ::SetBestFocus(this); - } - } else { - ManagerST::Get()->ShowOutputPane(_("Terminal"), true, true); - GetOutputPane()->GetBuiltInTerminal()->Focus(); - } + ManagerST::Get()->ShowOutputPane(_("Terminal"), true, true); } void clMainFrame::OnShowFullScreen(wxCommandEvent& e) diff --git a/Plugin/CMakeLists.txt b/Plugin/CMakeLists.txt index b42cae131f..acf43cebf7 100644 --- a/Plugin/CMakeLists.txt +++ b/Plugin/CMakeLists.txt @@ -110,6 +110,8 @@ target_link_libraries( lualib LuaBridge PRIVATE dtl wxterminal_lib) +target_include_directories(plugin + PUBLIC ${CL_SRC_ROOT}/submodules/wxTerminalEmulator) if(USE_PCH) codelite_add_pch(plugin) diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp index ebbeec889d..f29a074155 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -3,172 +3,105 @@ #include "ColoursAndFontsManager.h" #include "CompilerLocator/CompilerLocatorMSVC.h" #include "FontUtils.hpp" +#include "Platform/Platform.hpp" #include "bitmap_loader.h" #include "clFileName.hpp" #include "clWorkspaceManager.h" +#include "codelite_events.h" +#include "environmentconfig.h" #include "event_notifier.h" +#include "globals.h" #include "imanager.h" #include "macros.h" #include "ssh/ssh_account_info.h" +#include "terminal_view.h" #include "wxTerminalOutputCtrl.hpp" #include #include +#include #include +namespace +{ +std::map LocateDefaultTerminals() +{ + std::map terminals; + auto bash = ThePlatform->Which("bash"); + auto cmd = ThePlatform->Which("cmd"); + if (bash.has_value()) { + terminals.insert( + {wxString::Format("%s --login -i", bash.value()), wxString::Format("%s --login -i", bash.value())}); + } + + if (cmd.has_value()) { + terminals.insert({cmd.value(), cmd.value()}); + } + return terminals; +} +} // namespace + clBuiltinTerminalPane::clBuiltinTerminalPane(wxWindow* parent, wxWindowID id) : wxPanel(parent, id) { - Bind(wxEVT_IDLE, &clBuiltinTerminalPane::OnIdle, this); - SetSizer(new wxBoxSizer(wxVERTICAL)); - m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, + m_book = new Notebook(this, + wxID_ANY, + wxDefaultPosition, + wxDefaultSize, kNotebook_CloseButtonOnActiveTab | kNotebook_ShowFileListButton | kNotebook_MouseMiddleClickClosesTab | kNotebook_FixedWidth | kNotebook_AllowDnD); - m_toolbar = new clToolBar(this); - + m_toolbar = new wxAuiToolBar(this); GetSizer()->Add(m_toolbar, wxSizerFlags().Expand().Proportion(0)); GetSizer()->Add(m_book, wxSizerFlags().Expand().Proportion(1)); - auto image_list = m_toolbar->GetBitmapsCreateIfNeeded(); - m_toolbar->AddTool(wxID_NEW, _("New"), image_list->Add("file_new"), wxEmptyString, wxITEM_DROPDOWN); + auto image_list = clGetManager()->GetStdIcons(); + m_toolbar->AddTool(wxID_NEW, _("New"), image_list->LoadBitmap("file_new"), wxEmptyString, wxITEM_NORMAL); // Get list of terminals - m_terminal_types = new wxChoice(m_toolbar, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(150), wxNOT_FOUND)); + m_terminal_types = new wxChoice(m_toolbar, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(300), wxNOT_FOUND)); UpdateTerminalsChoice(false); m_toolbar->AddControl(m_terminal_types); #ifdef __WXMSW__ - m_toolbar->AddTool(wxID_REFRESH, _("Scan"), image_list->Add("debugger_restart"), wxEmptyString, wxITEM_NORMAL); + m_toolbar->AddTool( + wxID_REFRESH, _("Scan"), image_list->LoadBitmap("debugger_restart"), wxEmptyString, wxITEM_NORMAL); #endif m_toolbar->Realize(); - m_toolbar->Bind(wxEVT_TOOL_DROPDOWN, &clBuiltinTerminalPane::OnNewDropdown, this, wxID_NEW); m_toolbar->Bind(wxEVT_TOOL, &clBuiltinTerminalPane::OnNew, this, wxID_NEW); m_toolbar->Bind(wxEVT_TOOL, &clBuiltinTerminalPane::OnScanForTerminals, this, wxID_REFRESH); GetSizer()->Fit(this); - UpdateTextAttributes(); - wxTheApp->Bind(wxEVT_TERMINAL_CTRL_SET_TITLE, &clBuiltinTerminalPane::OnSetTitle, this); m_book->Bind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); } clBuiltinTerminalPane::~clBuiltinTerminalPane() { - Unbind(wxEVT_IDLE, &clBuiltinTerminalPane::OnIdle, this); - wxTheApp->Unbind(wxEVT_TERMINAL_CTRL_SET_TITLE, &clBuiltinTerminalPane::OnSetTitle, this); m_book->Unbind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); clConfig::Get().Write("terminal/last_used_terminal", m_terminal_types->GetStringSelection()); } -void clBuiltinTerminalPane::UpdateTextAttributes() -{ - for (size_t i = 0; i < m_book->GetPageCount(); ++i) { - auto terminal = static_cast(m_book->GetPage(i)); - auto lexer = ColoursAndFontsManager::Get().GetLexer("text"); - auto default_style = lexer->GetProperty(0); - wxColour bg_colour = default_style.GetBgColour(); - wxColour fg_colour = default_style.GetFgColour(); - - wxFont text_font; - if (default_style.GetFontInfoDesc().empty()) { - text_font = FontUtils::GetDefaultMonospacedFont(); - } else { - text_font.SetNativeFontInfo(default_style.GetFontInfoDesc()); - } - terminal->GetView()->SetAttributes(bg_colour, fg_colour, text_font); - terminal->GetView()->ReloadSettings(); - } -} - void clBuiltinTerminalPane::OnWorkspaceLoaded(clWorkspaceEvent& event) { event.Skip(); } -void clBuiltinTerminalPane::Focus() -{ - if (GetActiveTerminal()) { - GetActiveTerminal()->GetInputCtrl()->SetFocus(); - } -} - -wxTerminalCtrl* clBuiltinTerminalPane::GetActiveTerminal() +TerminalView* clBuiltinTerminalPane::GetActiveTerminal() { // when we add tabs, return the active selected tab's terminal if (m_book->GetPageCount() == 0) { return nullptr; } - return static_cast(m_book->GetPage(m_book->GetSelection())); -} - -void clBuiltinTerminalPane::OnNewDropdown(wxCommandEvent& event) -{ - // now show the menu for choosing the location for this terminal - if (!GetActiveTerminal()) { - // this functionality requires an active terminal running - return; - } - - wxMenu menu; - wxString default_path; // contains the wd for the terminal - wxString workspace_ssh_account; // if remote workspace is loaded, this variable will contains its account - auto workspace = clWorkspaceManager::Get().GetWorkspace(); - if (workspace) { - if (workspace->IsRemote()) { - workspace_ssh_account = workspace->GetSshAccount(); - } - default_path = wxFileName(workspace->GetFileName()).GetPath(); - default_path.Replace("\\", "/"); - } - - if (!default_path.empty()) { - wxString label; - label << "Workspace: " << default_path; - if (!workspace_ssh_account.empty()) { - label << "@" << workspace_ssh_account; - } - - auto item = menu.Append(wxID_ANY, label); - menu.Bind( - wxEVT_MENU, - [this, default_path, workspace_ssh_account](wxCommandEvent& event) { - if (workspace_ssh_account.empty()) { - GetActiveTerminal()->SetTerminalWorkingDirectory(default_path); - } else { - GetActiveTerminal()->SSHAndSetWorkingDirectory(workspace_ssh_account, default_path); - } - Focus(); - }, - item->GetId()); - menu.AppendSeparator(); - } - - auto all_accounts = SSHAccountInfo::Load(); - for (const auto& account : all_accounts) { - auto item = menu.Append(wxID_ANY, "SSH: " + account.GetAccountName()); - menu.Bind( - wxEVT_MENU, - [this, account](wxCommandEvent& event) { - GetActiveTerminal()->SSHAndSetWorkingDirectory(account.GetAccountName(), wxEmptyString); - Focus(); - }, - item->GetId()); - } - m_toolbar->ShowMenuForButton(wxID_NEW, &menu); + return static_cast(m_book->GetPage(m_book->GetSelection())); } void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) { wxUnusedVar(event); - - wxString working_directory; - wxString shell; - auto workspace = clWorkspaceManager::Get().GetWorkspace(); - if (workspace && !workspace->IsRemote()) { - wxFileName fn{ workspace->GetFileName() }; - working_directory = clFileName::ToMSYS2(fn.GetPath()); + if (m_terminal_types->IsEmpty()) { + return; } int selection = m_terminal_types->GetSelection(); @@ -179,14 +112,24 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) wxStringClientData* cd = dynamic_cast(m_terminal_types->GetClientObject(selection)); const wxString& cmd = cd->GetData(); - wxTerminalCtrl* ctrl = new wxTerminalCtrl(m_book, wxID_ANY, working_directory); - static size_t terminal_id = 0; - ctrl->SetShellCommand(cmd); - - m_book->AddPage(ctrl, wxString::Format("Terminal %d", ++terminal_id), true); + EnvSetter env; + TerminalView* ctrl = new TerminalView(m_book, cmd); + m_book->AddPage(ctrl, cmd, true); m_book->SetPageToolTip(m_book->GetPageCount() - 1, cmd); - Focus(); + ctrl->Bind(wxEVT_TERMINAL_TITLE_CHANGED, [ctrl, this](wxTerminalEvent& event) { + int where = m_book->FindPage(ctrl); + if (where != wxNOT_FOUND) { + m_book->SetPageText(where, event.GetTitle()); + } + }); + ctrl->Bind(wxEVT_TERMINAL_TERMINATED, [ctrl, this](wxTerminalEvent& event) { + wxUnusedVar(event); + int where = m_book->FindPage(ctrl); + if (where != wxNOT_FOUND) { + m_book->DeletePage(where, ctrl); + } + }); } void clBuiltinTerminalPane::OnSetTitle(wxTerminalEvent& event) @@ -195,34 +138,25 @@ void clBuiltinTerminalPane::OnSetTitle(wxTerminalEvent& event) wxWindow* win = dynamic_cast(event.GetEventObject()); CHECK_PTR_RET(win); - for (size_t i = 0; i < m_book->GetPageCount(); ++i) { - if (win == m_book->GetPage(i)) { - m_book->SetPageText(i, event.GetString()); - break; - } + int index = m_book->FindPage(win); + if (index != wxNOT_FOUND) { + m_book->SetPageText(index, event.GetTitle()); } } void clBuiltinTerminalPane::OnPageChanged(wxBookCtrlEvent& event) { event.Skip(); - CallAfter(&clBuiltinTerminalPane::Focus); -} - -bool clBuiltinTerminalPane::IsFocused() -{ - if (GetActiveTerminal()) { - return IsShown() && GetActiveTerminal()->IsFocused(); - } else { - return IsShown(); - } + auto terminal = GetActiveTerminal(); + CHECK_PTR_RET(terminal); + terminal->CallAfter(&TerminalView::SetFocus); } void clBuiltinTerminalPane::DetectTerminals(std::map& terminals) { #ifdef __WXMSW__ - terminals.clear(); - terminals = { { "bash", "bash" }, { "CMD", "CMD" } }; + terminals = LocateDefaultTerminals(); + CompilerLocatorMSVC locator_msvc{}; if (locator_msvc.Locate()) { // attempt to locate MSVC compilers @@ -231,7 +165,7 @@ void clBuiltinTerminalPane::DetectTerminals(std::map& termin wxString build_tool = compiler->GetTool("MAKE"); build_tool = build_tool.BeforeLast('>'); build_tool.Prepend("CMD /K "); - terminals.insert({ "CMD for " + compiler->GetName(), build_tool }); + terminals.insert({"CMD for " + compiler->GetName(), build_tool}); } } WriteTerminalOptionsToDisk(terminals); @@ -250,7 +184,7 @@ bool clBuiltinTerminalPane::ReadTerminalOptionsFromDisk(std::map clBuiltinTerminalPane::GetTerminalsOptions(bool scan) { - std::map terminals; + std::map terminals = LocateDefaultTerminals(); + ; #ifdef __WXMSW__ - terminals.insert({ "bash", "bash" }); - terminals.insert({ "CMD", "CMD" }); if (scan) { terminals.clear(); DetectTerminals(terminals); @@ -286,7 +219,6 @@ std::map clBuiltinTerminalPane::GetTerminalsOptions(bool sca } #else wxUnusedVar(scan); - terminals.insert({ "bash", "bash" }); #endif return terminals; } @@ -301,41 +233,18 @@ void clBuiltinTerminalPane::OnScanForTerminals(wxCommandEvent& event) void clBuiltinTerminalPane::UpdateTerminalsChoice(bool scan) { auto terminals = GetTerminalsOptions(scan); -#ifdef __WXMSW__ - int choiceWidth = 60; -#endif - int initial_value = 0; wxString last_selection = clConfig::Get().Read("terminal/last_used_terminal", wxString()); m_terminal_types->Clear(); for (const auto& [name, command] : terminals) { -#ifdef __WXMSW__ - choiceWidth = wxMax(choiceWidth, GetTextExtent(name).GetWidth()); -#endif int item_pos = m_terminal_types->Append(name, new wxStringClientData(command)); if (!last_selection.empty() && last_selection == name) { initial_value = item_pos; } } -#ifdef __WXMSW__ - int controlWidth = choiceWidth == wxNOT_FOUND ? wxNOT_FOUND : FromDIP(choiceWidth); - m_terminal_types->SetSize(controlWidth, wxNOT_FOUND); - m_terminal_types->SetSizeHints(controlWidth, wxNOT_FOUND); -#endif - if (!m_terminal_types->IsEmpty()) { m_terminal_types->SetSelection(initial_value); } } - -void clBuiltinTerminalPane::OnIdle(wxIdleEvent& event) -{ - CHECK_COND_RET(EventNotifier::Get()->TopFrame()->IsActive()); - event.Skip(); - - // pass it to the active tab - CHECK_PTR_RET(GetActiveTerminal()); - GetActiveTerminal()->ProcessIdle(); -} diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp index 1d978894df..fc9c9ee0f2 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp @@ -2,27 +2,24 @@ #define CLBUILTINTERMINALPANE_HPP #include "Notebook.h" -#include "clToolBar.h" -#include "wxTerminalCtrl.h" +#include "clWorkspaceEvent.hpp" +#include "terminal_event.h" +#include +#include #include +class TerminalView; class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel { - public: clBuiltinTerminalPane(wxWindow* parent, wxWindowID id = wxID_ANY); virtual ~clBuiltinTerminalPane(); - void Focus(); - bool IsFocused(); - protected: void OnWorkspaceLoaded(clWorkspaceEvent& event); void OnPageChanged(wxBookCtrlEvent& event); void OnSetTitle(wxTerminalEvent& event); - void UpdateTextAttributes(); - void OnNewDropdown(wxCommandEvent& event); void OnNew(wxCommandEvent& event); void DetectTerminals(std::map& terminals); bool ReadTerminalOptionsFromDisk(std::map& terminals); @@ -30,11 +27,11 @@ class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel std::map GetTerminalsOptions(bool scan = false); void OnScanForTerminals(wxCommandEvent& event); void UpdateTerminalsChoice(bool scan); - void OnIdle(wxIdleEvent& event); private: - wxTerminalCtrl* GetActiveTerminal(); - clToolBar* m_toolbar = nullptr; + TerminalView* GetActiveTerminal(); + + wxAuiToolBar* m_toolbar = nullptr; Notebook* m_book = nullptr; wxChoice* m_terminal_types = nullptr; }; diff --git a/Plugin/wxTerminalCtrl/wxTerminalCtrl.cpp b/Plugin/wxTerminalCtrl/wxTerminalCtrl.cpp index d0d8108253..08a6c540a4 100644 --- a/Plugin/wxTerminalCtrl/wxTerminalCtrl.cpp +++ b/Plugin/wxTerminalCtrl/wxTerminalCtrl.cpp @@ -131,7 +131,7 @@ void wxTerminalCtrl::StartShell() SetTerminalWorkingDirectory(m_startingDirectory); } LOG_DEBUG(TERM_LOG()) << "Successfully started shell terminal" << endl; - wxTerminalEvent readyEvent(wxEVT_TERMINAL_CTRL_READY); + wxTerminalCtrlEvent readyEvent(wxEVT_TERMINAL_CTRL_READY); readyEvent.SetEventObject(this); GetEventHandler()->AddPendingEvent(readyEvent); } else { @@ -165,7 +165,7 @@ void wxTerminalCtrl::AppendText(wxStringView text) m_inputCtrl->SetWritePositionEnd(); if (!window_title.empty()) { - wxTerminalEvent titleEvent(wxEVT_TERMINAL_CTRL_SET_TITLE); + wxTerminalCtrlEvent titleEvent(wxEVT_TERMINAL_CTRL_SET_TITLE); titleEvent.SetEventObject(this); titleEvent.SetString(window_title); GetEventHandler()->AddPendingEvent(titleEvent); @@ -193,7 +193,7 @@ void wxTerminalCtrl::DoProcessTerminated() { wxDELETE(m_shell); if (m_terminating) { - wxTerminalEvent outputEvent(wxEVT_TERMINAL_CTRL_DONE); + wxTerminalCtrlEvent outputEvent(wxEVT_TERMINAL_CTRL_DONE); outputEvent.SetEventObject(this); GetEventHandler()->AddPendingEvent(outputEvent); } else { diff --git a/Plugin/wxTerminalCtrl/wxTerminalEvent.cpp b/Plugin/wxTerminalCtrl/wxTerminalEvent.cpp index 5085aec6f8..038a5ec772 100644 --- a/Plugin/wxTerminalCtrl/wxTerminalEvent.cpp +++ b/Plugin/wxTerminalCtrl/wxTerminalEvent.cpp @@ -1,15 +1,15 @@ #include "wxTerminalEvent.hpp" -wxTerminalEvent::wxTerminalEvent(wxEventType commandType, int winid) +wxTerminalCtrlEvent::wxTerminalCtrlEvent(wxEventType commandType, int winid) : wxCommandEvent(commandType, winid) { } -wxEvent* wxTerminalEvent::Clone() const { return new wxTerminalEvent(*this); } +wxEvent* wxTerminalCtrlEvent::Clone() const { return new wxTerminalCtrlEvent(*this); } // A specialization of MyProcess for redirecting the output -wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_READY, wxTerminalEvent); -wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_OUTPUT, wxTerminalEvent); -wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_STDERR, wxTerminalEvent); -wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_DONE, wxTerminalEvent); -wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_SET_TITLE, wxTerminalEvent); +wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_READY, wxTerminalCtrlEvent); +wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_OUTPUT, wxTerminalCtrlEvent); +wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_STDERR, wxTerminalCtrlEvent); +wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_DONE, wxTerminalCtrlEvent); +wxDEFINE_EVENT(wxEVT_TERMINAL_CTRL_SET_TITLE, wxTerminalCtrlEvent); diff --git a/Plugin/wxTerminalCtrl/wxTerminalEvent.hpp b/Plugin/wxTerminalCtrl/wxTerminalEvent.hpp index a59a904e1e..c6ef42d8e2 100644 --- a/Plugin/wxTerminalCtrl/wxTerminalEvent.hpp +++ b/Plugin/wxTerminalCtrl/wxTerminalEvent.hpp @@ -9,7 +9,7 @@ #include /// a wxCommandEvent that takes ownership of the clientData -class WXDLLIMPEXP_SDK wxTerminalEvent : public wxCommandEvent +class WXDLLIMPEXP_SDK wxTerminalCtrlEvent : public wxCommandEvent { protected: wxArrayString m_strings; @@ -22,41 +22,41 @@ class WXDLLIMPEXP_SDK wxTerminalEvent : public wxCommandEvent std::string m_stringRaw; public: - wxTerminalEvent(wxEventType commandType = wxEVT_NULL, int winid = 0); - wxTerminalEvent(const wxTerminalEvent&) = default; - wxTerminalEvent& operator=(const wxTerminalEvent&) = delete; - ~wxTerminalEvent() override = default; + wxTerminalCtrlEvent(wxEventType commandType = wxEVT_NULL, int winid = 0); + wxTerminalCtrlEvent(const wxTerminalCtrlEvent&) = default; + wxTerminalCtrlEvent& operator=(const wxTerminalCtrlEvent&) = delete; + ~wxTerminalCtrlEvent() override = default; //wxClientData* GetClientObject() const; wxEvent* Clone() const override; - wxTerminalEvent& SetLineNumber(int lineNumber) + wxTerminalCtrlEvent& SetLineNumber(int lineNumber) { this->m_lineNumber = lineNumber; return *this; } int GetLineNumber() const { return m_lineNumber; } - wxTerminalEvent& SetAllowed(bool allowed) + wxTerminalCtrlEvent& SetAllowed(bool allowed) { this->m_allowed = allowed; return *this; } - wxTerminalEvent& SetAnswer(bool answer) + wxTerminalCtrlEvent& SetAnswer(bool answer) { this->m_answer = answer; return *this; } - wxTerminalEvent& SetFileName(const wxString& fileName) + wxTerminalCtrlEvent& SetFileName(const wxString& fileName) { this->m_fileName = fileName; return *this; } - wxTerminalEvent& SetOldName(const wxString& oldName) + wxTerminalCtrlEvent& SetOldName(const wxString& oldName) { this->m_oldName = oldName; return *this; } - wxTerminalEvent& SetStrings(const wxArrayString& strings) + wxTerminalCtrlEvent& SetStrings(const wxArrayString& strings) { this->m_strings = strings; return *this; @@ -71,19 +71,19 @@ class WXDLLIMPEXP_SDK wxTerminalEvent : public wxCommandEvent void SetStringRaw(const std::string& str) { m_stringRaw = str; } }; -using wxTerminalEventFunction = void (wxEvtHandler::*)(wxTerminalEvent&); +using wxTerminalEventFunction = void (wxEvtHandler::*)(wxTerminalCtrlEvent&); #define wxTerminalEventHandler(func) wxEVENT_HANDLER_CAST(wxTerminalEventFunction, func) // The terminal is ready. This event will include the PTS name (e.g. /dev/pts/12). // Use event.GetString() -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_READY, wxTerminalEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_READY, wxTerminalCtrlEvent); // Fired when stdout output is ready -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_OUTPUT, wxTerminalEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_OUTPUT, wxTerminalCtrlEvent); // Fired when stderr output is ready -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_STDERR, wxTerminalEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_STDERR, wxTerminalCtrlEvent); // The terminal has exited -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_DONE, wxTerminalEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_DONE, wxTerminalCtrlEvent); // Set the terminal title -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_SET_TITLE, wxTerminalEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TERMINAL_CTRL_SET_TITLE, wxTerminalCtrlEvent); #endif // WXTERMINALEVENT_HPP diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index 9a869c1c5e..38554a4a1f 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 9a869c1c5eaf17e42d8a05107823dc5063b769fc +Subproject commit 38554a4a1f167c4cff8268b7a829327be147c9ed From d78a046b369d13bf6eb18b1c6ef01f3410f3c541 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Mon, 30 Mar 2026 23:24:11 +0300 Subject: [PATCH 04/16] Add Event Filtering Hooks To The App Update the application and event-notifier plumbing to support event-type filter registration and filtering at the wxApp level. This introduces a callback-based filter registry in EventNotifier, exposes a new FilterEvent override on CodeLiteApp, and wires the app through to the notifier so future event interception can be centralized. The app class declaration was also reorganized to place members and method declarations under clearer access sections, and the bundled wxTerminalEmulator submodule was advanced to a newer commit. * Core event handling * App lifecycle and class layout * Submodule update **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLite/event_notifier.cpp | 39 +++++++++++++++++++++ CodeLite/event_notifier.h | 26 +++++++++++--- LiteEditor/app.cpp | 5 +++ LiteEditor/app.h | 64 +++++++++++++++++------------------ submodules/wxTerminalEmulator | 2 +- 5 files changed, 99 insertions(+), 37 deletions(-) diff --git a/CodeLite/event_notifier.cpp b/CodeLite/event_notifier.cpp index 1aaf037b2c..8577538190 100644 --- a/CodeLite/event_notifier.cpp +++ b/CodeLite/event_notifier.cpp @@ -102,3 +102,42 @@ void EventNotifier::NotifyWorkspaceReloadStartEvet(const wxString& workspaceFile void EventNotifier::AddPendingEvent(const wxEvent& event) { wxEvtHandler::AddPendingEvent(event); } bool EventNotifier::ProcessEvent(wxEvent& event) { return wxEvtHandler::ProcessEvent(event); } + +EventFilterCallbackToken EventNotifier::AddEventTypeFilter(wxEventType type, EventFilterCallback callback) +{ + static EventFilterCallbackToken event_filter_id{0}; + auto& callbacks = m_eventFilterCallbacks[type]; + // Place it first + ++event_filter_id; + EventFilterCallbackContainer container{.id = event_filter_id, .callback = std::move(callback)}; + callbacks.insert(callbacks.begin(), std::move(container)); + return event_filter_id; +} + +void EventNotifier::RemoveEventTypeFilter(wxEventType type, EventFilterCallbackToken token) +{ + auto iter = m_eventFilterCallbacks.find(type); + if (iter == m_eventFilterCallbacks.end()) { + return; + } + + auto& v = iter->second; + size_t count = std::erase_if(v, [token](const EventFilterCallbackContainer& c) { return c.id == token; }); + if (count && v.empty()) { + m_eventFilterCallbacks.erase(iter); + } +} + +int EventNotifier::FilterEvent(wxEvent& event) +{ + if (m_eventFilterCallbacks.empty()) { + return wxEventFilter::Event_Skip; + } + + auto iter = m_eventFilterCallbacks.find(event.GetEventType()); + if (iter == m_eventFilterCallbacks.end()) { + return wxEventFilter::Event_Skip; + } + + return wxEventFilter::Event_Skip; +} \ No newline at end of file diff --git a/CodeLite/event_notifier.h b/CodeLite/event_notifier.h index 04a0f428c1..8a540d63e1 100644 --- a/CodeLite/event_notifier.h +++ b/CodeLite/event_notifier.h @@ -26,8 +26,11 @@ #ifndef EVENTNOTIFIER_H #define EVENTNOTIFIER_H +#include #include +#include #include +#include #include #if wxUSE_GUI @@ -36,12 +39,16 @@ #include "codelite_exports.h" +using EventFilterCallback = std::function; +using EventFilterCallbackToken = size_t; + +struct WXDLLIMPEXP_CL EventFilterCallbackContainer { + EventFilterCallbackToken id{0}; + EventFilterCallback callback; +}; + class WXDLLIMPEXP_CL EventNotifier : public wxEvtHandler { -private: - EventNotifier() = default; - virtual ~EventNotifier() = default; - public: static EventNotifier* Get(); static void Release(); @@ -115,6 +122,17 @@ class WXDLLIMPEXP_CL EventNotifier : public wxEvtHandler } return f.get(); } + + EventFilterCallbackToken AddEventTypeFilter(wxEventType type, EventFilterCallback callback); + void RemoveEventTypeFilter(wxEventType type, EventFilterCallbackToken token); + + int FilterEvent(wxEvent& event); + +private: + EventNotifier() = default; + virtual ~EventNotifier() = default; + + std::unordered_map> m_eventFilterCallbacks; }; #endif // EVENTNOTIFIER_H diff --git a/LiteEditor/app.cpp b/LiteEditor/app.cpp index 64f3a70b40..2892a8817d 100644 --- a/LiteEditor/app.cpp +++ b/LiteEditor/app.cpp @@ -25,6 +25,7 @@ #include "app.h" +#include #ifdef __WXGTK__ #include "exelocator.h" #endif @@ -1183,3 +1184,7 @@ void CodeLiteApp::FinalizeShutdown() wxFileName::Rmdir(clStandardPaths::Get().GetTempDir(), wxPATH_RMDIR_RECURSIVE); clDEBUG() << "Finalizing shutdown...success" << endl; } + +int CodeLiteApp::FilterEvent(wxEvent& event) { + return EventNotifier::Get()->FilterEvent(event); +} diff --git a/LiteEditor/app.h b/LiteEditor/app.h index f8647772c0..9a4b6e7346 100644 --- a/LiteEditor/app.h +++ b/LiteEditor/app.h @@ -27,6 +27,7 @@ #include "clPersistenceManager.h" #include "frame.h" +#include #include #include #include @@ -36,35 +37,6 @@ class CodeLiteApp : public wxApp public: enum PluginPolicy { PP_None = 0, PP_All, PP_FromList }; -protected: - clMainFrame* m_pMainFrame; - wxSingleInstanceChecker* m_singleInstance; - wxArrayString m_parserPaths; - wxLocale m_locale; - wxArrayString m_allowedPlugins; - PluginPolicy m_pluginLoadPolicy; - std::unique_ptr m_persistenceManager; - bool m_startedInDebuggerMode; - - // When starting in debugger mode - wxString m_exeToDebug; - wxString m_debuggerArgs; - wxString m_debuggerWorkingDirectory; - static bool m_restartCodeLite; - static wxString m_restartCommand; - static wxString m_restartWD; - wxCmdLineParser m_parser; - -private: // Methods - bool CopySettings(const wxString& destDir, wxString& installPath); - bool IsSingleInstance(const wxCmdLineParser& parser); - void DoCopyGdbPrinters(); - void MSWReadRegistry(); - wxString DoFindMenuFile(const wxString& installDirectory); - void AdjustPathForCygwinIfNeeded(); - void AdjustPathForMSYSIfNeeded(); - void PrintUsage(const wxCmdLineParser& parser); - public: CodeLiteApp(); virtual ~CodeLiteApp(); @@ -104,11 +76,39 @@ class CodeLiteApp : public wxApp void ProcessCommandLineParams(); +private: // Methods + bool CopySettings(const wxString& destDir, wxString& installPath); + bool IsSingleInstance(const wxCmdLineParser& parser); + void DoCopyGdbPrinters(); + void MSWReadRegistry(); + wxString DoFindMenuFile(const wxString& installDirectory); + void AdjustPathForCygwinIfNeeded(); + void AdjustPathForMSYSIfNeeded(); + void PrintUsage(const wxCmdLineParser& parser); + int FilterEvent(wxEvent& event) override; + protected: - virtual bool OnInit(); - virtual int OnExit(); - virtual void OnFatalException(); + bool OnInit() override; + int OnExit() override; + void OnFatalException() override; void OpenFolder(const wxString& path); void OpenFile(const wxString& path, long lineNumber); void OpenItem(const wxString& path, long lineNumber); + clMainFrame* m_pMainFrame; + wxSingleInstanceChecker* m_singleInstance; + wxArrayString m_parserPaths; + wxLocale m_locale; + wxArrayString m_allowedPlugins; + PluginPolicy m_pluginLoadPolicy; + std::unique_ptr m_persistenceManager; + bool m_startedInDebuggerMode; + + // When starting in debugger mode + wxString m_exeToDebug; + wxString m_debuggerArgs; + wxString m_debuggerWorkingDirectory; + static bool m_restartCodeLite; + static wxString m_restartCommand; + static wxString m_restartWD; + wxCmdLineParser m_parser; }; diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index 38554a4a1f..28f3b601fb 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 38554a4a1f167c4cff8268b7a829327be147c9ed +Subproject commit 28f3b601fb21e5fe2149151458d1e52ac040c83c From 47b0549b77281a59ef3a72eaee9340dbfb210987 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 01:14:19 +0300 Subject: [PATCH 05/16] Add Optional Environment In Builtin Terminal Pane Update the built-in terminal creation path to pass an explicit optional environment list, keeping the default behavior of inheriting the parent process environment while aligning the terminal constructor call with the updated submodule API. Also apply style and formatting cleanup in the environment variables dialog to keep the codebase consistent. * Builtin terminal * Environment variables dialog **Generated by CodeLite** Signed-off-by: Eran Ifrah --- Plugin/EnvironmentVariablesDlg.cpp | 59 +++++++++++-------- .../wxTerminalCtrl/clBuiltinTerminalPane.cpp | 7 ++- submodules/wxTerminalEmulator | 2 +- 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/Plugin/EnvironmentVariablesDlg.cpp b/Plugin/EnvironmentVariablesDlg.cpp index bd1aac5812..5164c0c356 100644 --- a/Plugin/EnvironmentVariablesDlg.cpp +++ b/Plugin/EnvironmentVariablesDlg.cpp @@ -30,7 +30,7 @@ EnvironmentVariablesDlg::EnvironmentVariablesDlg(wxWindow* parent) wxStyledTextCtrl* sci = m_textCtrlDefault; LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("text"); - if(lexer) { + if (lexer) { lexer->Apply(sci); } @@ -47,14 +47,14 @@ EnvironmentVariablesDlg::EnvironmentVariablesDlg(wxWindow* parent) } m_book->SetSelection(0); - for(size_t i = 0; i < m_book->GetPageCount(); i++) { - if(m_book->GetPageText(i) == activePage) { + for (size_t i = 0; i < m_book->GetPageCount(); i++) { + if (m_book->GetPageText(i) == activePage) { m_book->GetPage(i)->SetFocus(); m_book->SetSelection(i); } wxWindow* page = m_book->GetPage(i); wxStyledTextCtrl* ctrl = dynamic_cast(page); - if(ctrl) { + if (ctrl) { ctrl->SetSavePoint(); ctrl->EmptyUndoBuffer(); } @@ -68,7 +68,7 @@ void EnvironmentVariablesDlg::DoAddPage(const wxString& name, const wxString& co { wxStyledTextCtrl* page = new wxStyledTextCtrl(m_book, wxID_ANY, wxDefaultPosition, wxSize(0, 0)); LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("text"); - if(lexer) { + if (lexer) { lexer->Apply(page); } @@ -83,14 +83,15 @@ void EnvironmentVariablesDlg::OnButtonOk(wxCommandEvent& event) wxStringMap_t envSets; envSets[wxT("Default")] = m_textCtrlDefault->GetText().Trim().Trim(false); - for(size_t i = 1; i < m_book->GetPageCount(); i++) { - if(i == (size_t)m_book->GetSelection()) { + for (size_t i = 1; i < m_book->GetPageCount(); i++) { + if (i == (size_t)m_book->GetSelection()) { vars.SetActiveSet(m_book->GetPageText(i)); } const wxStyledTextCtrl* page = (wxStyledTextCtrl*)m_book->GetPage(i); envSets[m_book->GetPageText(i)] = page->GetText().Trim().Trim(false); } + vars.SetEnvVarSets(envSets); EnvironmentConfig::Instance()->WriteObject(wxT("Variables"), &vars); @@ -105,12 +106,14 @@ void EnvironmentVariablesDlg::OnDeleteSet(wxCommandEvent& event) wxUnusedVar(event); int selection = m_book->GetSelection(); - if(selection == wxNOT_FOUND) + if (selection == wxNOT_FOUND) return; wxString name = m_book->GetPageText((size_t)selection); - if(wxMessageBox(wxString::Format(_("Delete environment variables set\n'%s' ?"), name.c_str()), _("Confirm"), - wxYES_NO | wxICON_QUESTION, this) != wxYES) + if (wxMessageBox(wxString::Format(_("Delete environment variables set\n'%s' ?"), name.c_str()), + _("Confirm"), + wxYES_NO | wxICON_QUESTION, + this) != wxYES) return; m_book->DeletePage((size_t)selection); } @@ -124,7 +127,7 @@ void EnvironmentVariablesDlg::OnDeleteSetUI(wxUpdateUIEvent& event) void EnvironmentVariablesDlg::OnExport(wxCommandEvent& event) { int selection = m_book->GetSelection(); - if(selection == wxNOT_FOUND) + if (selection == wxNOT_FOUND) return; #ifdef __WXMSW__ @@ -134,21 +137,21 @@ void EnvironmentVariablesDlg::OnExport(wxCommandEvent& event) #endif wxString text; - if(selection == 0) { + if (selection == 0) { text = m_textCtrlDefault->GetText(); } else { wxStyledTextCtrl* page = dynamic_cast(m_book->GetPage((size_t)selection)); - if(page) { + if (page) { text = page->GetText(); } } - if(text.IsEmpty()) + if (text.IsEmpty()) return; wxArrayString lines = wxStringTokenize(text, wxT("\r\n"), wxTOKEN_STRTOK); wxString envfile; - if(isWindows) { + if (isWindows) { envfile << wxT("environment.bat"); } else { envfile << wxT("environment"); @@ -156,21 +159,23 @@ void EnvironmentVariablesDlg::OnExport(wxCommandEvent& event) wxFileName fn(wxGetCwd(), envfile); wxFFile fp(fn.GetFullPath(), wxT("w+b")); - if(fp.IsOpened() == false) { + if (fp.IsOpened() == false) { wxMessageBox(wxString::Format(_("Failed to open file: '%s' for write"), fn.GetFullPath().c_str()), - wxT("CodeLite"), wxOK | wxCENTER | wxICON_WARNING, this); + wxT("CodeLite"), + wxOK | wxCENTER | wxICON_WARNING, + this); return; } - for(size_t i = 0; i < lines.GetCount(); i++) { + for (size_t i = 0; i < lines.GetCount(); i++) { wxString sLine = lines.Item(i).Trim().Trim(false); - if(sLine.IsEmpty()) + if (sLine.IsEmpty()) continue; static wxRegEx reVarPattern(wxT("\\$\\(( *)([a-zA-Z0-9_]+)( *)\\)")); - if(isWindows) { - while(reVarPattern.Matches(sLine)) { + if (isWindows) { + while (reVarPattern.Matches(sLine)) { wxString varName = reVarPattern.GetMatch(sLine, 2); wxString match = reVarPattern.GetMatch(sLine); sLine.Replace(match, wxString::Format(wxT("%%%s%%"), varName.c_str())); @@ -179,7 +184,7 @@ void EnvironmentVariablesDlg::OnExport(wxCommandEvent& event) sLine.Append(wxT("\r\n")); } else { - while(reVarPattern.Matches(sLine)) { + while (reVarPattern.Matches(sLine)) { wxString varName = reVarPattern.GetMatch(sLine, 2); wxString match = reVarPattern.GetMatch(sLine); sLine.Replace(match, wxString::Format(wxT("$%s"), varName.c_str())); @@ -190,8 +195,10 @@ void EnvironmentVariablesDlg::OnExport(wxCommandEvent& event) fp.Write(sLine); } - wxMessageBox(wxString::Format(_("Environment exported to: '%s' successfully"), fn.GetFullPath()), wxT("CodeLite"), - wxOK | wxCENTRE, this); + wxMessageBox(wxString::Format(_("Environment exported to: '%s' successfully"), fn.GetFullPath()), + wxT("CodeLite"), + wxOK | wxCENTRE, + this); } void EnvironmentVariablesDlg::OnNewSet(wxCommandEvent& event) { CallAfter(&EnvironmentVariablesDlg::DoAddNewSet); } @@ -207,9 +214,9 @@ void EnvironmentVariablesDlg::OnCancel(wxCommandEvent& event) void EnvironmentVariablesDlg::DoAddNewSet() { wxTextEntryDialog dlg(this, _("Name:"), wxT("Create a new set"), "My New Set"); - if(dlg.ShowModal() == wxID_OK) { + if (dlg.ShowModal() == wxID_OK) { wxString name = dlg.GetValue(); - if(name.IsEmpty()) + if (name.IsEmpty()) return; DoAddPage(name, wxT(""), false); } diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp index f29a074155..6e13b829a5 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -112,8 +112,11 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) wxStringClientData* cd = dynamic_cast(m_terminal_types->GetClientObject(selection)); const wxString& cmd = cd->GetData(); - EnvSetter env; - TerminalView* ctrl = new TerminalView(m_book, cmd); + // By default, inherit parent's env. + EnvSetter env_setter{}; + std::optional env{std::nullopt}; + + TerminalView* ctrl = new TerminalView(m_book, cmd, env); m_book->AddPage(ctrl, cmd, true); m_book->SetPageToolTip(m_book->GetPageCount() - 1, cmd); diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index 28f3b601fb..7f447d15e0 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 28f3b601fb21e5fe2149151458d1e52ac040c83c +Subproject commit 7f447d15e091e3ca1504ab1a67793018e6fe05b7 From 12137b80d898b4e67d2066100936a13003ec7027 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 08:38:00 +0300 Subject: [PATCH 06/16] Update Terminal Input Handling And Process Execution Improve the built-in terminal experience by routing key events through the active terminal control when it has focus, so input handling works more reliably for embedded terminals. The default Windows terminal choice is also updated to PowerShell, reflecting the preferred shell on that platform. This change additionally modernizes Windows process execution in the safe command runner by delegating process launch and output collection to the assistant process helper, while preserving shutdown-aware output handling. At the application level, startup now detaches from the console when possible, and the global event filter is extended so registered callbacks can consume events instead of only observing them. * Terminal * Process Execution * Event Filtering **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLite/AsyncProcess/winprocess_impl.cpp | 25 -------- CodeLite/event_notifier.cpp | 5 ++ CodeLite/procutils.cpp | 64 ++++++------------- LiteEditor/app.cpp | 7 +- .../wxTerminalCtrl/clBuiltinTerminalPane.cpp | 32 +++++++++- .../wxTerminalCtrl/clBuiltinTerminalPane.hpp | 3 + submodules/assistant | 2 +- submodules/wxTerminalEmulator | 2 +- 8 files changed, 63 insertions(+), 77 deletions(-) diff --git a/CodeLite/AsyncProcess/winprocess_impl.cpp b/CodeLite/AsyncProcess/winprocess_impl.cpp index 611b93eda0..8c304accd2 100644 --- a/CodeLite/AsyncProcess/winprocess_impl.cpp +++ b/CodeLite/AsyncProcess/winprocess_impl.cpp @@ -71,30 +71,6 @@ thread_local ClosePseudoConsole_T ClosePseudoConsoleFunc = nullptr; using HPCON = HANDLE; -/** - * @class ConsoleAttacher - * @date 11/03/10 - * @brief a helper class to attach this process to a process' console - * this allows us to write directly into that process console-input-buffer - * One should check isAttached once this object is constructed - */ -class ConsoleAttacher -{ -public: - bool isAttached; - -public: - ConsoleAttacher(long pid) { isAttached = AttachConsole(pid); } - - ~ConsoleAttacher() - { - if (isAttached) { - FreeConsole(); - } - isAttached = false; - } -}; - static bool CheckIsAlive(HANDLE hProcess) { DWORD dwExitCode; @@ -418,7 +394,6 @@ IProcess* WinProcessImpl::Execute( LOG_IF_TRACE { clDEBUG1() << "Running process:" << cmd << endl; } BOOL ret = FALSE; { - ConsoleAttacher ca(prc->GetPid()); ret = CreateProcess(NULL, cmd.wchar_str(), // shell line execution command NULL, // process security attributes diff --git a/CodeLite/event_notifier.cpp b/CodeLite/event_notifier.cpp index 8577538190..bc64033545 100644 --- a/CodeLite/event_notifier.cpp +++ b/CodeLite/event_notifier.cpp @@ -139,5 +139,10 @@ int EventNotifier::FilterEvent(wxEvent& event) return wxEventFilter::Event_Skip; } + for (auto& cb : iter->second) { + if (cb.callback(event)) { + return wxEventFilter::Event_Processed; + } + } return wxEventFilter::Event_Skip; } \ No newline at end of file diff --git a/CodeLite/procutils.cpp b/CodeLite/procutils.cpp index b1ed3a9249..df8669b46c 100644 --- a/CodeLite/procutils.cpp +++ b/CodeLite/procutils.cpp @@ -26,6 +26,7 @@ #include "AsyncProcess/asyncprocess.h" #include "StringUtils.h" +#include "assistant/Process.hpp" #include "cl_command_event.h" #include "file_logger.h" #include "fileutils.h" @@ -500,56 +501,29 @@ int ProcUtils::SafeExecuteCommand(const wxString& command, std::shared_ptr shutdown_flag) { #ifdef __WXMSW__ - wxString errMsg; - LOG_IF_TRACE { clDEBUG1() << "executing process:" << command << endl; } - std::unique_ptr proc{WinProcess::Execute(command, errMsg)}; - if (!proc) { - return wxNOT_FOUND; - } - - // wait for the process to terminate - wxString tmpbuf; - wxString buff; - - LOG_IF_TRACE { clDEBUG1() << "reading process output..." << endl; } - bool shutdown_cleanly{true}; - while (proc->IsAlive()) { - if (shutdown_flag && shutdown_flag->load()) { - // Check for termination flag state - shutdown_cleanly = false; - break; + auto argv = StringUtils::BuildArgv(command); + auto argv_std = StringUtils::ToStdStrings(argv); + std::string accumlated_output; + auto output_cb = [shutdown_flag, &accumlated_output](const std::string& out, const std::string& err) -> bool { + if (!out.empty()) { + accumlated_output += out; } - - tmpbuf.Clear(); - if (proc->Read(tmpbuf)) { - // as long as we read something, don't sleep... - buff << tmpbuf; - } else { - wxThread::Sleep(1); + if (!err.empty()) { + accumlated_output += err; } - } + return !shutdown_flag->load(); + }; - int exit_code{-1}; - if (shutdown_cleanly) { - tmpbuf.Clear(); - exit_code = proc->GetExitCode(); - LOG_IF_TRACE - { - clDEBUG1() << "process terminated with exit code:" << exit_code << endl; - // Read any unread output - clDEBUG1() << "reading process output remainder..." << endl; - } - proc->Read(tmpbuf); - while (!tmpbuf.IsEmpty()) { - buff << tmpbuf; - tmpbuf.Clear(); - proc->Read(tmpbuf); - } - proc->Cleanup(); - LOG_IF_TRACE { clDEBUG1() << "reading process output remainder...done" << endl; } + int exit_code = assistant::Process::RunProcessAndWait(argv_std, output_cb); + wxString out_str = wxString::FromUTF8(accumlated_output); + LOG_IF_TRACE + { + clDEBUG1() << "process terminated with exit code:" << exit_code << endl; + // Read any unread output + clDEBUG1() << "reading process output remainder..." << endl; } // Convert buff into wxArrayString - output = ::wxStringTokenize(buff, "\n", wxTOKEN_STRTOK); + output = ::wxStringTokenize(out_str, "\n", wxTOKEN_STRTOK); return exit_code; #else return Popen(command, output, shutdown_flag); diff --git a/LiteEditor/app.cpp b/LiteEditor/app.cpp index 2892a8817d..41b7d2203a 100644 --- a/LiteEditor/app.cpp +++ b/LiteEditor/app.cpp @@ -517,6 +517,9 @@ bool CodeLiteApp::OnInit() // CodeLite itself :/ FileLogger::OpenLog("codelite.log", clConfig::Get().Read(kConfigLogVerbosity, FileLogger::Error)); clDEBUG() << "Starting codelite..." << endl; + if (FreeConsole()) { + clSYSTEM() << "Successfully detached from console" << endl; + } // Copy gdb pretty printers from the installation folder to a writeable location // this is needed because python complies the files and in most cases the user @@ -1185,6 +1188,4 @@ void CodeLiteApp::FinalizeShutdown() clDEBUG() << "Finalizing shutdown...success" << endl; } -int CodeLiteApp::FilterEvent(wxEvent& event) { - return EventNotifier::Get()->FilterEvent(event); -} +int CodeLiteApp::FilterEvent(wxEvent& event) { return EventNotifier::Get()->FilterEvent(event); } diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp index 6e13b829a5..8a5212514a 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -28,7 +28,7 @@ std::map LocateDefaultTerminals() { std::map terminals; auto bash = ThePlatform->Which("bash"); - auto cmd = ThePlatform->Which("cmd"); + auto cmd = ThePlatform->Which("powershell"); if (bash.has_value()) { terminals.insert( {wxString::Format("%s --login -i", bash.value()), wxString::Format("%s --login -i", bash.value())}); @@ -77,10 +77,39 @@ clBuiltinTerminalPane::clBuiltinTerminalPane(wxWindow* parent, wxWindowID id) GetSizer()->Fit(this); m_book->Bind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); + + auto on_key_down = [this](wxEvent& event) -> bool { + auto terminal = GetActiveTerminal(); + CHECK_PTR_RET_FALSE(terminal); + CHECK_COND_RET_FALSE(terminal->HasFocus()); + wxKeyEvent* key_event = dynamic_cast(&event); + if (!key_event) { + return false; + } + return terminal->GetEventHandler()->ProcessEvent(*key_event); + }; + auto on_char_hook = [this](wxEvent& event) -> bool { + auto terminal = GetActiveTerminal(); + CHECK_PTR_RET_FALSE(terminal); + CHECK_COND_RET_FALSE(terminal->HasFocus()); + wxKeyEvent* key_event = dynamic_cast(&event); + if (!key_event) { + return false; + } + return terminal->GetEventHandler()->ProcessEvent(*key_event); + }; + m_tokens.push_back( + {EventNotifier::Get()->AddEventTypeFilter(wxEVT_KEY_DOWN, std::move(on_key_down)), wxEVT_KEY_DOWN}); + m_tokens.push_back( + {EventNotifier::Get()->AddEventTypeFilter(wxEVT_CHAR_HOOK, std::move(on_char_hook)), wxEVT_CHAR_HOOK}); } clBuiltinTerminalPane::~clBuiltinTerminalPane() { + for (const auto& [token, evt_type] : m_tokens) { + EventNotifier::Get()->RemoveEventTypeFilter(evt_type, token); + } + m_book->Unbind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); clConfig::Get().Write("terminal/last_used_terminal", m_terminal_types->GetStringSelection()); @@ -115,7 +144,6 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) // By default, inherit parent's env. EnvSetter env_setter{}; std::optional env{std::nullopt}; - TerminalView* ctrl = new TerminalView(m_book, cmd, env); m_book->AddPage(ctrl, cmd, true); m_book->SetPageToolTip(m_book->GetPageCount() - 1, cmd); diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp index fc9c9ee0f2..30a4e5e5dd 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp @@ -3,8 +3,10 @@ #include "Notebook.h" #include "clWorkspaceEvent.hpp" +#include "event_notifier.h" #include "terminal_event.h" +#include #include #include #include @@ -34,6 +36,7 @@ class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel wxAuiToolBar* m_toolbar = nullptr; Notebook* m_book = nullptr; wxChoice* m_terminal_types = nullptr; + std::vector> m_tokens; }; #endif // CLBUILTINTERMINALPANE_HPP diff --git a/submodules/assistant b/submodules/assistant index c8e71c2344..823872c1e7 160000 --- a/submodules/assistant +++ b/submodules/assistant @@ -1 +1 @@ -Subproject commit c8e71c2344497644efd37724aa2808b87e5786e4 +Subproject commit 823872c1e779e7cb59c94fd1533b6f7ebdbabf4d diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index 7f447d15e0..e81a1c3012 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 7f447d15e091e3ca1504ab1a67793018e6fe05b7 +Subproject commit e81a1c3012fd48ba66e6d3b4252c0ada3c3deff1 From 13d51fbe6e748bce6b0b5ea27cec479046fa714e Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 08:48:50 +0300 Subject: [PATCH 07/16] Fixed build error on non Windows platforms. Signed-off-by: Eran Ifrah --- LiteEditor/app.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/LiteEditor/app.cpp b/LiteEditor/app.cpp index 41b7d2203a..0173cf4906 100644 --- a/LiteEditor/app.cpp +++ b/LiteEditor/app.cpp @@ -517,9 +517,12 @@ bool CodeLiteApp::OnInit() // CodeLite itself :/ FileLogger::OpenLog("codelite.log", clConfig::Get().Read(kConfigLogVerbosity, FileLogger::Error)); clDEBUG() << "Starting codelite..." << endl; + +#ifdef __WXMSW__ if (FreeConsole()) { clSYSTEM() << "Successfully detached from console" << endl; } +#endif // Copy gdb pretty printers from the installation folder to a writeable location // this is needed because python complies the files and in most cases the user From 08265ad85d8613c8929aa257a41e1ebd5d2f4ef6 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 09:29:55 +0300 Subject: [PATCH 08/16] Update Workspace Formatting And wxTerminalEmulator Submodule Normalize the Linux workspace file formatting to a consistent, expanded JSON style while preserving the existing build, clean, install, and packaging targets for the supported Debug, Release, and GTK2 configurations. Also bump the wxTerminalEmulator submodule to a newer revision. * workspace * submodules **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLiteIDE-Linux.workspace | 131 ++++++++++++++++++++++++++-------- submodules/wxTerminalEmulator | 2 +- 2 files changed, 101 insertions(+), 32 deletions(-) diff --git a/CodeLiteIDE-Linux.workspace b/CodeLiteIDE-Linux.workspace index 7b63438684..76f3b2fb04 100644 --- a/CodeLiteIDE-Linux.workspace +++ b/CodeLiteIDE-Linux.workspace @@ -1,33 +1,102 @@ { - "workspace_type": "File System Workspace", - "name": "CodeLiteIDE-Linux", - "configs": [{ - "name": "Debug", - "targets": [["Run CMake", "mkdir -p .build-debug\ncd .build-debug\ncmake -DCMAKE_BUILD_TYPE=Debug .. -DCOPY_WX_LIBS=1 -DMAKE_DEB=1 -DCL_PREFIX=$HOME/root -Wno-dev"], ["build", "cd .build-debug && make -j$(nproc) install"], ["clean", "cd .build-debug\nmake -j$(nproc) clean"], ["install", "cd .build-debug\nmake -j$(nproc) install"]], - "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.xrc;*.rc;*.plist;*.iss;*.md;*.l", - "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", - "excludePaths": "$(WorkspacePath)/build-debug-native-book;$(WorkspacePath)/build-release-gtk2;$(WorkspacePath)/bitmaps-dark;$(WorkspacePath)/bitmaps-light;$(WorkspacePath)/build-debug;$(WorkspacePath)/build-release;$(WorkspacePath)/codelite-icons-dark;$(WorkspacePath)/codelite-icons-fresh-farm;$(WorkspacePath)/CxxParser", - "debugger": "GNU gdb debugger" - }, { - "name": "Debug GTK2", - "targets": [["CMake", "mkdir -p build-debug-gtk2\ncd build-debug-gtk2\ncmake .. -DWITH_WXPATH=$HOME/devl/wxWidgets/build-release-gtk2 -DMAKE_DEB=1 -DCOPY_WX_LIBS=1 -DCMAKE_BUILD_TYPE=Debug -DCL_PREFIX=$HOME/root"], ["build", "mkdir -p build-debug-gtk2\ncd build-debug-gtk2\nmake -j$(nproc) install"], ["clean", "mkdir -p build-debug-gtk2\ncd build-debug-gtk2\nmake -j$(nproc) clean"]], - "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.py;*.php;*.rb;*.html;*.js", - "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", - "excludePaths": "/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug-native-book;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release-gtk2;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-light;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-fresh-farm;CxxParser", - "debugger": "GNU gdb debugger" - }, { - "name": "Release", - "targets": [["Make package", "cd .build-release\nmake -j$(nproc) package"], ["Run CMake", "mkdir -p build-release\ncd .build-release\ncmake -DCMAKE_BUILD_TYPE=Release .. -DCOPY_WX_LIBS=1 -DMAKE_DEB=1 -Wno-dev"], ["build", "cd .build-release\nmake -j$(nproc)"], ["clean", "cd .build-release\nmake -j$(nproc) clean"]], - "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.plist;*.iss", - "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", - "excludePaths": "/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug-native-book;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release-gtk2;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-light;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-fresh-farm;CxxParser", - "debugger": "GNU gdb debugger" - }, { - "name": "Release GTK2", - "targets": [["CMake", "mkdir -p build-release-gtk2\ncd build-release-gtk2\ncmake .. -DWITH_WXPATH=$HOME/devl/wxWidgets/build-release-gtk2 -DMAKE_DEB=1 -DCOPY_WX_LIBS=1 -DCMAKE_BUILD_TYPE=Release"], ["build", "mkdir -p build-release-gtk2\ncd build-release-gtk2\nmake -j$(nproc)"], ["clean", "mkdir -p build-release-gtk2\ncd build-release-gtk2\nmake -j$(nproc) clean"], ["package", "mkdir -p build-release-gtk2\ncd build-release-gtk2\nmake -j$(nproc) package"]], - "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp", - "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", - "excludePaths": "/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug-native-book;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release-gtk2;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-light;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-fresh-farm;CxxParser", - "debugger": "GNU gdb debugger" - }] + "workspace_type": "File System Workspace", + "name": "CodeLiteIDE-Linux", + "configs": [ + { + "name": "Debug", + "targets": [ + [ + "Run CMake", + "mkdir -p .build-debug\ncd .build-debug\ncmake -DCMAKE_BUILD_TYPE=Debug .. -DCOPY_WX_LIBS=1 -DMAKE_DEB=1 -DCL_PREFIX=$HOME/root -Wno-dev" + ], + [ + "build", + "cd .build-debug && make -j$(nproc) install" + ], + [ + "clean", + "cd .build-debug\nmake -j$(nproc) clean" + ], + [ + "install", + "cd .build-debug\nmake -j$(nproc) install" + ] + ], + "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.xrc;*.rc;*.plist;*.iss;*.md;*.l", + "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", + "excludePaths": "$(WorkspacePath)/build-debug-native-book;$(WorkspacePath)/build-release-gtk2;$(WorkspacePath)/bitmaps-dark;$(WorkspacePath)/bitmaps-light;$(WorkspacePath)/build-debug;$(WorkspacePath)/build-release;$(WorkspacePath)/codelite-icons-dark;$(WorkspacePath)/codelite-icons-fresh-farm;$(WorkspacePath)/CxxParser", + "debugger": "GNU gdb debugger" + }, + { + "name": "Debug GTK2", + "targets": [ + [ + "CMake", + "mkdir -p build-debug-gtk2\ncd build-debug-gtk2\ncmake .. -DWITH_WXPATH=$HOME/devl/wxWidgets/build-release-gtk2 -DMAKE_DEB=1 -DCOPY_WX_LIBS=1 -DCMAKE_BUILD_TYPE=Debug -DCL_PREFIX=$HOME/root" + ], + [ + "build", + "mkdir -p build-debug-gtk2\ncd build-debug-gtk2\nmake -j$(nproc) install" + ], + [ + "clean", + "mkdir -p build-debug-gtk2\ncd build-debug-gtk2\nmake -j$(nproc) clean" + ] + ], + "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.py;*.php;*.rb;*.html;*.js", + "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", + "excludePaths": "/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug-native-book;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release-gtk2;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-light;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-fresh-farm;CxxParser", + "debugger": "GNU gdb debugger" + }, + { + "name": "Release", + "targets": [ + [ + "Make package", + "cd .build-release\nmake -j$(nproc) package" + ], + [ + "Run CMake", + "mkdir -p build-release\ncd .build-release\ncmake -DCMAKE_BUILD_TYPE=Release .. -DCOPY_WX_LIBS=1 -DMAKE_DEB=1 -Wno-dev" + ], + [ + "build", + "cd .build-release\nmake -j$(nproc)" + ], + [ + "clean", + "cd .build-release\nmake -j$(nproc) clean" + ] + ], + "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.plist;*.iss", + "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", + "excludePaths": "/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug-native-book;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release-gtk2;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-light;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-fresh-farm;CxxParser", + "debugger": "GNU gdb debugger" + }, + { + "name": "Release GTK2", + "targets": [ + [ + "CMake", + "mkdir -p build-release-gtk2\ncd build-release-gtk2\ncmake .. -DWITH_WXPATH=$HOME/devl/wxWidgets/build-release-gtk2 -DMAKE_DEB=1 -DCOPY_WX_LIBS=1 -DCMAKE_BUILD_TYPE=Release" + ], + [ + "build", + "mkdir -p build-release-gtk2\ncd build-release-gtk2\nmake -j$(nproc)" + ], + [ + "clean", + "mkdir -p build-release-gtk2\ncd build-release-gtk2\nmake -j$(nproc) clean" + ], + [ + "package", + "mkdir -p build-release-gtk2\ncd build-release-gtk2\nmake -j$(nproc) package" + ] + ], + "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp", + "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", + "excludePaths": "/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug-native-book;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release-gtk2;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/bitmaps-light;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-debug;/home/ANT.AMAZON.COM/eifrah/devl/codelite/build-release;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-dark;/home/ANT.AMAZON.COM/eifrah/devl/codelite/codelite-icons-fresh-farm;CxxParser", + "debugger": "GNU gdb debugger" + } + ] } \ No newline at end of file diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index e81a1c3012..94882ea07a 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit e81a1c3012fd48ba66e6d3b4252c0ada3c3deff1 +Subproject commit 94882ea07a359e29ccf8f272a2b3918712445b61 From 1d85f2cd03b53a767e33afef03a8397eb4be915a Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 09:41:05 +0300 Subject: [PATCH 09/16] Updated wxTerminalEmulator Signed-off-by: Eran Ifrah --- submodules/wxTerminalEmulator | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index 94882ea07a..beaad75c0b 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 94882ea07a359e29ccf8f272a2b3918712445b61 +Subproject commit beaad75c0bd45d64cc2852c72b8740eae6c8cd3d From 4f5cf9a6264001e233af9ca2d7f5913de67a4a68 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 11:01:02 +0300 Subject: [PATCH 10/16] Add Terminal Accelerator Handling For Common Shell Shortcuts Replace the previous global key event filtering with explicit accelerator bindings on the active terminal control. This keeps shortcut handling scoped to the focused terminal and routes common shell commands such as clear line, clear screen, interrupt, word navigation, and cursor movement through dedicated handlers. The implementation also updates the embedded wxTerminalEmulator submodule to pick up the new terminal-side shortcut support used by these actions. * Terminal shortcuts * Submodule update **Generated by CodeLite** Signed-off-by: Eran Ifrah --- .../wxTerminalCtrl/clBuiltinTerminalPane.cpp | 132 ++++++++++++++---- .../wxTerminalCtrl/clBuiltinTerminalPane.hpp | 11 ++ submodules/wxTerminalEmulator | 2 +- 3 files changed, 115 insertions(+), 30 deletions(-) diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp index 8a5212514a..51469069c1 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -21,6 +21,7 @@ #include #include #include +#include namespace { @@ -77,39 +78,10 @@ clBuiltinTerminalPane::clBuiltinTerminalPane(wxWindow* parent, wxWindowID id) GetSizer()->Fit(this); m_book->Bind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); - - auto on_key_down = [this](wxEvent& event) -> bool { - auto terminal = GetActiveTerminal(); - CHECK_PTR_RET_FALSE(terminal); - CHECK_COND_RET_FALSE(terminal->HasFocus()); - wxKeyEvent* key_event = dynamic_cast(&event); - if (!key_event) { - return false; - } - return terminal->GetEventHandler()->ProcessEvent(*key_event); - }; - auto on_char_hook = [this](wxEvent& event) -> bool { - auto terminal = GetActiveTerminal(); - CHECK_PTR_RET_FALSE(terminal); - CHECK_COND_RET_FALSE(terminal->HasFocus()); - wxKeyEvent* key_event = dynamic_cast(&event); - if (!key_event) { - return false; - } - return terminal->GetEventHandler()->ProcessEvent(*key_event); - }; - m_tokens.push_back( - {EventNotifier::Get()->AddEventTypeFilter(wxEVT_KEY_DOWN, std::move(on_key_down)), wxEVT_KEY_DOWN}); - m_tokens.push_back( - {EventNotifier::Get()->AddEventTypeFilter(wxEVT_CHAR_HOOK, std::move(on_char_hook)), wxEVT_CHAR_HOOK}); } clBuiltinTerminalPane::~clBuiltinTerminalPane() { - for (const auto& [token, evt_type] : m_tokens) { - EventNotifier::Get()->RemoveEventTypeFilter(evt_type, token); - } - m_book->Unbind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); clConfig::Get().Write("terminal/last_used_terminal", m_terminal_types->GetStringSelection()); @@ -161,6 +133,35 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) m_book->DeletePage(where, ctrl); } }); + + // Register standard keyboard shortcuts for the terminal. + std::vector V; + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'R', XRCID("Ctrl_ID_command")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'U', XRCID("Ctrl_ID_clear_line")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'L', XRCID("Ctrl_ID_clear_screen")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'D', XRCID("Ctrl_ID_logout")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'C', XRCID("Ctrl_ID_ctrl_c")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'W', XRCID("Ctrl_ID_delete_word")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'Z', XRCID("Ctrl_ID_suspend")}); + V.push_back(wxAcceleratorEntry{wxACCEL_ALT, (int)'B', XRCID("Alt_ID_backward")}); + V.push_back(wxAcceleratorEntry{wxACCEL_ALT, (int)'F', XRCID("Alt_ID_forward")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'A', XRCID("Ctrl_ID_start_of_line")}); + V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'E', XRCID("Ctrl_ID_end_of_line")}); + + wxAcceleratorTable accel_table(V.size(), V.data()); + + ctrl->SetAcceleratorTable(accel_table); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlR, this, XRCID("Ctrl_ID_command")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlU, this, XRCID("Ctrl_ID_clear_line")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlL, this, XRCID("Ctrl_ID_clear_screen")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlD, this, XRCID("Ctrl_ID_logout")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlC, this, XRCID("Ctrl_ID_ctrl_c")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlW, this, XRCID("Ctrl_ID_delete_word")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlZ, this, XRCID("Ctrl_ID_suspend")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnAltB, this, XRCID("Alt_ID_backward")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnAltF, this, XRCID("Alt_ID_forward")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlA, this, XRCID("Ctrl_ID_start_of_line")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlE, this, XRCID("Ctrl_ID_end_of_line")); } void clBuiltinTerminalPane::OnSetTitle(wxTerminalEvent& event) @@ -279,3 +280,76 @@ void clBuiltinTerminalPane::UpdateTerminalsChoice(bool scan) m_terminal_types->SetSelection(initial_value); } } + +#define CHECK_IF_CAN_HANDLE(event) \ + auto terminal = GetActiveTerminal(); \ + if (!terminal || !terminal->HasFocus()) { \ + event.Skip(); \ + return; \ + } + +void clBuiltinTerminalPane::OnCtrlR(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlR(); +} +void clBuiltinTerminalPane::OnCtrlU(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlU(); +} + +void clBuiltinTerminalPane::OnCtrlL(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlL(); +} + +void clBuiltinTerminalPane::OnCtrlD(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlD(); +} + +void clBuiltinTerminalPane::OnCtrlC(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlC(); +} + +void clBuiltinTerminalPane::OnCtrlW(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlW(); +} + +void clBuiltinTerminalPane::OnCtrlZ(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlZ(); +} + +void clBuiltinTerminalPane::OnAltF(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendAltF(); +} + +void clBuiltinTerminalPane::OnAltB(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendAltB(); +} + +void clBuiltinTerminalPane::OnCtrlA(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlA(); +} + +void clBuiltinTerminalPane::OnCtrlE(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->SendCtrlE(); +} +#undef CHECK_IF_CAN_HANDLE diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp index 30a4e5e5dd..dfb5f8a061 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp @@ -29,6 +29,17 @@ class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel std::map GetTerminalsOptions(bool scan = false); void OnScanForTerminals(wxCommandEvent& event); void UpdateTerminalsChoice(bool scan); + void OnCtrlR(wxCommandEvent& e); + void OnCtrlU(wxCommandEvent& e); + void OnCtrlL(wxCommandEvent& e); + void OnCtrlD(wxCommandEvent& e); + void OnCtrlC(wxCommandEvent& e); + void OnCtrlW(wxCommandEvent& e); + void OnCtrlZ(wxCommandEvent& e); + void OnAltF(wxCommandEvent& e); + void OnAltB(wxCommandEvent& e); + void OnCtrlA(wxCommandEvent& e); + void OnCtrlE(wxCommandEvent& e); private: TerminalView* GetActiveTerminal(); diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index beaad75c0b..06e31f52b2 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit beaad75c0bd45d64cc2852c72b8740eae6c8cd3d +Subproject commit 06e31f52b2473b8e08c9432e2c9a6e5f0392d00a From 481d8311ac1882f6d120bd6987c465496b9a33f5 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 12:03:06 +0300 Subject: [PATCH 11/16] Fix Shutdown Handling Tighten process execution shutdown handling by treating a missing shutdown flag as a non-cancelled run instead of dereferencing it, which avoids an unnecessary early exit path. * Terminal pane * Process utilities **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLite/procutils.cpp | 3 +++ Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp | 5 ++++- Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CodeLite/procutils.cpp b/CodeLite/procutils.cpp index df8669b46c..7865831c67 100644 --- a/CodeLite/procutils.cpp +++ b/CodeLite/procutils.cpp @@ -511,6 +511,9 @@ int ProcUtils::SafeExecuteCommand(const wxString& command, if (!err.empty()) { accumlated_output += err; } + if (shutdown_flag == nullptr) { + return true; + } return !shutdown_flag->load(); }; diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp index 51469069c1..7597366a7d 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -149,8 +149,8 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'E', XRCID("Ctrl_ID_end_of_line")}); wxAcceleratorTable accel_table(V.size(), V.data()); - ctrl->SetAcceleratorTable(accel_table); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlR, this, XRCID("Ctrl_ID_command")); ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlU, this, XRCID("Ctrl_ID_clear_line")); ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlL, this, XRCID("Ctrl_ID_clear_screen")); @@ -293,6 +293,7 @@ void clBuiltinTerminalPane::OnCtrlR(wxCommandEvent& e) CHECK_IF_CAN_HANDLE(e); terminal->SendCtrlR(); } + void clBuiltinTerminalPane::OnCtrlU(wxCommandEvent& e) { CHECK_IF_CAN_HANDLE(e); @@ -353,3 +354,5 @@ void clBuiltinTerminalPane::OnCtrlE(wxCommandEvent& e) terminal->SendCtrlE(); } #undef CHECK_IF_CAN_HANDLE + +void clBuiltinTerminalPane::OnInitDone(wxCommandEvent& e) { e.Skip(); } \ No newline at end of file diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp index dfb5f8a061..f7f9d85133 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp @@ -20,6 +20,7 @@ class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel protected: void OnWorkspaceLoaded(clWorkspaceEvent& event); + void OnInitDone(wxCommandEvent& e); void OnPageChanged(wxBookCtrlEvent& event); void OnSetTitle(wxTerminalEvent& event); void OnNew(wxCommandEvent& event); From 3f9ae4db4156976de734f879a103d547220192ee Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 12:29:37 +0300 Subject: [PATCH 12/16] Updated terminal submodule Signed-off-by: Eran Ifrah --- submodules/wxTerminalEmulator | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index 06e31f52b2..faf9adcd31 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 06e31f52b2473b8e08c9432e2c9a6e5f0392d00a +Subproject commit faf9adcd31a4f2415196a78f25c7d6d6364e1912 From 134b10660a6f77a3813395e55ade895c81f50000 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 13:10:34 +0300 Subject: [PATCH 13/16] Fix Remoty Persist Config Updates Fixed a call to `AddObject` with an empty string which does not make sense as it will return `JSONItem{nullptr}`. **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLite/cl_config.cpp | 1 + Remoty/RemotyConfig.cpp | 7 ++++++- SFTP/sftp.cpp | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CodeLite/cl_config.cpp b/CodeLite/cl_config.cpp index 292a800900..708ed10bf8 100644 --- a/CodeLite/cl_config.cpp +++ b/CodeLite/cl_config.cpp @@ -27,6 +27,7 @@ #include "FontUtils.hpp" #include "cl_standard_paths.h" +#include "file_logger.h" #include "fileutils.h" #include diff --git a/Remoty/RemotyConfig.cpp b/Remoty/RemotyConfig.cpp index 0144d2054f..5655861205 100644 --- a/Remoty/RemotyConfig.cpp +++ b/Remoty/RemotyConfig.cpp @@ -1,6 +1,7 @@ #include "RemotyConfig.hpp" #include "cl_config.h" +#include "file_logger.h" #include @@ -52,14 +53,18 @@ void RemotyConfig::UpdateRecentWorkspaces(const RemoteWorkspaceInfo& workspaceIn // serialise the items clConfig::Get().Write(REMOTY_RECENT_WORKSPACES, [&curitems]() -> JSONItem { + clDEBUG() << "Writing remote workspaces to disk" << endl; JSONItem arr = JSONItem::createArray(); for (const auto& wi : curitems) { - auto d = arr.AddObject(wxEmptyString); + auto d = JSONItem::createObject(); d.addProperty("account", wi.account); d.addProperty("path", wi.path); + arr.arrayAppend(std::move(d)); } + clDEBUG() << "Array content:" << arr.FormatRawString() << endl; return arr; }); + clConfig::Get().Save(); } bool RemotyConfig::IsOpenWorkspaceTypeLocal() const { return clConfig::Get().Read(REMOTY_OPEN_WORKSPACE_TYPE, true); } diff --git a/SFTP/sftp.cpp b/SFTP/sftp.cpp index 53eb59350b..d3caaa80a9 100644 --- a/SFTP/sftp.cpp +++ b/SFTP/sftp.cpp @@ -76,7 +76,7 @@ CL_PLUGIN_API PluginInfo* GetPluginInfo() static PluginInfo info; info.SetAuthor(wxT("Eran Ifrah")); info.SetName(wxT("SFTP")); - info.SetDescription(_("SFTP plugin for codelite IDE")); + info.SetDescription(_("SFTP plugin for CodeLite IDE")); info.SetVersion(wxT("v1.0")); return &info; } @@ -86,7 +86,7 @@ CL_PLUGIN_API int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; SFTP::SFTP(IManager* manager) : IPlugin(manager) { - m_longName = _("SFTP plugin for codelite IDE"); + m_longName = _("SFTP plugin for CodeLite IDE"); m_shortName = wxT("SFTP"); wxTheApp->Connect( From 32cafd4d978b4e23685c9e6b6f917620ae4fbdbc Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 15:31:22 +0300 Subject: [PATCH 14/16] Update MacOS Workspace Formatting And wxTerminalEmulator Submodule Refresh the macOS workspace definition to use consistent JSON formatting and preserve the existing build, clean, and file filtering settings. Also advance the wxTerminalEmulator submodule to the newer upstream revision. * Workspace * Submodule **Generated by CodeLite** Signed-off-by: Eran Ifrah --- CodeLiteIDE-macOS.workspace | 63 +++++++++++++++++++++++++---------- submodules/wxTerminalEmulator | 2 +- 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/CodeLiteIDE-macOS.workspace b/CodeLiteIDE-macOS.workspace index f1f02008fd..41d1ebbabe 100644 --- a/CodeLiteIDE-macOS.workspace +++ b/CodeLiteIDE-macOS.workspace @@ -1,19 +1,48 @@ { - "workspace_type": "File System Workspace", - "name": "CodeLiteIDE-Linux", - "configs": [{ - "name": "Debug", - "targets": [["Run CMake - Debug", "mkdir -p .build-debug && cd .build-debug && cmake -DCMAKE_BUILD_TYPE=Debug .. -Wno-dev"], ["build", "cd .build-debug && make -j12 install"], ["clean", "cd .build-debug && make -j12 clean"]], - "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.xrc;*.py", - "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", - "excludePaths": "codelite-cli;codelite-icons;codelite-icons-dark;codelite-icons-fresh-farm;codelite_echo;codelite_make;bitmaps;bitmaps-dark;bitmaps-light;.build-debug;.build-release;CallGraph", - "debugger": "GNU gdb debugger" - }, { - "name": "Release", - "targets": [["Run CMake - Release", "mkdir -p .build-release && cd .build-release && cmake -DCMAKE_BUILD_TYPE=Release .."], ["build", "cd .build-release && make -j12 install"], ["clean", "cd .build-release && make -j12 clean"]], - "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;.*.xrc;*.cmake;*.rc;*.py;*.md;*.xrc", - "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", - "excludePaths": "codelite-cli;codelite-icons;codelite-icons-dark;codelite-icons-fresh-farm;codelite_echo;codelite_make;bitmaps;bitmaps-dark;bitmaps-light;.build-debug;.build-release;CallGraph", - "debugger": "GNU gdb debugger" - }] + "workspace_type": "File System Workspace", + "name": "CodeLiteIDE-Linux", + "configs": [ + { + "name": "Debug", + "targets": [ + [ + "Run CMake - Debug", + "mkdir -p .build-debug && cd .build-debug && cmake -DCMAKE_BUILD_TYPE=Debug .. -Wno-dev" + ], + [ + "build", + "cd .build-debug && make -j12 install" + ], + [ + "clean", + "cd .build-debug && make -j12 clean" + ] + ], + "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;*.xrc;*.py", + "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", + "excludePaths": "codelite-cli;codelite-icons;codelite-icons-dark;codelite-icons-fresh-farm;codelite_echo;codelite_make;bitmaps;bitmaps-dark;bitmaps-light;.build-debug;.build-release;CallGraph", + "debugger": "GNU gdb debugger" + }, + { + "name": "Release", + "targets": [ + [ + "Run CMake - Release", + "mkdir -p .build-release && cd .build-release && cmake -DCMAKE_BUILD_TYPE=Release .." + ], + [ + "build", + "cd .build-release && make -j12 install" + ], + [ + "clean", + "cd .build-release && make -j12 clean" + ] + ], + "file_extensions": "*.cpp;*.c;*.txt;*.json;*.hpp;*.cc;*.cxx;*.xml;*.h;*.wxcp;.*.xrc;*.cmake;*.rc;*.py;*.md;*.xrc", + "excludeFilesPattern": "*.o;*.pyc;*.obj;*.workspace;*.o.d;*.exe;*.dll;*.project", + "excludePaths": "codelite-cli;codelite-icons;codelite-icons-dark;codelite-icons-fresh-farm;codelite_echo;codelite_make;bitmaps;bitmaps-dark;bitmaps-light;.build-debug;.build-release;CallGraph", + "debugger": "GNU gdb debugger" + } + ] } \ No newline at end of file diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index faf9adcd31..ca149354cf 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit faf9adcd31a4f2415196a78f25c7d6d6364e1912 +Subproject commit ca149354cf6bb2be6a882170cfd8d4b5e36db1fd From 952df0df38e824f4805df893946d5dfee5a12a93 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 18:25:31 +0300 Subject: [PATCH 15/16] Add Terminal Theme Import And Theme Pack Add support for loading terminal color themes from bundled TOML files and apply the selected theme to new and existing terminal tabs. The builtin terminal pane now discovers theme definitions at startup, lets users choose a theme from the toolbar, persists the selection, and reapplies colors when the application or system theme changes. This also expands the terminal theme catalog substantially by shipping a large set of Alacritty-compatible palette files, and updates the wxTerminalEmulator submodule to a newer revision that supports the new theme handling. * terminal pane * bundled theme assets * wxTerminalEmulator submodule **Generated by CodeLite** Signed-off-by: Eran Ifrah --- LiteEditor/app.h | 2 +- Plugin/CMakeLists.txt | 2 + .../wxTerminalCtrl/clBuiltinTerminalPane.cpp | 210 +++++++++++++++++- .../wxTerminalCtrl/clBuiltinTerminalPane.hpp | 22 ++ Plugin/wxTerminalCtrl/themes/Cobalt2.toml | 33 +++ Plugin/wxTerminalCtrl/themes/Mariana.toml | 39 ++++ Plugin/wxTerminalCtrl/themes/acme.toml | 28 +++ Plugin/wxTerminalCtrl/themes/afterglow.toml | 45 ++++ Plugin/wxTerminalCtrl/themes/alabaster.toml | 30 +++ .../wxTerminalCtrl/themes/alabaster_dark.toml | 30 +++ .../wxTerminalCtrl/themes/alacritty_0_12.toml | 44 ++++ Plugin/wxTerminalCtrl/themes/argonaut.toml | 31 +++ Plugin/wxTerminalCtrl/themes/ashes_dark.toml | 27 +++ Plugin/wxTerminalCtrl/themes/ashes_light.toml | 27 +++ Plugin/wxTerminalCtrl/themes/aura.toml | 30 +++ Plugin/wxTerminalCtrl/themes/autumn.toml | 30 +++ Plugin/wxTerminalCtrl/themes/ayu_dark.toml | 28 +++ Plugin/wxTerminalCtrl/themes/ayu_light.toml | 28 +++ Plugin/wxTerminalCtrl/themes/ayu_mirage.toml | 29 +++ Plugin/wxTerminalCtrl/themes/baitong.toml | 55 +++++ .../themes/base16_default_dark.toml | 32 +++ Plugin/wxTerminalCtrl/themes/blood_moon.toml | 28 +++ Plugin/wxTerminalCtrl/themes/bluish.toml | 26 +++ Plugin/wxTerminalCtrl/themes/breeze.toml | 42 ++++ Plugin/wxTerminalCtrl/themes/campbell.toml | 28 +++ Plugin/wxTerminalCtrl/themes/carbonfox.toml | 71 ++++++ Plugin/wxTerminalCtrl/themes/catppuccin.toml | 39 ++++ .../themes/catppuccin_frappe.toml | 73 ++++++ .../themes/catppuccin_latte.toml | 76 +++++++ .../themes/catppuccin_macchiato.toml | 76 +++++++ .../themes/catppuccin_mocha.toml | 75 +++++++ .../themes/challenger_deep.toml | 32 +++ Plugin/wxTerminalCtrl/themes/chicago95.toml | 29 +++ Plugin/wxTerminalCtrl/themes/citylights.toml | 30 +++ .../themes/cyber_punk_neon.toml | 33 +++ .../wxTerminalCtrl/themes/dark_pastels.toml | 28 +++ Plugin/wxTerminalCtrl/themes/dark_plus.toml | 23 ++ Plugin/wxTerminalCtrl/themes/dark_pride.toml | 34 +++ Plugin/wxTerminalCtrl/themes/dawnfox.toml | 71 ++++++ Plugin/wxTerminalCtrl/themes/dayfox.toml | 71 ++++++ Plugin/wxTerminalCtrl/themes/deep_space.toml | 33 +++ Plugin/wxTerminalCtrl/themes/doom_one.toml | 17 ++ Plugin/wxTerminalCtrl/themes/dracula.toml | 28 +++ .../wxTerminalCtrl/themes/dracula_plus.toml | 29 +++ Plugin/wxTerminalCtrl/themes/duskfox.toml | 71 ++++++ .../wxTerminalCtrl/themes/enfocado_dark.toml | 29 +++ .../wxTerminalCtrl/themes/enfocado_light.toml | 29 +++ .../themes/everforest_dark.toml | 28 +++ .../themes/everforest_dark_hard.toml | 37 +++ .../themes/everforest_dark_medium.toml | 37 +++ .../themes/everforest_dark_soft.toml | 37 +++ .../themes/everforest_light.toml | 28 +++ .../themes/everforest_light_hard.toml | 37 +++ .../themes/everforest_light_medium.toml | 37 +++ .../themes/everforest_light_soft.toml | 37 +++ Plugin/wxTerminalCtrl/themes/falcon.toml | 33 +++ Plugin/wxTerminalCtrl/themes/flat_remix.toml | 23 ++ Plugin/wxTerminalCtrl/themes/flexoki.toml | 46 ++++ Plugin/wxTerminalCtrl/themes/github_dark.toml | 36 +++ .../themes/github_dark_colorblind.toml | 36 +++ .../themes/github_dark_default.toml | 36 +++ .../themes/github_dark_dimmed.toml | 36 +++ .../themes/github_dark_high_contrast.toml | 33 +++ .../themes/github_dark_tritanopia.toml | 33 +++ .../wxTerminalCtrl/themes/github_light.toml | 36 +++ .../themes/github_light_colorblind.toml | 36 +++ .../themes/github_light_default.toml | 36 +++ .../themes/github_light_high_contrast.toml | 33 +++ .../themes/github_light_tritanopia.toml | 33 +++ .../wxTerminalCtrl/themes/gnome_terminal.toml | 28 +++ Plugin/wxTerminalCtrl/themes/google.toml | 23 ++ Plugin/wxTerminalCtrl/themes/gotham.toml | 28 +++ .../wxTerminalCtrl/themes/gruber_darker.toml | 26 +++ .../wxTerminalCtrl/themes/gruvbox_dark.toml | 30 +++ .../wxTerminalCtrl/themes/gruvbox_light.toml | 30 +++ .../themes/gruvbox_material.toml | 25 +++ .../themes/gruvbox_material_hard_dark.toml | 28 +++ .../themes/gruvbox_material_hard_light.toml | 28 +++ .../themes/gruvbox_material_medium_dark.toml | 28 +++ .../themes/gruvbox_material_medium_light.toml | 28 +++ Plugin/wxTerminalCtrl/themes/hardhacker.toml | 33 +++ Plugin/wxTerminalCtrl/themes/hatsunemiku.toml | 23 ++ .../wxTerminalCtrl/themes/high_contrast.toml | 33 +++ .../wxTerminalCtrl/themes/horizon_dark.toml | 28 +++ Plugin/wxTerminalCtrl/themes/hyper.toml | 32 +++ Plugin/wxTerminalCtrl/themes/iceberg.toml | 36 +++ Plugin/wxTerminalCtrl/themes/inferno.toml | 29 +++ Plugin/wxTerminalCtrl/themes/iris.toml | 28 +++ Plugin/wxTerminalCtrl/themes/iterm.toml | 28 +++ .../themes/iterm_solardark.toml | 32 +++ .../themes/kanagawa_dragon.toml | 38 ++++ .../wxTerminalCtrl/themes/kanagawa_wave.toml | 38 ++++ Plugin/wxTerminalCtrl/themes/kimbie_dark.toml | 24 ++ .../wxTerminalCtrl/themes/kimbie_light.toml | 24 ++ Plugin/wxTerminalCtrl/themes/kitty.toml | 31 +++ .../wxTerminalCtrl/themes/konsole_linux.toml | 44 ++++ Plugin/wxTerminalCtrl/themes/linux.toml | 28 +++ .../wxTerminalCtrl/themes/low_contrast.toml | 32 +++ Plugin/wxTerminalCtrl/themes/marine_dark.toml | 29 +++ .../wxTerminalCtrl/themes/material_theme.toml | 28 +++ .../themes/material_theme_mod.toml | 28 +++ Plugin/wxTerminalCtrl/themes/meliora.toml | 75 +++++++ Plugin/wxTerminalCtrl/themes/miasma.toml | 28 +++ .../wxTerminalCtrl/themes/midnight_haze.toml | 29 +++ Plugin/wxTerminalCtrl/themes/monokai.toml | 23 ++ .../themes/monokai_charcoal.toml | 28 +++ Plugin/wxTerminalCtrl/themes/monokai_pro.toml | 26 +++ Plugin/wxTerminalCtrl/themes/moonfly.toml | 34 +++ .../themes/moonlight_ii_vscode.toml | 27 +++ Plugin/wxTerminalCtrl/themes/msx.toml | 41 ++++ Plugin/wxTerminalCtrl/themes/night_owl.toml | 54 +++++ .../themes/night_owlish_light.toml | 33 +++ Plugin/wxTerminalCtrl/themes/nightfly.toml | 34 +++ Plugin/wxTerminalCtrl/themes/nightfox.toml | 71 ++++++ Plugin/wxTerminalCtrl/themes/noctis_lux.toml | 28 +++ Plugin/wxTerminalCtrl/themes/nord.toml | 28 +++ Plugin/wxTerminalCtrl/themes/nord_light.toml | 28 +++ Plugin/wxTerminalCtrl/themes/nordfox.toml | 71 ++++++ Plugin/wxTerminalCtrl/themes/nordic.toml | 29 +++ Plugin/wxTerminalCtrl/themes/nvim_dark.toml | 67 ++++++ .../wxTerminalCtrl/themes/oceanic_next.toml | 28 +++ Plugin/wxTerminalCtrl/themes/omni.toml | 37 +++ Plugin/wxTerminalCtrl/themes/one_dark.toml | 28 +++ Plugin/wxTerminalCtrl/themes/one_light.toml | 23 ++ Plugin/wxTerminalCtrl/themes/oxocarbon.toml | 34 +++ Plugin/wxTerminalCtrl/themes/palenight.toml | 29 +++ Plugin/wxTerminalCtrl/themes/panda.toml | 30 +++ .../themes/papercolor_dark.toml | 32 +++ .../themes/papercolor_light.toml | 32 +++ Plugin/wxTerminalCtrl/themes/papertheme.toml | 28 +++ Plugin/wxTerminalCtrl/themes/pastel_dark.toml | 33 +++ Plugin/wxTerminalCtrl/themes/pencil_dark.toml | 28 +++ .../wxTerminalCtrl/themes/pencil_light.toml | 28 +++ Plugin/wxTerminalCtrl/themes/rainbow.toml | 26 +++ Plugin/wxTerminalCtrl/themes/remedy_dark.toml | 29 +++ Plugin/wxTerminalCtrl/themes/rigel.toml | 30 +++ Plugin/wxTerminalCtrl/themes/rose_pine.toml | 39 ++++ .../wxTerminalCtrl/themes/rose_pine_dawn.toml | 39 ++++ .../wxTerminalCtrl/themes/rose_pine_moon.toml | 38 ++++ Plugin/wxTerminalCtrl/themes/seashells.toml | 37 +++ .../wxTerminalCtrl/themes/selenized_dark.toml | 26 +++ .../themes/selenized_light.toml | 25 +++ .../wxTerminalCtrl/themes/seoul256-light.toml | 71 ++++++ Plugin/wxTerminalCtrl/themes/smoooooth.toml | 33 +++ Plugin/wxTerminalCtrl/themes/snazzy.toml | 28 +++ .../wxTerminalCtrl/themes/solarized_dark.toml | 28 +++ .../themes/solarized_light.toml | 28 +++ .../themes/solarized_osaka.toml | 29 +++ .../themes/solarized_osaka_day.toml | 29 +++ Plugin/wxTerminalCtrl/themes/sonokai.toml | 33 +++ Plugin/wxTerminalCtrl/themes/spacegray.toml | 33 +++ .../wxTerminalCtrl/themes/synthwave_84.toml | 23 ++ Plugin/wxTerminalCtrl/themes/taerminal.toml | 32 +++ Plugin/wxTerminalCtrl/themes/tango_dark.toml | 25 +++ Plugin/wxTerminalCtrl/themes/tender.toml | 26 +++ Plugin/wxTerminalCtrl/themes/terafox.toml | 71 ++++++ .../wxTerminalCtrl/themes/terminal_app.toml | 28 +++ Plugin/wxTerminalCtrl/themes/thelovelace.toml | 26 +++ Plugin/wxTerminalCtrl/themes/tokyo_night.toml | 29 +++ .../themes/tokyo_night_enhanced.toml | 30 +++ .../themes/tokyo_night_storm.toml | 29 +++ Plugin/wxTerminalCtrl/themes/tomorrow.toml | 29 +++ .../wxTerminalCtrl/themes/tomorrow_night.toml | 32 +++ .../themes/tomorrow_night_blue.toml | 29 +++ .../themes/tomorrow_night_bright.toml | 28 +++ .../themes/tomorrow_night_eighties.toml | 29 +++ Plugin/wxTerminalCtrl/themes/ubuntu.toml | 33 +++ Plugin/wxTerminalCtrl/themes/vesper.toml | 26 +++ Plugin/wxTerminalCtrl/themes/vscode.toml | 23 ++ Plugin/wxTerminalCtrl/themes/wombat.toml | 28 +++ Plugin/wxTerminalCtrl/themes/xterm.toml | 28 +++ Plugin/wxTerminalCtrl/themes/zenburn.toml | 29 +++ cmake/Modules/UtilsHelper.cmake | 8 + submodules/wxTerminalEmulator | 2 +- 174 files changed, 6018 insertions(+), 5 deletions(-) create mode 100644 Plugin/wxTerminalCtrl/themes/Cobalt2.toml create mode 100644 Plugin/wxTerminalCtrl/themes/Mariana.toml create mode 100644 Plugin/wxTerminalCtrl/themes/acme.toml create mode 100644 Plugin/wxTerminalCtrl/themes/afterglow.toml create mode 100644 Plugin/wxTerminalCtrl/themes/alabaster.toml create mode 100644 Plugin/wxTerminalCtrl/themes/alabaster_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/alacritty_0_12.toml create mode 100644 Plugin/wxTerminalCtrl/themes/argonaut.toml create mode 100644 Plugin/wxTerminalCtrl/themes/ashes_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/ashes_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/aura.toml create mode 100644 Plugin/wxTerminalCtrl/themes/autumn.toml create mode 100644 Plugin/wxTerminalCtrl/themes/ayu_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/ayu_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/ayu_mirage.toml create mode 100644 Plugin/wxTerminalCtrl/themes/baitong.toml create mode 100644 Plugin/wxTerminalCtrl/themes/base16_default_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/blood_moon.toml create mode 100644 Plugin/wxTerminalCtrl/themes/bluish.toml create mode 100644 Plugin/wxTerminalCtrl/themes/breeze.toml create mode 100644 Plugin/wxTerminalCtrl/themes/campbell.toml create mode 100644 Plugin/wxTerminalCtrl/themes/carbonfox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/catppuccin.toml create mode 100644 Plugin/wxTerminalCtrl/themes/catppuccin_frappe.toml create mode 100644 Plugin/wxTerminalCtrl/themes/catppuccin_latte.toml create mode 100644 Plugin/wxTerminalCtrl/themes/catppuccin_macchiato.toml create mode 100644 Plugin/wxTerminalCtrl/themes/catppuccin_mocha.toml create mode 100644 Plugin/wxTerminalCtrl/themes/challenger_deep.toml create mode 100644 Plugin/wxTerminalCtrl/themes/chicago95.toml create mode 100644 Plugin/wxTerminalCtrl/themes/citylights.toml create mode 100644 Plugin/wxTerminalCtrl/themes/cyber_punk_neon.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dark_pastels.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dark_plus.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dark_pride.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dawnfox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dayfox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/deep_space.toml create mode 100644 Plugin/wxTerminalCtrl/themes/doom_one.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dracula.toml create mode 100644 Plugin/wxTerminalCtrl/themes/dracula_plus.toml create mode 100644 Plugin/wxTerminalCtrl/themes/duskfox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/enfocado_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/enfocado_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_dark_hard.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_dark_medium.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_dark_soft.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_light_hard.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_light_medium.toml create mode 100644 Plugin/wxTerminalCtrl/themes/everforest_light_soft.toml create mode 100644 Plugin/wxTerminalCtrl/themes/falcon.toml create mode 100644 Plugin/wxTerminalCtrl/themes/flat_remix.toml create mode 100644 Plugin/wxTerminalCtrl/themes/flexoki.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_dark_colorblind.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_dark_default.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_dark_dimmed.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_dark_high_contrast.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_dark_tritanopia.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_light_colorblind.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_light_default.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_light_high_contrast.toml create mode 100644 Plugin/wxTerminalCtrl/themes/github_light_tritanopia.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gnome_terminal.toml create mode 100644 Plugin/wxTerminalCtrl/themes/google.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gotham.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruber_darker.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_material.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/hardhacker.toml create mode 100644 Plugin/wxTerminalCtrl/themes/hatsunemiku.toml create mode 100644 Plugin/wxTerminalCtrl/themes/high_contrast.toml create mode 100644 Plugin/wxTerminalCtrl/themes/horizon_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/hyper.toml create mode 100644 Plugin/wxTerminalCtrl/themes/iceberg.toml create mode 100644 Plugin/wxTerminalCtrl/themes/inferno.toml create mode 100644 Plugin/wxTerminalCtrl/themes/iris.toml create mode 100644 Plugin/wxTerminalCtrl/themes/iterm.toml create mode 100644 Plugin/wxTerminalCtrl/themes/iterm_solardark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/kanagawa_dragon.toml create mode 100644 Plugin/wxTerminalCtrl/themes/kanagawa_wave.toml create mode 100644 Plugin/wxTerminalCtrl/themes/kimbie_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/kimbie_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/kitty.toml create mode 100644 Plugin/wxTerminalCtrl/themes/konsole_linux.toml create mode 100644 Plugin/wxTerminalCtrl/themes/linux.toml create mode 100644 Plugin/wxTerminalCtrl/themes/low_contrast.toml create mode 100644 Plugin/wxTerminalCtrl/themes/marine_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/material_theme.toml create mode 100644 Plugin/wxTerminalCtrl/themes/material_theme_mod.toml create mode 100644 Plugin/wxTerminalCtrl/themes/meliora.toml create mode 100644 Plugin/wxTerminalCtrl/themes/miasma.toml create mode 100644 Plugin/wxTerminalCtrl/themes/midnight_haze.toml create mode 100644 Plugin/wxTerminalCtrl/themes/monokai.toml create mode 100644 Plugin/wxTerminalCtrl/themes/monokai_charcoal.toml create mode 100644 Plugin/wxTerminalCtrl/themes/monokai_pro.toml create mode 100644 Plugin/wxTerminalCtrl/themes/moonfly.toml create mode 100644 Plugin/wxTerminalCtrl/themes/moonlight_ii_vscode.toml create mode 100644 Plugin/wxTerminalCtrl/themes/msx.toml create mode 100644 Plugin/wxTerminalCtrl/themes/night_owl.toml create mode 100644 Plugin/wxTerminalCtrl/themes/night_owlish_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nightfly.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nightfox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/noctis_lux.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nord.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nord_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nordfox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nordic.toml create mode 100644 Plugin/wxTerminalCtrl/themes/nvim_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/oceanic_next.toml create mode 100644 Plugin/wxTerminalCtrl/themes/omni.toml create mode 100644 Plugin/wxTerminalCtrl/themes/one_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/one_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/oxocarbon.toml create mode 100644 Plugin/wxTerminalCtrl/themes/palenight.toml create mode 100644 Plugin/wxTerminalCtrl/themes/panda.toml create mode 100644 Plugin/wxTerminalCtrl/themes/papercolor_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/papercolor_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/papertheme.toml create mode 100644 Plugin/wxTerminalCtrl/themes/pastel_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/pencil_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/pencil_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/rainbow.toml create mode 100644 Plugin/wxTerminalCtrl/themes/remedy_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/rigel.toml create mode 100644 Plugin/wxTerminalCtrl/themes/rose_pine.toml create mode 100644 Plugin/wxTerminalCtrl/themes/rose_pine_dawn.toml create mode 100644 Plugin/wxTerminalCtrl/themes/rose_pine_moon.toml create mode 100644 Plugin/wxTerminalCtrl/themes/seashells.toml create mode 100644 Plugin/wxTerminalCtrl/themes/selenized_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/selenized_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/seoul256-light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/smoooooth.toml create mode 100644 Plugin/wxTerminalCtrl/themes/snazzy.toml create mode 100644 Plugin/wxTerminalCtrl/themes/solarized_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/solarized_light.toml create mode 100644 Plugin/wxTerminalCtrl/themes/solarized_osaka.toml create mode 100644 Plugin/wxTerminalCtrl/themes/solarized_osaka_day.toml create mode 100644 Plugin/wxTerminalCtrl/themes/sonokai.toml create mode 100644 Plugin/wxTerminalCtrl/themes/spacegray.toml create mode 100644 Plugin/wxTerminalCtrl/themes/synthwave_84.toml create mode 100644 Plugin/wxTerminalCtrl/themes/taerminal.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tango_dark.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tender.toml create mode 100644 Plugin/wxTerminalCtrl/themes/terafox.toml create mode 100644 Plugin/wxTerminalCtrl/themes/terminal_app.toml create mode 100644 Plugin/wxTerminalCtrl/themes/thelovelace.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tokyo_night.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tokyo_night_enhanced.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tokyo_night_storm.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tomorrow.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tomorrow_night.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tomorrow_night_blue.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tomorrow_night_bright.toml create mode 100644 Plugin/wxTerminalCtrl/themes/tomorrow_night_eighties.toml create mode 100644 Plugin/wxTerminalCtrl/themes/ubuntu.toml create mode 100644 Plugin/wxTerminalCtrl/themes/vesper.toml create mode 100644 Plugin/wxTerminalCtrl/themes/vscode.toml create mode 100644 Plugin/wxTerminalCtrl/themes/wombat.toml create mode 100644 Plugin/wxTerminalCtrl/themes/xterm.toml create mode 100644 Plugin/wxTerminalCtrl/themes/zenburn.toml diff --git a/LiteEditor/app.h b/LiteEditor/app.h index 9a4b6e7346..5aedfbff79 100644 --- a/LiteEditor/app.h +++ b/LiteEditor/app.h @@ -49,7 +49,7 @@ class CodeLiteApp : public wxApp void SetParserPaths(const wxArrayString& parserPaths) { this->m_parserPaths = parserPaths; } const wxArrayString& GetParserPaths() const { return m_parserPaths; } - void MacOpenFile(const wxString& fileName); + void MacOpenFile(const wxString& fileName) override; void SetStartedInDebuggerMode(bool startedInDebuggerMode) { this->m_startedInDebuggerMode = startedInDebuggerMode; } bool IsStartedInDebuggerMode() const { return m_startedInDebuggerMode; } diff --git a/Plugin/CMakeLists.txt b/Plugin/CMakeLists.txt index acf43cebf7..7f8d8a74b6 100644 --- a/Plugin/CMakeLists.txt +++ b/Plugin/CMakeLists.txt @@ -131,3 +131,5 @@ else() LIBRARY DESTINATION ${CL_INSTALL_BIN} ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) endif() + +codelite_install_terminal_themes() diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp index 7597366a7d..c1cc51e084 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -6,10 +6,12 @@ #include "Platform/Platform.hpp" #include "bitmap_loader.h" #include "clFileName.hpp" +#include "clINIParser.hpp" #include "clWorkspaceManager.h" #include "codelite_events.h" #include "environmentconfig.h" #include "event_notifier.h" +#include "file_logger.h" #include "globals.h" #include "imanager.h" #include "macros.h" @@ -19,6 +21,7 @@ #include #include +#include #include #include #include @@ -29,12 +32,18 @@ std::map LocateDefaultTerminals() { std::map terminals; auto bash = ThePlatform->Which("bash"); + auto zsh = ThePlatform->Which("zsh"); auto cmd = ThePlatform->Which("powershell"); if (bash.has_value()) { terminals.insert( {wxString::Format("%s --login -i", bash.value()), wxString::Format("%s --login -i", bash.value())}); } + if (zsh.has_value()) { + terminals.insert( + {wxString::Format("%s --login -i", zsh.value()), wxString::Format("%s --login -i", zsh.value())}); + } + if (cmd.has_value()) { terminals.insert({cmd.value(), cmd.value()}); } @@ -62,9 +71,17 @@ clBuiltinTerminalPane::clBuiltinTerminalPane(wxWindow* parent, wxWindowID id) // Get list of terminals m_terminal_types = new wxChoice(m_toolbar, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(300), wxNOT_FOUND)); + m_terminal_types->SetToolTip(_("Choose shell interpreter")); UpdateTerminalsChoice(false); m_toolbar->AddControl(m_terminal_types); + // Get list of terminals + m_choice_themes = new wxChoice(m_toolbar, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(200), wxNOT_FOUND)); + m_toolbar->AddControl(m_choice_themes); + m_choice_themes->SetToolTip(_("Choose terminal theme")); + m_choice_themes->Bind(wxEVT_CHOICE, &clBuiltinTerminalPane::OnChoiceTheme, this); + UpdateFont(); + #ifdef __WXMSW__ m_toolbar->AddTool( wxID_REFRESH, _("Scan"), image_list->LoadBitmap("debugger_restart"), wxEmptyString, wxITEM_NORMAL); @@ -78,12 +95,20 @@ clBuiltinTerminalPane::clBuiltinTerminalPane(wxWindow* parent, wxWindowID id) GetSizer()->Fit(this); m_book->Bind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); + EventNotifier::Get()->Bind(wxEVT_SYS_COLOURS_CHANGED, &clBuiltinTerminalPane::OnThemeChanged, this); + EventNotifier::Get()->Bind(wxEVT_INIT_DONE, &clBuiltinTerminalPane::OnInitDone, this); + +#ifdef __WXMAC__ + wxTheApp->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCopy, this, wxID_COPY); + wxTheApp->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnPaste, this, wxID_PASTE); +#endif } clBuiltinTerminalPane::~clBuiltinTerminalPane() { m_book->Unbind(wxEVT_BOOK_PAGE_CHANGED, &clBuiltinTerminalPane::OnPageChanged, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &clBuiltinTerminalPane::OnWorkspaceLoaded, this); + EventNotifier::Get()->Unbind(wxEVT_SYS_COLOURS_CHANGED, &clBuiltinTerminalPane::OnThemeChanged, this); clConfig::Get().Write("terminal/last_used_terminal", m_terminal_types->GetStringSelection()); } @@ -117,6 +142,7 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) EnvSetter env_setter{}; std::optional env{std::nullopt}; TerminalView* ctrl = new TerminalView(m_book, cmd, env); + ctrl->SetTheme(m_activeTheme.has_value() ? *m_activeTheme : wxTerminalTheme::MakeDarkTheme()); m_book->AddPage(ctrl, cmd, true); m_book->SetPageToolTip(m_book->GetPageCount() - 1, cmd); @@ -148,6 +174,11 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'A', XRCID("Ctrl_ID_start_of_line")}); V.push_back(wxAcceleratorEntry{wxACCEL_RAW_CTRL, (int)'E', XRCID("Ctrl_ID_end_of_line")}); +#ifdef __WXMAC__ + V.push_back(wxAcceleratorEntry{wxACCEL_CMD, (int)'V', wxID_PASTE}); + V.push_back(wxAcceleratorEntry{wxACCEL_CMD, (int)'C', wxID_COPY}); +#endif + wxAcceleratorTable accel_table(V.size(), V.data()); ctrl->SetAcceleratorTable(accel_table); @@ -162,6 +193,7 @@ void clBuiltinTerminalPane::OnNew(wxCommandEvent& event) ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnAltF, this, XRCID("Alt_ID_forward")); ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlA, this, XRCID("Ctrl_ID_start_of_line")); ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlE, this, XRCID("Ctrl_ID_end_of_line")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlE, this, XRCID("Ctrl_ID_end_of_line")); } void clBuiltinTerminalPane::OnSetTitle(wxTerminalEvent& event) @@ -238,7 +270,6 @@ void clBuiltinTerminalPane::WriteTerminalOptionsToDisk(const std::map clBuiltinTerminalPane::GetTerminalsOptions(bool scan) { std::map terminals = LocateDefaultTerminals(); - ; #ifdef __WXMSW__ if (scan) { terminals.clear(); @@ -353,6 +384,179 @@ void clBuiltinTerminalPane::OnCtrlE(wxCommandEvent& e) CHECK_IF_CAN_HANDLE(e); terminal->SendCtrlE(); } -#undef CHECK_IF_CAN_HANDLE -void clBuiltinTerminalPane::OnInitDone(wxCommandEvent& e) { e.Skip(); } \ No newline at end of file +void clBuiltinTerminalPane::OnInitDone(wxCommandEvent& e) +{ + e.Skip(); + std::thread([this]() { + wxFileName themes_path{clStandardPaths::Get().GetDataDir(), wxEmptyString}; + themes_path.AppendDir("terminal_themes"); + themes_path.AppendDir("themes"); + wxArrayString theme_files; + wxDir::GetAllFiles(themes_path.GetPath(), &theme_files, "*.toml", wxDIR_FILES); + + std::map themes; + for (const wxString& toml_file : theme_files) { + wxFileName fn{toml_file}; + auto theme = clBuiltinTerminalPane::FromTOML(fn); + if (theme.has_value()) { + themes.insert({fn.GetName(), *theme}); + } + } + + { + wxMutexLocker locker(m_themes_mutex); + m_themes.swap(themes); + } + EventNotifier::Get()->RunOnMain([this]() { ThemesUpdated(); }); + }).detach(); +} + +#ifdef __WXMAC__ +void clBuiltinTerminalPane::OnCopy(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->Copy(); +} + +void clBuiltinTerminalPane::OnPaste(wxCommandEvent& e) +{ + CHECK_IF_CAN_HANDLE(e); + terminal->Paste(); +} + +#endif + +void clBuiltinTerminalPane::OnThemeChanged(clCommandEvent& event) +{ + event.Skip(); + UpdateFont(); + ApplyThemeChanges(); +} + +std::optional clBuiltinTerminalPane::FromTOML(const wxFileName& filepath) +{ + clDEBUG() << " > Importing Alacritty Theme (TOML) file:" << filepath << endl; + std::string filename = StringUtils::ToStdString(filepath.GetFullPath()); + + clINIParser ini_parser; + ini_parser.ParseFile(filepath.GetFullPath()); + + wxTerminalTheme theme; + theme.bg = ini_parser["colors.primary"]["background"].GetValue(); + theme.fg = ini_parser["colors.primary"]["foreground"].GetValue(); + + if (!theme.bg.IsOk() || !theme.fg.IsOk()) { + clSYSTEM() << "Can not import theme:" << filepath << endl; + return std::nullopt; + } + + bool is_dark = DrawingUtils::IsDark(theme.bg); + + wxString section_name = "colors.normal"; + theme.black = ini_parser[section_name]["black"].GetValue(); + theme.red = ini_parser[section_name]["red"].GetValue(); + theme.green = ini_parser[section_name]["green"].GetValue(); + theme.yellow = ini_parser[section_name]["yellow"].GetValue(); + theme.blue = ini_parser[section_name]["blue"].GetValue(); + theme.magenta = ini_parser[section_name]["magenta"].GetValue(); + theme.cyan = ini_parser[section_name]["cyan"].GetValue(); + theme.white = ini_parser[section_name]["white"].GetValue(); + + section_name = "colors.bright"; + theme.brightBlack = ini_parser[section_name]["black"].GetValue(); + theme.brightRed = ini_parser[section_name]["red"].GetValue(); + theme.brightGreen = ini_parser[section_name]["green"].GetValue(); + theme.brightYellow = ini_parser[section_name]["yellow"].GetValue(); + theme.brightBlue = ini_parser[section_name]["blue"].GetValue(); + theme.brightMagenta = ini_parser[section_name]["magenta"].GetValue(); + theme.brightCyan = ini_parser[section_name]["cyan"].GetValue(); + theme.brightWhite = ini_parser[section_name]["white"].GetValue(); + + // Optional colours + theme.cursorColour = ini_parser["colors.cursor"]["cursor"].GetValue(); + theme.selectionBg = ini_parser["colors.selection"]["background"].GetValue(); + theme.highlightBg = ini_parser["colors.search.matches"]["background"].GetValue(); + + if (!theme.cursorColour.IsOk()) { + theme.cursorColour = is_dark ? *wxYELLOW : *wxBLACK; + } + + if (!theme.selectionBg.IsOk()) { + theme.selectionBg = is_dark ? wxT("ORANGE") : wxT("BLUE"); + } + + if (!theme.highlightBg.IsOk()) { + theme.selectionBg = is_dark ? wxT("GOLD") : wxT("PINK"); + } + + if (!theme.black.IsOk() || !theme.red.IsOk() || !theme.green.IsOk() || !theme.yellow.IsOk() || !theme.blue.IsOk() || + !theme.magenta.IsOk() || !theme.cyan.IsOk() || !theme.white.IsOk() || !theme.brightBlack.IsOk() || + !theme.brightRed.IsOk() || !theme.brightGreen.IsOk() || !theme.brightYellow.IsOk() || + !theme.brightBlue.IsOk() || !theme.brightMagenta.IsOk() || !theme.brightCyan.IsOk() || + !theme.brightWhite.IsOk()) { + clSYSTEM() << "failed to read basic colour for theme:" << filepath << endl; + return std::nullopt; + } + return theme; +} + +void clBuiltinTerminalPane::ThemesUpdated() +{ + m_choice_themes->Clear(); + if (m_themes.empty()) { + return; + } + for (const auto& [theme_name, _] : m_themes) { + m_choice_themes->Append(theme_name); + } + + wxString selected_theme = m_themes.begin()->first; + selected_theme = clConfig::Get().Read("terminal/theme", selected_theme); + m_choice_themes->SetStringSelection(selected_theme); + + if (m_themes.contains(selected_theme)) { + m_activeTheme = m_themes[selected_theme]; + } else { + m_activeTheme = wxTerminalTheme::MakeDarkTheme(); + } + ApplyThemeChanges(); +} + +void clBuiltinTerminalPane::OnChoiceTheme(wxCommandEvent& event) +{ + wxUnusedVar(event); + wxString selected_theme = m_choice_themes->GetStringSelection(); + if (m_themes.contains(selected_theme)) { + m_activeTheme = m_themes[selected_theme]; + clConfig::Get().Write("terminal/theme", selected_theme); + clConfig::Get().Save(); + } else { + m_activeTheme = wxTerminalTheme::MakeDarkTheme(); + } + ApplyThemeChanges(); +} + +void clBuiltinTerminalPane::ApplyThemeChanges() +{ + if (!m_activeTheme.has_value()) { + return; + } + + m_activeTheme.value().font = m_activeFont; + + for (size_t i = 0; i < m_book->GetPageCount(); ++i) { + auto terminal = dynamic_cast(m_book->GetPage(i)); + if (terminal) { + terminal->SetTheme(m_activeTheme.value()); + } + } +} + +void clBuiltinTerminalPane::UpdateFont() +{ + auto lexer = ColoursAndFontsManager::Get().GetLexer("text"); + if (lexer) { + m_activeFont = lexer->GetFontForStyle(0, this); + } +} \ No newline at end of file diff --git a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp index f7f9d85133..b305f3762b 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp @@ -3,15 +3,21 @@ #include "Notebook.h" #include "clWorkspaceEvent.hpp" +#include "cl_command_event.h" #include "event_notifier.h" #include "terminal_event.h" +#include "terminal_theme.h" +#include +#include #include #include #include #include +#include class TerminalView; + class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel { public: @@ -41,14 +47,30 @@ class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel void OnAltB(wxCommandEvent& e); void OnCtrlA(wxCommandEvent& e); void OnCtrlE(wxCommandEvent& e); +#ifdef __WXMAC__ + void OnCopy(wxCommandEvent& e); + void OnPaste(wxCommandEvent& e); +#endif + + void OnThemeChanged(clCommandEvent& event); + void ThemesUpdated(); + void OnChoiceTheme(wxCommandEvent& event); + void ApplyThemeChanges(); + void UpdateFont(); private: + static std::optional FromTOML(const wxFileName& filepath); TerminalView* GetActiveTerminal(); wxAuiToolBar* m_toolbar = nullptr; Notebook* m_book = nullptr; wxChoice* m_terminal_types = nullptr; + wxChoice* m_choice_themes = nullptr; std::vector> m_tokens; + wxMutex m_themes_mutex; + std::map m_themes; + std::optional m_activeTheme{std::nullopt}; + wxFont m_activeFont; }; #endif // CLBUILTINTERMINALPANE_HPP diff --git a/Plugin/wxTerminalCtrl/themes/Cobalt2.toml b/Plugin/wxTerminalCtrl/themes/Cobalt2.toml new file mode 100644 index 0000000000..d390babc90 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/Cobalt2.toml @@ -0,0 +1,33 @@ +# From the famous Cobalt2 sublime theme +# Source https//github.com/wesbos/cobalt2/tree/master/Cobalt2 + +# Default colors +[colors.primary] +background = '#122637' +foreground = '#ffffff' + +[colors.cursor] +text = '#122637' +cursor = '#f0cb09' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#ff0000' +green = '#37dd21' +yellow = '#fee409' +blue = '#1460d2' +magenta = '#ff005d' +cyan = '#00bbbb' +white = '#bbbbbb' + +# Bright colors +[colors.bright] +black = '#545454' +red = '#f40d17' +green = '#3bcf1d' +yellow = '#ecc809' +blue = '#5555ff' +magenta = '#ff55ff' +cyan = '#6ae3f9' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/Mariana.toml b/Plugin/wxTerminalCtrl/themes/Mariana.toml new file mode 100644 index 0000000000..0b7497b066 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/Mariana.toml @@ -0,0 +1,39 @@ +# Mariana (ported from Sublime Text 4) +# Source https//github.com/mbadolato/iTerm2-Color-Schemes/blob/master/alacritty/Mariana.yml + +# Default colors +[colors.primary] +background = '#343d46' +foreground = '#d8dee9' + +# Cursor colors +[colors.cursor] +cursor = '#fcbb6a' +text = '#ffffff' + +# Normal colors +[colors.normal] +black = '#000000' +blue = '#6699cc' +cyan = '#5fb4b4' +green = '#99c794' +magenta = '#c695c6' +red = '#ec5f66' +white = '#f7f7f7' +yellow = '#f9ae58' + +# Bright colors +[colors.bright] +black = '#333333' +blue = '#85add6' +cyan = '#82c4c4' +green = '#acd1a8' +magenta = '#d8b6d8' +red = '#f97b58' +white = '#ffffff' +yellow = '#fac761' + +# Selection colors +[colors.selection] +background = '#4e5a65' +text = '#d8dee9' diff --git a/Plugin/wxTerminalCtrl/themes/acme.toml b/Plugin/wxTerminalCtrl/themes/acme.toml new file mode 100644 index 0000000000..be8ece9184 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/acme.toml @@ -0,0 +1,28 @@ +# Colors (acme) + +# Default colors +[colors.primary] +background = '#ffffea' +foreground = '#000000' + +# Normal colors +[colors.normal] +black = '#101010' +red = '#af5f00' +green = '#cccc7c' +yellow = '#ffff5f' +blue = '#aeeeee' +magenta = '#505050' +cyan = '#afffd7' +white = '#fcfcce' + +# Bright colors +[colors.bright] +black = '#101010' +red = '#af5f00' +green = '#cccc7c' +yellow = '#ffff5f' +blue = '#aeeeee' +magenta = '#505050' +cyan = '#afffd7' +white = '#fcfcce' diff --git a/Plugin/wxTerminalCtrl/themes/afterglow.toml b/Plugin/wxTerminalCtrl/themes/afterglow.toml new file mode 100644 index 0000000000..74702c1f56 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/afterglow.toml @@ -0,0 +1,45 @@ +# Default colors +[colors.primary] +background = '#2c2c2c' +foreground = '#d6d6d6' + +dim_foreground = '#dbdbdb' +bright_foreground = '#d9d9d9' + +# Cursor colors +[colors.cursor] +text = '#2c2c2c' +cursor = '#d9d9d9' + +# Normal colors +[colors.normal] +black = '#1c1c1c' +red = '#bc5653' +green = '#909d63' +yellow = '#ebc17a' +blue = '#7eaac7' +magenta = '#aa6292' +cyan = '#86d3ce' +white = '#cacaca' + +# Bright colors +[colors.bright] +black = '#636363' +red = '#bc5653' +green = '#909d63' +yellow = '#ebc17a' +blue = '#7eaac7' +magenta = '#aa6292' +cyan = '#86d3ce' +white = '#f7f7f7' + +# Dim colors +[colors.dim] +black = '#232323' +red = '#74423f' +green = '#5e6547' +yellow = '#8b7653' +blue = '#556b79' +magenta = '#6e4962' +cyan = '#5c8482' +white = '#828282' diff --git a/Plugin/wxTerminalCtrl/themes/alabaster.toml b/Plugin/wxTerminalCtrl/themes/alabaster.toml new file mode 100644 index 0000000000..df312d30d7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/alabaster.toml @@ -0,0 +1,30 @@ +# Colors (Alabaster) +# author tonsky + +[colors.primary] +background = '#F7F7F7' +foreground = '#434343' + +[colors.cursor] +text = '#F7F7F7' +cursor = '#434343' + +[colors.normal] +black = '#000000' +red = '#AA3731' +green = '#448C27' +yellow = '#CB9000' +blue = '#325CC0' +magenta = '#7A3E9D' +cyan = '#0083B2' +white = '#BBBBBB' + +[colors.bright] +black = '#777777' +red = '#F05050' +green = '#60CB00' +yellow = '#FFBC5D' +blue = '#007ACC' +magenta = '#E64CE6' +cyan = '#00AACB' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/alabaster_dark.toml b/Plugin/wxTerminalCtrl/themes/alabaster_dark.toml new file mode 100644 index 0000000000..500f1eee9d --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/alabaster_dark.toml @@ -0,0 +1,30 @@ +# Colors (Alabaster Dark) +# author tonsky + +[colors.primary] +background = '#0E1415' +foreground = '#CECECE' + +[colors.cursor] +text = '#0E1415' +cursor = '#CECECE' + +[colors.normal] +black = '#0E1415' +red = '#e25d56' +green = '#73ca50' +yellow = '#e9bf57' +blue = '#4a88e4' +magenta = '#915caf' +cyan = '#23acdd' +white = '#f0f0f0' + +[colors.bright] +black = '#777777' +red = '#f36868' +green = '#88db3f' +yellow = '#f0bf7a' +blue = '#6f8fdb' +magenta = '#e987e9' +cyan = '#4ac9e2' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/alacritty_0_12.toml b/Plugin/wxTerminalCtrl/themes/alacritty_0_12.toml new file mode 100644 index 0000000000..434db4809e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/alacritty_0_12.toml @@ -0,0 +1,44 @@ +# Alacritty's default color scheme pre-0.13 (based on tomorrow_night) +# https://github.com/alacritty/alacritty/blob/v0.12.3/alacritty/src/config/color.rs + +[colors.primary] +foreground = "#c5c8c6" +background = "#1d1f21" + +[colors.normal] +black = "#1d1f21" +red = "#cc6666" +green = "#b5bd68" +yellow = "#f0c674" +blue = "#81a2be" +magenta = "#b294bb" +cyan = "#8abeb7" +white = "#c5c8c6" + +[colors.bright] +black = "#666666" +red = "#d54e53" +green = "#b9ca4a" +yellow = "#e7c547" +blue = "#7aa6da" +magenta = "#c397d8" +cyan = "#70c0b1" +white = "#eaeaea" + +[colors.dim] +black = "#131415" +red = "#864343" +green = "#777c44" +yellow = "#9e824c" +blue = "#556a7d" +magenta = "#75617b" +cyan = "#5b7d78" +white = "#828482" + +[colors.hints] +start = { foreground = "#1d1f21", background = "#e9ff5e" } +end = { foreground = "#e9ff5e", background = "#1d1f21" } + +[colors.search] +matches = { foreground = "#000000", background = "#ffffff" } +focused_match = { foreground = "#ffffff", background = "#000000" } diff --git a/Plugin/wxTerminalCtrl/themes/argonaut.toml b/Plugin/wxTerminalCtrl/themes/argonaut.toml new file mode 100644 index 0000000000..dc5eb53565 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/argonaut.toml @@ -0,0 +1,31 @@ +# Default colors +[colors.primary] +background = '#292C3E' +foreground = '#EBEBEB' + +# Cursor colors +[colors.cursor] +text = '#EBEBEB' +cursor = '#FF261E' + +# Normal colors +[colors.normal] +black = '#0d0d0d' +red = '#FF301B' +green = '#A0E521' +yellow = '#FFC620' +blue = '#1BA6FA' +magenta = '#8763B8' +cyan = '#21DEEF' +white = '#EBEBEB' + +# Bright colors +[colors.bright] +black = '#6D7070' +red = '#FF4352' +green = '#B8E466' +yellow = '#FFD750' +blue = '#1BA6FA' +magenta = '#A578EA' +cyan = '#73FBF1' +white = '#FEFEF8' diff --git a/Plugin/wxTerminalCtrl/themes/ashes_dark.toml b/Plugin/wxTerminalCtrl/themes/ashes_dark.toml new file mode 100644 index 0000000000..ed218eadf9 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/ashes_dark.toml @@ -0,0 +1,27 @@ +[colors.primary] +background = '#1c2023' +foreground = '#c7ccd1' + +[colors.cursor] +text = '#1c2023' +cursor = '#c7ccd1' + +[colors.normal] +black = '#1c2023' +red = '#c7ae95' +green = '#95c7ae' +yellow = '#aec795' +blue = '#ae95c7' +magenta = '#c795ae' +cyan = '#95aec7' +white = '#c7ccd1' + +[colors.bright] +black = '#747c84' +red = '#c7ae95' +green = '#95c7ae' +yellow = '#aec795' +blue = '#ae95c7' +magenta = '#c795ae' +cyan = '#95aec7' +white = '#f3f4f5' diff --git a/Plugin/wxTerminalCtrl/themes/ashes_light.toml b/Plugin/wxTerminalCtrl/themes/ashes_light.toml new file mode 100644 index 0000000000..1b76e8f23f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/ashes_light.toml @@ -0,0 +1,27 @@ +[colors.primary] +background = '#f3f4f5' +foreground = '#565e65' + +[colors.cursor] +text = '#f3f4f5' +cursor = '#565e65' + +[colors.normal] +black = '#1c2023' +red = '#c7ae95' +green = '#95c7ae' +yellow = '#aec795' +blue = '#ae95c7' +magenta = '#c795ae' +cyan = '#95aec7' +white = '#c7ccd1' + +[colors.bright] +black = '#747c84' +red = '#c7ae95' +green = '#95c7ae' +yellow = '#aec795' +blue = '#ae95c7' +magenta = '#c795ae' +cyan = '#95aec7' +white = '#f3f4f5' diff --git a/Plugin/wxTerminalCtrl/themes/aura.toml b/Plugin/wxTerminalCtrl/themes/aura.toml new file mode 100644 index 0000000000..e9967ef2b1 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/aura.toml @@ -0,0 +1,30 @@ +[colors.primary] +background = "#15141b" +foreground = "#edecee" + +[colors.cursor] +cursor = "#a277ff" + +[colors.selection] +text = "CellForeground" +background = "#29263c" + +[colors.normal] +black = "#110f18" +red = "#ff6767" +green = "#61ffca" +yellow = "#ffca85" +blue = "#a277ff" +magenta = "#a277ff" +cyan = "#61ffca" +white = "#edecee" + +[colors.bright] +black = "#4d4d4d" +red = "#ff6767" +green = "#61ffca" +yellow = "#ffca85" +blue = "#a277ff" +magenta = "#a277ff" +cyan = "#61ffca" +white = "#edecee" diff --git a/Plugin/wxTerminalCtrl/themes/autumn.toml b/Plugin/wxTerminalCtrl/themes/autumn.toml new file mode 100644 index 0000000000..e979168172 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/autumn.toml @@ -0,0 +1,30 @@ +# From: https://github.com/yorickpeterse/Autumn.vim/blob/master/colors/autumn.vim + +[colors.primary] +foreground = "#F3F2CC" +background = "#232323" + +[colors.cursor] +text = "#232323" +cursor = "#F3F2CC" + +[colors.normal] +black = "#212121" +red = "#F05E48" +green = "#99be70" +yellow = "#FAD566" +blue = "#86c1b9" +magenta = "#cfba8b" +cyan = "#72a59e" +white = "#c8c8c8" + +[colors.bright] +black = "#404040" +red = "#F05E48" +green = "#99be70" +yellow = "#ffff9f" +blue = "#86c1b9" +magenta = "#cfba8b" +cyan = "#72a59e" +white = "#e8e8e8" + diff --git a/Plugin/wxTerminalCtrl/themes/ayu_dark.toml b/Plugin/wxTerminalCtrl/themes/ayu_dark.toml new file mode 100644 index 0000000000..a2ea740160 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/ayu_dark.toml @@ -0,0 +1,28 @@ +# Colors (Ayu Dark) + +# Default colors +[colors.primary] +background = '#0A0E14' +foreground = '#B3B1AD' + +# Normal colors +[colors.normal] +black = '#01060E' +red = '#EA6C73' +green = '#91B362' +yellow = '#F9AF4F' +blue = '#53BDFA' +magenta = '#FAE994' +cyan = '#90E1C6' +white = '#C7C7C7' + +# Bright colors +[colors.bright] +black = '#686868' +red = '#F07178' +green = '#C2D94C' +yellow = '#FFB454' +blue = '#59C2FF' +magenta = '#FFEE99' +cyan = '#95E6CB' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/ayu_light.toml b/Plugin/wxTerminalCtrl/themes/ayu_light.toml new file mode 100644 index 0000000000..d5cd4f9772 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/ayu_light.toml @@ -0,0 +1,28 @@ +# Colors (Ayu Light) + +# Default colors - taken from ayu-colors +[colors.primary] +background = '#FCFCFC' +foreground = '#5C6166' + +# Normal colors - taken from ayu-iTerm +[colors.normal] +black = '#010101' +red = '#e7666a' +green = '#80ab24' +yellow = '#eba54d' +blue = '#4196df' +magenta = '#9870c3' +cyan = '#51b891' +white = '#c1c1c1' + +# Bright colors - pastel lighten 0.1 except black lighten with 0.2 +[colors.bright] +black = '#343434' +red = '#ee9295' +green = '#9fd32f' +yellow = '#f0bc7b' +blue = '#6daee6' +magenta = '#b294d2' +cyan = '#75c7a8' +white = '#dbdbdb' diff --git a/Plugin/wxTerminalCtrl/themes/ayu_mirage.toml b/Plugin/wxTerminalCtrl/themes/ayu_mirage.toml new file mode 100644 index 0000000000..6deddd4952 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/ayu_mirage.toml @@ -0,0 +1,29 @@ +# Colors (Ayu Mirage) + +# Default Colors +[colors.primary] +background = "#1f2430" +foreground = "#cbccc6" +bright_foreground = "#f28779" + +# Normal colors +[colors.normal] +black = "#212733" +red = "#f08778" +green = "#53bf97" +yellow = "#fdcc60" +blue = "#60b8d6" +magenta = "#ec7171" +cyan = "#98e6ca" +white = "#fafafa" + +# Bright colors +[colors.bright] +black = "#686868" +red = "#f58c7d" +green = "#58c49c" +yellow = "#ffd165" +blue = "#65bddb" +magenta = "#f17676" +cyan = "#9debcf" +white = "#ffffff" diff --git a/Plugin/wxTerminalCtrl/themes/baitong.toml b/Plugin/wxTerminalCtrl/themes/baitong.toml new file mode 100644 index 0000000000..40570414bf --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/baitong.toml @@ -0,0 +1,55 @@ +# Colors (Baitong) + +[colors.primary] +background = '#112a2a' +foreground = '#33ff33' + +[colors.cursor] +text = '#112a2a' +cursor = '#ff00ff' + +[colors.vi_mode_cursor] +text = '#112a2a' +cursor = '#ff00ff' + +[colors.search] +matches = { foreground = '#000000', background = '#1AE642' } +focused_match = { foreground = '#000000', background = '#ff00ff' } + +[colors.hints] +start = { foreground = '#1d1f21', background = '#1AE642' } +end = { foreground = '#1AE642', background = '#1d1f21' } + +[colors.line_indicator] +foreground = '#33ff33' +background = '#1d1f21' + +[colors.footer_bar] +background = '#731d8b' +foreground = '#ffffff' + +[colors.selection] +text = '#112a2a' +background = '#1AE642' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#f77272' +green = '#33ff33' +yellow = '#1AE642' +blue = '#68FDFE' +magenta = '#ff66ff' +cyan = '#87CEFA' +white = '#dbdbd9' + +# Bright colors +[colors.bright] +black = '#ffffff' +red = '#f77272' +green = '#33ff33' +yellow = '#1AE642' +blue = '#68FDFE' +magenta = '#ff66ff' +cyan = '#68FDFE' +white = '#dbdbd9' diff --git a/Plugin/wxTerminalCtrl/themes/base16_default_dark.toml b/Plugin/wxTerminalCtrl/themes/base16_default_dark.toml new file mode 100644 index 0000000000..ca85177af4 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/base16_default_dark.toml @@ -0,0 +1,32 @@ +# Colors (Base16 Default Dark) + +# Default colors +[colors.primary] +background = '#181818' +foreground = '#d8d8d8' + +[colors.cursor] +text = '#181818' +cursor = '#d8d8d8' + +# Normal colors +[colors.normal] +black = '#181818' +red = '#ab4642' +green = '#a1b56c' +yellow = '#f7ca88' +blue = '#7cafc2' +magenta = '#ba8baf' +cyan = '#86c1b9' +white = '#d8d8d8' + +# Bright colors +[colors.bright] +black = '#585858' +red = '#ab4642' +green = '#a1b56c' +yellow = '#f7ca88' +blue = '#7cafc2' +magenta = '#ba8baf' +cyan = '#86c1b9' +white = '#f8f8f8' diff --git a/Plugin/wxTerminalCtrl/themes/blood_moon.toml b/Plugin/wxTerminalCtrl/themes/blood_moon.toml new file mode 100644 index 0000000000..ae99eddf97 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/blood_moon.toml @@ -0,0 +1,28 @@ +# Colors (Blood Moon) + +# Default colors +[colors.primary] +background = '#10100E' +foreground = '#C6C6C4' + +# Normal colors +[colors.normal] +black = '#10100E' +red = '#C40233' +green = '#009F6B' +yellow = '#FFD700' +blue = '#0087BD' +magenta = '#9A4EAE' +cyan = '#20B2AA' +white = '#C6C6C4' + +# Bright colors +[colors.bright] +black = '#696969' +red = '#FF2400' +green = '#03C03C' +yellow = '#FDFF00' +blue = '#007FFF' +magenta = '#FF1493' +cyan = '#00CCCC' +white = '#FFFAFA' diff --git a/Plugin/wxTerminalCtrl/themes/bluish.toml b/Plugin/wxTerminalCtrl/themes/bluish.toml new file mode 100644 index 0000000000..ca2333fb24 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/bluish.toml @@ -0,0 +1,26 @@ +# Default colors +[colors.primary] +background = '#2c3640' +foreground = '#297dd3' + +# Normal colors +[colors.normal] +black = '#0b0b0c' +red = '#377fc4' +green = '#2691e7' +yellow = '#2090c1' +blue = '#2c5e87' +magenta = '#436280' +cyan = '#547aa2' +white = '#536679' + +# Bright colors +[colors.bright] +black = '#23272c' +red = '#66a5cc' +green = '#59b0f2' +yellow = '#4bb0d3' +blue = '#487092' +magenta = '#50829e' +cyan = '#658795' +white = '#4d676b' diff --git a/Plugin/wxTerminalCtrl/themes/breeze.toml b/Plugin/wxTerminalCtrl/themes/breeze.toml new file mode 100644 index 0000000000..67e499237f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/breeze.toml @@ -0,0 +1,42 @@ +# KDE Breeze (Ported from Konsole) + +# Default colors +[colors.primary] +background = '#232627' +foreground = '#fcfcfc' + +dim_foreground = '#eff0f1' +bright_foreground = '#ffffff' + +# Normal colors +[colors.normal] +black = '#232627' +red = '#ed1515' +green = '#11d116' +yellow = '#f67400' +blue = '#1d99f3' +magenta = '#9b59b6' +cyan = '#1abc9c' +white = '#fcfcfc' + +# Bright colors +[colors.bright] +black = '#7f8c8d' +red = '#c0392b' +green = '#1cdc9a' +yellow = '#fdbc4b' +blue = '#3daee9' +magenta = '#8e44ad' +cyan = '#16a085' +white = '#ffffff' + +# Dim colors +[colors.dim] +black = '#31363b' +red = '#783228' +green = '#17a262' +yellow = '#b65619' +blue = '#1b668f' +magenta = '#614a73' +cyan = '#186c60' +white = '#63686d' diff --git a/Plugin/wxTerminalCtrl/themes/campbell.toml b/Plugin/wxTerminalCtrl/themes/campbell.toml new file mode 100644 index 0000000000..05630b7d78 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/campbell.toml @@ -0,0 +1,28 @@ +# Campbell (Windows 10 default) + +# Default colors +[colors.primary] +background = '#0c0c0c' +foreground = '#cccccc' + +# Normal colors +[colors.normal] +black = '#0c0c0c' +red = '#c50f1f' +green = '#13a10e' +yellow = '#c19c00' +blue = '#0037da' +magenta = '#881798' +cyan = '#3a96dd' +white = '#cccccc' + +# Bright colors +[colors.bright] +black = '#767676' +red = '#e74856' +green = '#16c60c' +yellow = '#f9f1a5' +blue = '#3b78ff' +magenta = '#b4009e' +cyan = '#61d6d6' +white = '#f2f2f2' diff --git a/Plugin/wxTerminalCtrl/themes/carbonfox.toml b/Plugin/wxTerminalCtrl/themes/carbonfox.toml new file mode 100644 index 0000000000..fcb24f42c3 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/carbonfox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: carbonfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/carbonfox/alacritty.toml + +[colors.primary] +background = "#161616" +foreground = "#f2f4f8" +dim_foreground = "#b6b8bb" +bright_foreground = "#f9fbff" + +[colors.cursor] +text = "#f2f4f8" +cursor = "#b6b8bb" + +[colors.vi_mode_cursor] +text = "#f2f4f8" +cursor = "#33b1ff" + +[colors.search.matches] +foreground = "#f2f4f8" +background = "#525253" + +[colors.search.focused_match] +foreground = "#f2f4f8" +background = "#3ddbd9" + +[colors.footer_bar] +foreground = "#f2f4f8" +background = "#353535" + +[colors.hints.start] +foreground = "#f2f4f8" +background = "#3ddbd9" + +[colors.hints.end] +foreground = "#f2f4f8" +background = "#353535" + +[colors.selection] +text = "#f2f4f8" +background = "#2a2a2a" + +[colors.normal] +black = "#282828" +red = "#ee5396" +green = "#25be6a" +yellow = "#08bdba" +blue = "#78a9ff" +magenta = "#be95ff" +cyan = "#33b1ff" +white = "#dfdfe0" + +[colors.bright] +black = "#484848" +red = "#f16da6" +green = "#46c880" +yellow = "#2dc7c4" +blue = "#8cb6ff" +magenta = "#c8a5ff" +cyan = "#52bdff" +white = "#e4e4e5" + +[colors.dim] +black = "#222222" +red = "#ca4780" +green = "#1fa25a" +yellow = "#07a19e" +blue = "#6690d9" +magenta = "#a27fd9" +cyan = "#2b96d9" +white = "#bebebe" diff --git a/Plugin/wxTerminalCtrl/themes/catppuccin.toml b/Plugin/wxTerminalCtrl/themes/catppuccin.toml new file mode 100644 index 0000000000..2ea110fbaf --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/catppuccin.toml @@ -0,0 +1,39 @@ +# Catppuccino theme scheme for Alacritty + +[colors.primary] +background = '#1E1E2E' +foreground = '#D6D6D6' + +[colors.cursor] +text = '#1E1E2E' +cursor = '#D9D9D9' + +[colors.normal] +black = '#181A1F' +red = '#E86671' +green = '#98C379' +yellow = '#E5C07B' +blue = '#61AFEF' +magenta = '#C678DD' +cyan = '#54AFBC' +white = '#ABB2BF' + +[colors.bright] +black = '#5C6370' +red = '#E86671' +green = '#98C379' +yellow = '#E5C07B' +blue = '#61AFEF' +magenta = '#C678DD' +cyan = '#54AFBC' +white = '#F7F7F7' + +[colors.dim] +black = '#5C6370' +red = '#74423F' +green = '#98C379' +yellow = '#E5C07B' +blue = '#61AFEF' +magenta = '#6E4962' +cyan = '#5C8482' +white = '#828282' diff --git a/Plugin/wxTerminalCtrl/themes/catppuccin_frappe.toml b/Plugin/wxTerminalCtrl/themes/catppuccin_frappe.toml new file mode 100644 index 0000000000..6a286e23a4 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/catppuccin_frappe.toml @@ -0,0 +1,73 @@ +# Default colors +[colors.primary] +background = '#303446' # base +foreground = '#C6D0F5' # text +# Bright and dim foreground colors +dim_foreground = '#C6D0F5' # text +bright_foreground = '#C6D0F5' # text + +# Cursor colors +[colors.cursor] +text = '#303446' # base +cursor = '#F2D5CF' # rosewater + +[colors.vi_mode_cursor] +text = '#303446' # base +cursor = '#BABBF1' # lavender + +# Search colors +[colors.search.matches] +foreground = '#303446' # base +background = '#A5ADCE' # subtext0 +[colors.search.focused_match] +foreground = '#303446' # base +background = '#A6D189' # green +[colors.footer_bar] +foreground = '#303446' # base +background = '#A5ADCE' # subtext0 + +# Keyboard regex hints +[colors.hints.start] +foreground = '#303446' # base +background = '#E5C890' # yellow +[colors.hints.end] +foreground = '#303446' # base +background = '#A5ADCE' # subtext0 + +# Selection colors +[colors.selection] +text = '#303446' # base +background = '#F2D5CF' # rosewater + +# Normal colors +[colors.normal] +black = '#51576D' # surface1 +red = '#E78284' # red +green = '#A6D189' # green +yellow = '#E5C890' # yellow +blue = '#8CAAEE' # blue +magenta = '#F4B8E4' # pink +cyan = '#81C8BE' # teal +white = '#B5BFE2' # subtext1 + +# Bright colors +[colors.bright] +black = '#626880' # surface2 +red = '#E78284' # red +green = '#A6D189' # green +yellow = '#E5C890' # yellow +blue = '#8CAAEE' # blue +magenta = '#F4B8E4' # pink +cyan = '#81C8BE' # teal +white = '#A5ADCE' # subtext0 + +# Dim colors +[colors.dim] +black = '#51576D' # surface1 +red = '#E78284' # red +green = '#A6D189' # green +yellow = '#E5C890' # yellow +blue = '#8CAAEE' # blue +magenta = '#F4B8E4' # pink +cyan = '#81C8BE' # teal +white = '#B5BFE2' # subtext1 diff --git a/Plugin/wxTerminalCtrl/themes/catppuccin_latte.toml b/Plugin/wxTerminalCtrl/themes/catppuccin_latte.toml new file mode 100644 index 0000000000..9a1cde7299 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/catppuccin_latte.toml @@ -0,0 +1,76 @@ +# Default colors +[colors.primary] +background = '#EFF1F5' # base +foreground = '#4C4F69' # text +# Bright and dim foreground colors +dim_foreground = '#4C4F69' # text +bright_foreground = '#4C4F69' # text + +# Cursor colors +[colors.cursor] +text = '#EFF1F5' # base +cursor = '#DC8A78' # rosewater + +[colors.vi_mode_cursor] +text = '#EFF1F5' # base +cursor = '#7287FD' # lavender + +# Search colors +[colors.search.matches] +foreground = '#EFF1F5' # base +background = '#6C6F85' # subtext0 + +[colors.search.focused_match] +foreground = '#EFF1F5' # base +background = '#40A02B' # green + +[colors.footer_bar] +foreground = '#EFF1F5' # base +background = '#6C6F85' # subtext0 + +# Keyboard regex hints +[colors.hints.start] +foreground = '#EFF1F5' # base +background = '#DF8E1D' # yellow + +[colors.hints.end] +foreground = '#EFF1F5' # base +background = '#6C6F85' # subtext0 + +# Selection colors +[colors.selection] +text = '#EFF1F5' # base +background = '#DC8A78' # rosewater + +# Normal colors +[colors.normal] +black = '#5C5F77' # subtext1 +red = '#D20F39' # red +green = '#40A02B' # green +yellow = '#DF8E1D' # yellow +blue = '#1E66F5' # blue +magenta = '#EA76CB' # pink +cyan = '#179299' # teal +white = '#ACB0BE' # surface2 + +# Bright colors +[colors.bright] +black = '#6C6F85' # subtext0 +red = '#D20F39' # red +green = '#40A02B' # green +yellow = '#DF8E1D' # yellow +blue = '#1E66F5' # blue +magenta = '#EA76CB' # pink +cyan = '#179299' # teal +white = '#BCC0CC' # surface1 + +# Dim colors +[colors.dim] +black = '#5C5F77' # subtext1 +red = '#D20F39' # red +green = '#40A02B' # green +yellow = '#DF8E1D' # yellow +blue = '#1E66F5' # blue +magenta = '#EA76CB' # pink +cyan = '#179299' # teal +white = '#ACB0BE' # surface2 diff --git a/Plugin/wxTerminalCtrl/themes/catppuccin_macchiato.toml b/Plugin/wxTerminalCtrl/themes/catppuccin_macchiato.toml new file mode 100644 index 0000000000..fdec19a70f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/catppuccin_macchiato.toml @@ -0,0 +1,76 @@ +# Default colors +[colors.primary] +background = '#24273A' # base +foreground = '#CAD3F5' # text +# Bright and dim foreground colors +dim_foreground = '#CAD3F5' # text +bright_foreground = '#CAD3F5' # text + +# Cursor colors +[colors.cursor] +text = '#24273A' # base +cursor = '#F4DBD6' # rosewater + +[colors.vi_mode_cursor] +text = '#24273A' # base +cursor = '#B7BDF8' # lavender + +# Search colors +[colors.search.matches] +foreground = '#24273A' # base +background = '#A5ADCB' # subtext0 + +[colors.search.focused_match] +foreground = '#24273A' # base +background = '#A6DA95' # green + +[colors.footer_bar] +foreground = '#24273A' # base +background = '#A5ADCB' # subtext0 + +# Keyboard regex hints +[colors.hints.start] +foreground = '#24273A' # base +background = '#EED49F' # yellow + +[colors.hints.end] +foreground = '#24273A' # base +background = '#A5ADCB' # subtext0 + +# Selection colors +[colors.selection] +text = '#24273A' # base +background = '#F4DBD6' # rosewater + +# Normal colors +[colors.normal] +black = '#494D64' # surface1 +red = '#ED8796' # red +green = '#A6DA95' # green +yellow = '#EED49F' # yellow +blue = '#8AADF4' # blue +magenta = '#F5BDE6' # pink +cyan = '#8BD5CA' # teal +white = '#B8C0E0' # subtext1 + +# Bright colors +[colors.bright] +black = '#5B6078' # surface2 +red = '#ED8796' # red +green = '#A6DA95' # green +yellow = '#EED49F' # yellow +blue = '#8AADF4' # blue +magenta = '#F5BDE6' # pink +cyan = '#8BD5CA' # teal +white = '#A5ADCB' # subtext0 + +# Dim colors +[colors.dim] +black = '#494D64' # surface1 +red = '#ED8796' # red +green = '#A6DA95' # green +yellow = '#EED49F' # yellow +blue = '#8AADF4' # blue +magenta = '#F5BDE6' # pink +cyan = '#8BD5CA' # teal +white = '#B8C0E0' # subtext1 diff --git a/Plugin/wxTerminalCtrl/themes/catppuccin_mocha.toml b/Plugin/wxTerminalCtrl/themes/catppuccin_mocha.toml new file mode 100644 index 0000000000..e57824d853 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/catppuccin_mocha.toml @@ -0,0 +1,75 @@ +[colors.primary] +background = '#1E1E2E' # base +foreground = '#CDD6F4' # text +# Bright and dim foreground colors +dim_foreground = '#CDD6F4' # text +bright_foreground = '#CDD6F4' # text + +# Cursor colors +[colors.cursor] +text = '#1E1E2E' # base +cursor = '#F5E0DC' # rosewater + +[colors.vi_mode_cursor] +text = '#1E1E2E' # base +cursor = '#B4BEFE' # lavender + +# Search colors +[colors.search.matches] +foreground = '#1E1E2E' # base +background = '#A6ADC8' # subtext0 + +[colors.search.focused_match] +foreground = '#1E1E2E' # base +background = '#A6E3A1' # green + +[colors.footer_bar] +foreground = '#1E1E2E' # base +background = '#A6ADC8' # subtext0 + +# Keyboard regex hints +[colors.hints.start] +foreground = '#1E1E2E' # base +background = '#F9E2AF' # yellow + +[colors.hints.end] +foreground = '#1E1E2E' # base +background = '#A6ADC8' # subtext0 + +# Selection colors +[colors.selection] +text = '#1E1E2E' # base +background = '#F5E0DC' # rosewater + +# Normal colors +[colors.normal] +black = '#45475A' # surface1 +red = '#F38BA8' # red +green = '#A6E3A1' # green +yellow = '#F9E2AF' # yellow +blue = '#89B4FA' # blue +magenta = '#F5C2E7' # pink +cyan = '#94E2D5' # teal +white = '#BAC2DE' # subtext1 + +# Bright colors +[colors.bright] +black = '#585B70' # surface2 +red = '#F38BA8' # red +green = '#A6E3A1' # green +yellow = '#F9E2AF' # yellow +blue = '#89B4FA' # blue +magenta = '#F5C2E7' # pink +cyan = '#94E2D5' # teal +white = '#A6ADC8' # subtext0 + +# Dim colors +[colors.dim] +black = '#45475A' # surface1 +red = '#F38BA8' # red +green = '#A6E3A1' # green +yellow = '#F9E2AF' # yellow +blue = '#89B4FA' # blue +magenta = '#F5C2E7' # pink +cyan = '#94E2D5' # teal +white = '#BAC2DE' # subtext1 diff --git a/Plugin/wxTerminalCtrl/themes/challenger_deep.toml b/Plugin/wxTerminalCtrl/themes/challenger_deep.toml new file mode 100644 index 0000000000..a5c4a32008 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/challenger_deep.toml @@ -0,0 +1,32 @@ +# Colors (Challenger Deep) + +# Default colors +[colors.primary] +background = '#1e1c31' +foreground = '#cbe1e7' + +[colors.cursor] +text = '#ff271d' +cursor = '#fbfcfc' + +# Normal colors +[colors.normal] +black = '#141228' +red = '#ff5458' +green = '#62d196' +yellow = '#ffb378' +blue = '#65b2ff' +magenta = '#906cff' +cyan = '#63f2f1' +white = '#a6b3cc' + +# Bright colors +[colors.bright] +black = '#565575' +red = '#ff8080' +green = '#95ffa4' +yellow = '#ffe9aa' +blue = '#91ddff' +magenta = '#c991e1' +cyan = '#aaffe4' +white = '#cbe3e7' diff --git a/Plugin/wxTerminalCtrl/themes/chicago95.toml b/Plugin/wxTerminalCtrl/themes/chicago95.toml new file mode 100644 index 0000000000..6902e76b29 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/chicago95.toml @@ -0,0 +1,29 @@ +# Windows 95 Color Scheme +# To have the authentic experience in Chicago95 GTK Theme. + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#C0C7C8' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#A80000' +green = '#00A800' +yellow = '#A85400' +blue = '#0000A8' +magenta = '#A800A8' +cyan = '#00A8A8' +white = '#A8A8A8' + +# Bright colors +[colors.bright] +black = '#545454' +red = '#FC5454' +green = '#54FC54' +yellow = '#FCFC54' +blue = '#5454FC' +magenta = '#FC54FC' +cyan = '#54FCFC' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/citylights.toml b/Plugin/wxTerminalCtrl/themes/citylights.toml new file mode 100644 index 0000000000..775ee723ec --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/citylights.toml @@ -0,0 +1,30 @@ +# Default colors +[colors.primary] +background = '#171d23' +foreground = '#ffffff' + +# Cursor colors +[colors.cursor] +text = '#fafafa' +cursor = '#008b94' + +# Normal colors +[colors.normal] +black = '#333f4a' +red = '#d95468' +green = '#8bd49c' +blue = '#539afc' +magenta = '#b62d65' +cyan = '#70e1e8' +white = '#b7c5d3' + +# Bright colors +[colors.bright] +black = '#41505e' +red = '#d95468' +green = '#8bd49c' +yellow = '#ebbf83' +blue = '#5ec4ff' +magenta = '#e27e8d' +cyan = '#70e1e8' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/cyber_punk_neon.toml b/Plugin/wxTerminalCtrl/themes/cyber_punk_neon.toml new file mode 100644 index 0000000000..0424e47b94 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/cyber_punk_neon.toml @@ -0,0 +1,33 @@ +# Cyber Punk Neon +# Source https//github.com/Roboron3042/Cyberpunk-Neon + +# Default colors +[colors.primary] +background = '#000b1e' +foreground = '#0abdc6' + +[colors.cursor] +text = '#000b1e' +cursor = '#0abdc6' + +# Normal colors +[colors.normal] +black = '#123e7c' +red = '#ff0000' +green = '#d300c4' +yellow = '#f57800' +blue = '#123e7c' +magenta = '#711c91' +cyan = '#0abdc6' +white = '#d7d7d5' + +# Bright colors +[colors.bright] +black = '#1c61c2' +red = '#ff0000' +green = '#d300c4' +yellow = '#f57800' +blue = '#00ff00' +magenta = '#711c91' +cyan = '#0abdc6' +white = '#d7d7d5' diff --git a/Plugin/wxTerminalCtrl/themes/dark_pastels.toml b/Plugin/wxTerminalCtrl/themes/dark_pastels.toml new file mode 100644 index 0000000000..6f11b9b91b --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dark_pastels.toml @@ -0,0 +1,28 @@ +# Colors (Konsole's Dark Pastels) + +# Default colors +[colors.primary] +background = '#2C2C2C' +foreground = '#DCDCCC' + +# Normal colors +[colors.normal] +black = '#3F3F3F' +red = '#705050' +green = '#60B48A' +yellow = '#DFAF8F' +blue = '#9AB8D7' +magenta = '#DC8CC3' +cyan = '#8CD0D3' +white = '#DCDCCC' + +# Bright colors +[colors.bright] +black = '#709080' +red = '#DCA3A3' +green = '#72D5A3' +yellow = '#F0DFAF' +blue = '#94BFF3' +magenta = '#EC93D3' +cyan = '#93E0E3' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/dark_plus.toml b/Plugin/wxTerminalCtrl/themes/dark_plus.toml new file mode 100644 index 0000000000..d168c6f69e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dark_plus.toml @@ -0,0 +1,23 @@ +[colors.primary] +background = "#1F1F1F" +foreground = "#CCCCCC" + +[colors.normal] +black = "#000000" +red = "#d6181b" +green = "#6A9955" +yellow = "#e4d201" +blue = "#569cd6" +magenta = "#bc3fbc" +cyan = "#4EC9B0" +white = "#e5e5e5" + +[colors.bright] +black = "#666666" +red = "#ce9178" +green = "#b5cea8" +yellow = "#DCDCAA" +blue = "#9cdcfe" +magenta = "#d670d6" +cyan = "#9cdcfe" +white = "#e5e5e5" diff --git a/Plugin/wxTerminalCtrl/themes/dark_pride.toml b/Plugin/wxTerminalCtrl/themes/dark_pride.toml new file mode 100644 index 0000000000..6cfba47559 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dark_pride.toml @@ -0,0 +1,34 @@ +# Dark Pride +# A dark trans pride colour inspired theme + +# Primary colors +[colors.primary] +background = '#0d0d1b' +foreground = '#ccccce' + +# Colors used for 'custom_cursor_colors' +[colors.cursor] +text = '#bbbbbb' +cursor = '#ff0017' + +# Colors 0 through 7 +[colors.normal] +black = '#282828' +red = '#ca1444' +green = '#789aba' +yellow = '#b3879f' +blue = '#95569b' +magenta = '#cb6fa1' +cyan = '#fb6e93' +white = '#cf98c1' + +# Colors 8 through 15 +[colors.bright] +black = '#98218e' +red = '#cb515d' +green = '#5a87b1' +yellow = '#9c61ab' +blue = '#9a77b1' +magenta = '#f2a297' +cyan = '#f4436f' +white = '#ebdbb2' diff --git a/Plugin/wxTerminalCtrl/themes/dawnfox.toml b/Plugin/wxTerminalCtrl/themes/dawnfox.toml new file mode 100644 index 0000000000..ad637edcf8 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dawnfox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: dawnfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/dawnfox/alacritty.toml + +[colors.primary] +background = "#faf4ed" +foreground = "#575279" +dim_foreground = "#4c4769" +bright_foreground = "#625c87" + +[colors.cursor] +text = "#575279" +cursor = "#625c87" + +[colors.vi_mode_cursor] +text = "#575279" +cursor = "#56949f" + +[colors.search.matches] +foreground = "#575279" +background = "#b8cece" + +[colors.search.focused_match] +foreground = "#575279" +background = "#618774" + +[colors.footer_bar] +foreground = "#575279" +background = "#ebdfe4" + +[colors.hints.start] +foreground = "#575279" +background = "#d7827e" + +[colors.hints.end] +foreground = "#575279" +background = "#ebdfe4" + +[colors.selection] +text = "#575279" +background = "#d0d8d8" + +[colors.normal] +black = "#575279" +red = "#b4637a" +green = "#618774" +yellow = "#ea9d34" +blue = "#286983" +magenta = "#907aa9" +cyan = "#56949f" +white = "#e5e9f0" + +[colors.bright] +black = "#5f5695" +red = "#c26d85" +green = "#629f81" +yellow = "#eea846" +blue = "#2d81a3" +magenta = "#9a80b9" +cyan = "#5ca7b4" +white = "#e6ebf3" + +[colors.dim] +black = "#504c6b" +red = "#a5576d" +green = "#597668" +yellow = "#dd9024" +blue = "#295e73" +magenta = "#816b9a" +cyan = "#50848c" +white = "#c8cfde" diff --git a/Plugin/wxTerminalCtrl/themes/dayfox.toml b/Plugin/wxTerminalCtrl/themes/dayfox.toml new file mode 100644 index 0000000000..049bbc33be --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dayfox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: dayfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/dayfox/alacritty.toml + +[colors.primary] +background = "#f6f2ee" +foreground = "#3d2b5a" +dim_foreground = "#302b5d" +bright_foreground = "#643f61" + +[colors.cursor] +text = "#3d2b5a" +cursor = "#643f61" + +[colors.vi_mode_cursor] +text = "#3d2b5a" +cursor = "#287980" + +[colors.search.matches] +foreground = "#3d2b5a" +background = "#a4c1c2" + +[colors.search.focused_match] +foreground = "#3d2b5a" +background = "#396847" + +[colors.footer_bar] +foreground = "#3d2b5a" +background = "#d3c7bb" + +[colors.hints.start] +foreground = "#3d2b5a" +background = "#955f61" + +[colors.hints.end] +foreground = "#3d2b5a" +background = "#d3c7bb" + +[colors.selection] +text = "#3d2b5a" +background = "#e7d2be" + +[colors.normal] +black = "#352c24" +red = "#a5222f" +green = "#396847" +yellow = "#ac5402" +blue = "#2848a9" +magenta = "#6e33ce" +cyan = "#287980" +white = "#f2e9e1" + +[colors.bright] +black = "#534c45" +red = "#b3434e" +green = "#577f63" +yellow = "#b86e28" +blue = "#4863b6" +magenta = "#8452d5" +cyan = "#488d93" +white = "#f4ece6" + +[colors.dim] +black = "#2d251f" +red = "#8c1d28" +green = "#30583c" +yellow = "#924702" +blue = "#223d90" +magenta = "#5e2baf" +cyan = "#22676d" +white = "#cec6bf" diff --git a/Plugin/wxTerminalCtrl/themes/deep_space.toml b/Plugin/wxTerminalCtrl/themes/deep_space.toml new file mode 100644 index 0000000000..551d899d1d --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/deep_space.toml @@ -0,0 +1,33 @@ +# Source https//github.com/tyrannicaltoucan/vim-deep-space + +# Default colors +[colors.primary] +background = '#1b202a' +foreground = '#9aa7bd' + +# Colors the cursor will use if `custom_cursor_colors` is true +[colors.cursor] +text = '#232936' +cursor = '#51617d' + +# Normal colors +[colors.normal] +black = '#1b202a' +red = '#b15e7c' +green = '#709d6c' +yellow = '#b5a262' +blue = '#608cc3' +magenta = '#8f72bf' +cyan = '#56adb7' +white = '#9aa7bd' + +# Bright colors +[colors.bright] +black = '#232936' +red = '#b3785d' +green = '#709d6c' +yellow = '#d5b875' +blue = '#608cc3' +magenta = '#c47ebd' +cyan = '#51617d' +white = '#9aa7bd' diff --git a/Plugin/wxTerminalCtrl/themes/doom_one.toml b/Plugin/wxTerminalCtrl/themes/doom_one.toml new file mode 100644 index 0000000000..c7133f6d99 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/doom_one.toml @@ -0,0 +1,17 @@ +# Colors (Doom One) + +# Default colors +[colors.primary] +background = '#282c34' +foreground = '#bbc2cf' + +# Normal colors +[colors.normal] +black = '#282c34' +red = '#ff6c6b' +green = '#98be65' +yellow = '#ecbe7b' +blue = '#51afef' +magenta = '#c678dd' +cyan = '#46d9ff' +white = '#bbc2cf' diff --git a/Plugin/wxTerminalCtrl/themes/dracula.toml b/Plugin/wxTerminalCtrl/themes/dracula.toml new file mode 100644 index 0000000000..b64f482ca7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dracula.toml @@ -0,0 +1,28 @@ +# Colors (Dracula) + +# Default colors +[colors.primary] +background = '#282a36' +foreground = '#f8f8f2' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#ff5555' +green = '#50fa7b' +yellow = '#f1fa8c' +blue = '#bd93f9' +magenta = '#ff79c6' +cyan = '#8be9fd' +white = '#bbbbbb' + +# Bright colors +[colors.bright] +black = '#555555' +red = '#ff5555' +green = '#50fa7b' +yellow = '#f1fa8c' +blue = '#caa9fa' +magenta = '#ff79c6' +cyan = '#8be9fd' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/dracula_plus.toml b/Plugin/wxTerminalCtrl/themes/dracula_plus.toml new file mode 100644 index 0000000000..86a85498f4 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/dracula_plus.toml @@ -0,0 +1,29 @@ +# Colors (Dracula+) + +[colors.primary] +background = '#212121' +foreground = '#F8F8F2' + +[colors.cursor] +text = '#0E1415' +cursor = '#ECEFF4' + +[colors.normal] +black = '#21222C' +red = '#FF5555' +green = '#50FA7B' +yellow = '#FFCB6B' +blue = '#82AAFF' +magenta = '#C792EA' +cyan = '#8BE9FD' +white = '#F8F9F2' + +[colors.bright] +black = '#545454' +red = '#FF6E6E' +green = '#69FF94' +yellow = '#FFCB6B' +blue = '#D6ACFF' +magenta = '#FF92DF' +cyan = '#A4FFFF' +white = '#F8F8F2' diff --git a/Plugin/wxTerminalCtrl/themes/duskfox.toml b/Plugin/wxTerminalCtrl/themes/duskfox.toml new file mode 100644 index 0000000000..9348b23220 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/duskfox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: duskfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/duskfox/alacritty.toml + +[colors.primary] +background = "#232136" +foreground = "#e0def4" +dim_foreground = "#cdcbe0" +bright_foreground = "#eae8ff" + +[colors.cursor] +text = "#e0def4" +cursor = "#cdcbe0" + +[colors.vi_mode_cursor] +text = "#e0def4" +cursor = "#9ccfd8" + +[colors.search.matches] +foreground = "#e0def4" +background = "#63577d" + +[colors.search.focused_match] +foreground = "#e0def4" +background = "#a3be8c" + +[colors.footer_bar] +foreground = "#e0def4" +background = "#373354" + +[colors.hints.start] +foreground = "#e0def4" +background = "#ea9a97" + +[colors.hints.end] +foreground = "#e0def4" +background = "#373354" + +[colors.selection] +text = "#e0def4" +background = "#433c59" + +[colors.normal] +black = "#393552" +red = "#eb6f92" +green = "#a3be8c" +yellow = "#f6c177" +blue = "#569fba" +magenta = "#c4a7e7" +cyan = "#9ccfd8" +white = "#e0def4" + +[colors.bright] +black = "#47407d" +red = "#f083a2" +green = "#b1d196" +yellow = "#f9cb8c" +blue = "#65b1cd" +magenta = "#ccb1ed" +cyan = "#a6dae3" +white = "#e2e0f7" + +[colors.dim] +black = "#322e42" +red = "#d84f76" +green = "#8aa872" +yellow = "#e6a852" +blue = "#4a869c" +magenta = "#a580d2" +cyan = "#7bb8c1" +white = "#b1acde" diff --git a/Plugin/wxTerminalCtrl/themes/enfocado_dark.toml b/Plugin/wxTerminalCtrl/themes/enfocado_dark.toml new file mode 100644 index 0000000000..d4e2fde84f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/enfocado_dark.toml @@ -0,0 +1,29 @@ +# Theme: enfocado_dark +# Source: https://github.com/wuelnerdotexe/vim-enfocado + +# Default colors +[colors.primary] +background = '#181818' +foreground = '#b9b9b9' + +# Normal colors +[colors.normal] +black = '#3b3b3b' +red = '#ed4a46' +green = '#70b433' +yellow = '#dbb32d' +blue = '#368aeb' +magenta = '#eb6eb7' +cyan = '#3fc5b7' +white = '#b9b9b9' + +# Bright colors +[colors.bright] +black = '#777777' +red = '#ff5e56' +green = '#83c746' +yellow = '#efc541' +blue = '#4f9cfe' +magenta = '#ff81ca' +cyan = '#56d8c9' +white = '#dedede' diff --git a/Plugin/wxTerminalCtrl/themes/enfocado_light.toml b/Plugin/wxTerminalCtrl/themes/enfocado_light.toml new file mode 100644 index 0000000000..5c27f561a3 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/enfocado_light.toml @@ -0,0 +1,29 @@ +# Theme: enfocado_light +# Source: https://github.com/wuelnerdotexe/vim-enfocado + +# Default colors +[colors.primary] +background = '#ffffff' +foreground = '#474747' + +# Normal colors +[colors.normal] +black = '#282828' +red = '#d6000c' +green = '#1d9700' +yellow = '#c49700' +blue = '#0064e4' +magenta = '#dd0f9d' +cyan = '#00ad9c' +white = '#cdcdcd' + +# Bright colors +[colors.bright] +black = '#878787' +red = '#df0000' +green = '#008400' +yellow = '#af8500' +blue = '#0054cf' +magenta = '#c7008b' +cyan = '#009a8a' +white = '#ebebeb' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_dark.toml b/Plugin/wxTerminalCtrl/themes/everforest_dark.toml new file mode 100644 index 0000000000..e9fe19594e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_dark.toml @@ -0,0 +1,28 @@ +# Colors (Everforest Dark Medium) + +# Default colors +[colors.primary] +background = '#2d353b' +foreground = '#d3c6aa' + +# Normal colors +[colors.normal] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +# Bright colors +[colors.bright] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_dark_hard.toml b/Plugin/wxTerminalCtrl/themes/everforest_dark_hard.toml new file mode 100644 index 0000000000..113f9834e9 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_dark_hard.toml @@ -0,0 +1,37 @@ +# Colors (Everforest Dark Hard) + +[colors.primary] +background = '#272e33' +foreground = '#d3c6aa' + +[colors.normal] +black = '#414b50' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.bright] +black = '#414b50' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.selection] +background = '#4c3743' +text = '#d3c6aa' + +[colors.search.matches] +background = '#a7c080' +foreground = '#272e33' + +[colors.search.focused_match] +background = '#e67e80' +foreground = '#272e33' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_dark_medium.toml b/Plugin/wxTerminalCtrl/themes/everforest_dark_medium.toml new file mode 100644 index 0000000000..6940cbac78 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_dark_medium.toml @@ -0,0 +1,37 @@ +# Colors (Everforest Dark Medium) + +[colors.primary] +background = '#2d353b' +foreground = '#d3c6aa' + +[colors.normal] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.bright] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.selection] +background = '#543a48' +text = '#d3c6aa' + +[colors.search.matches] +background = '#a7c080' +foreground = '#2d353b' + +[colors.search.focused_match] +background = '#e67e80' +foreground = '#2d353b' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_dark_soft.toml b/Plugin/wxTerminalCtrl/themes/everforest_dark_soft.toml new file mode 100644 index 0000000000..226d6b90a4 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_dark_soft.toml @@ -0,0 +1,37 @@ +# Colors (Everforest Dark Soft) + +[colors.primary] +background = '#333c43' +foreground = '#d3c6aa' + +[colors.normal] +black = '#4d5960' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.bright] +black = '#4d5960' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.selection] +background = '#5c3f4f' +text = '#d3c6aa' + +[colors.search.matches] +background = '#a7c080' +foreground = '#333c43' + +[colors.search.focused_match] +background = '#e67e80' +foreground = '#333c43' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_light.toml b/Plugin/wxTerminalCtrl/themes/everforest_light.toml new file mode 100644 index 0000000000..bd002d58f7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_light.toml @@ -0,0 +1,28 @@ +# Colors (Everforest Light Medium) + +# Default colors +[colors.primary] +background = '#fdf6e3' +foreground = '#5c6a72' + +# Normal colors +[colors.normal] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#e0dcc7' + +# Bright Colors +[colors.bright] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#e0dcc7' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_light_hard.toml b/Plugin/wxTerminalCtrl/themes/everforest_light_hard.toml new file mode 100644 index 0000000000..b88bb17148 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_light_hard.toml @@ -0,0 +1,37 @@ +# Colors (Everforest Light Hard) + +[colors.primary] +background = '#fffbef' +foreground = '#5c6a72' + +[colors.normal] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#e8e5d5' + +[colors.bright] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#e8e5d5' + +[colors.selection] +background = '#f0f2d4' +text = '#5c6a72' + +[colors.search.matches] +background = '#8da101' +foreground = '#fffbef' + +[colors.search.focused_match] +background = '#f85552' +foreground = '#fffbef' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_light_medium.toml b/Plugin/wxTerminalCtrl/themes/everforest_light_medium.toml new file mode 100644 index 0000000000..5fbe2e810a --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_light_medium.toml @@ -0,0 +1,37 @@ +# Colors (Everforest Light Medium) + +[colors.primary] +background = '#fdf6e3' +foreground = '#5c6a72' + +[colors.normal] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#e0dcc7' + +[colors.bright] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#e0dcc7' + +[colors.selection] +background = '#eaedc8' +text = '#5c6a72' + +[colors.search.matches] +background = '#8da101' +foreground = '#fdf6e3' + +[colors.search.focused_match] +background = '#f85552' +foreground = '#fdf6e3' diff --git a/Plugin/wxTerminalCtrl/themes/everforest_light_soft.toml b/Plugin/wxTerminalCtrl/themes/everforest_light_soft.toml new file mode 100644 index 0000000000..ba2639c1d7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/everforest_light_soft.toml @@ -0,0 +1,37 @@ +# Colors (Everforest Light Soft) + +[colors.primary] +background = '#f3ead3' +foreground = '#5c6a72' + +[colors.normal] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#d8d3ba' + +[colors.bright] +black = '#5c6a72' +red = '#f85552' +green = '#8da101' +yellow = '#dfa000' +blue = '#3a94c5' +magenta = '#df69ba' +cyan = '#35a77c' +white = '#d8d3ba' + +[colors.selection] +background = '#e1e4bd' +text = '#5c6a72' + +[colors.search.matches] +background = '#8da101' +foreground = '#f3ead3' + +[colors.search.focused_match] +background = '#f85552' +foreground = '#f3ead3' diff --git a/Plugin/wxTerminalCtrl/themes/falcon.toml b/Plugin/wxTerminalCtrl/themes/falcon.toml new file mode 100644 index 0000000000..e5b027b68a --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/falcon.toml @@ -0,0 +1,33 @@ +# falcon colorscheme for alacritty +# by fenetikm, https//github.com/fenetikm/falcon + +# Default colors +[colors.primary] +background = '#020221' +foreground = '#b4b4b9' + +[colors.cursor] +text = '#020221' +cursor = '#ffe8c0' + +# Normal colors +[colors.normal] +black = '#000004' +red = '#ff3600' +green = '#718e3f' +yellow = '#ffc552' +blue = '#635196' +magenta = '#ff761a' +cyan = '#34bfa4' +white = '#b4b4b9' + +# Bright colors +[colors.bright] +black = '#020221' +red = '#ff8e78' +green = '#b1bf75' +yellow = '#ffd392' +blue = '#99a4bc' +magenta = '#ffb07b' +cyan = '#8bccbf' +white = '#f8f8ff' diff --git a/Plugin/wxTerminalCtrl/themes/flat_remix.toml b/Plugin/wxTerminalCtrl/themes/flat_remix.toml new file mode 100644 index 0000000000..907ac82703 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/flat_remix.toml @@ -0,0 +1,23 @@ +[colors.primary] +background = '#272a34' +foreground = '#FFFFFF' + +[colors.normal] +black = '#1F2229' +red = '#EC0101' +green = '#47D4B9' +yellow = '#FF8A18' +blue = '#277FFF' +magenta = '#D71655' +cyan = '#05A1F7' +white = '#FFFFFF' + +[colors.bright] +black = '#1F2229' +red = '#D41919' +green = '#5EBDAB' +yellow = '#FEA44C' +blue = '#367bf0' +magenta = '#BF2E5D' +cyan = '#49AEE6' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/flexoki.toml b/Plugin/wxTerminalCtrl/themes/flexoki.toml new file mode 100644 index 0000000000..f4b3b37019 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/flexoki.toml @@ -0,0 +1,46 @@ +# based on https//stephango.com/flexoki and https//github.com/kepano/flexoki/tree/main/alacritty + +# Default colors +[colors.primary] +background = '#282726' +foreground = '#FFFCF0' +dim_foreground = '#FFFCF0' +bright_foreground = '#FFFCF0' + +# Cursor colors +[colors.cursor] +text = '#FFFCF0' +cursor = '#FFFCF0' + +# Normal colors +[colors.normal] +black = '#100F0F' +red = '#AF3029' +green = '#66800B' +yellow = '#AD8301' +blue = '#205EA6' +magenta = '#A02F6F' +cyan = '#24837B' +white = '#FFFCF0' + +# Bright colors +[colors.bright] +black = '#100F0F' +red = '#D14D41' +green = '#879A39' +yellow = '#D0A215' +blue = '#4385BE' +magenta = '#CE5D97' +cyan = '#3AA99F' +white = '#FFFCF0' + +# Dim colors +[colors.dim] +black = '#100F0F' +red = '#AF3029' +green = '#66800B' +yellow = '#AD8301' +blue = '#205EA6' +magenta = '#A02F6F' +cyan = '#24837B' +white = '#FFFCF0' diff --git a/Plugin/wxTerminalCtrl/themes/github_dark.toml b/Plugin/wxTerminalCtrl/themes/github_dark.toml new file mode 100644 index 0000000000..dc3a338104 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_dark.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#24292e' +foreground = '#d1d5da' + +# Normal colors +[colors.normal] +black = '#586069' +red = '#ea4a5a' +green = '#34d058' +yellow = '#ffea7f' +blue = '#2188ff' +magenta = '#b392f0' +cyan = '#39c5cf' +white = '#d1d5da' + +# Bright colors +[colors.bright] +black = '#959da5' +red = '#f97583' +green = '#85e89d' +yellow = '#ffea7f' +blue = '#79b8ff' +magenta = '#b392f0' +cyan = '#56d4dd' +white = '#fafbfc' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#f97583' diff --git a/Plugin/wxTerminalCtrl/themes/github_dark_colorblind.toml b/Plugin/wxTerminalCtrl/themes/github_dark_colorblind.toml new file mode 100644 index 0000000000..76bb4f251f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_dark_colorblind.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#0d1117' +foreground = '#b3b1ad' + +# Normal colors +[colors.normal] +black = '#484f58' +red = '#ff7b72' +green = '#3fb950' +yellow = '#d29922' +blue = '#58a6ff' +magenta = '#bc8cff' +cyan = '#39c5cf' +white = '#b1bac4' + +# Bright colors +[colors.bright] +black = '#6e7681' +red = '#ffa198' +green = '#56d364' +yellow = '#e3b341' +blue = '#79c0ff' +magenta = '#d2a8ff' +cyan = '#56d4dd' +white = '#f0f6fc' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#ffa198' diff --git a/Plugin/wxTerminalCtrl/themes/github_dark_default.toml b/Plugin/wxTerminalCtrl/themes/github_dark_default.toml new file mode 100644 index 0000000000..76bb4f251f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_dark_default.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#0d1117' +foreground = '#b3b1ad' + +# Normal colors +[colors.normal] +black = '#484f58' +red = '#ff7b72' +green = '#3fb950' +yellow = '#d29922' +blue = '#58a6ff' +magenta = '#bc8cff' +cyan = '#39c5cf' +white = '#b1bac4' + +# Bright colors +[colors.bright] +black = '#6e7681' +red = '#ffa198' +green = '#56d364' +yellow = '#e3b341' +blue = '#79c0ff' +magenta = '#d2a8ff' +cyan = '#56d4dd' +white = '#f0f6fc' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#ffa198' diff --git a/Plugin/wxTerminalCtrl/themes/github_dark_dimmed.toml b/Plugin/wxTerminalCtrl/themes/github_dark_dimmed.toml new file mode 100644 index 0000000000..851cbfeffb --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_dark_dimmed.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#22272e' +foreground = '#768390' + +# Normal colors +[colors.normal] +black = '#545d68' +red = '#f47067' +green = '#57ab5a' +yellow = '#c69026' +blue = '#539bf5' +magenta = '#b083f0' +cyan = '#39c5cf' +white = '#909dab' + +# Bright colors +[colors.bright] +black = '#636e7b' +red = '#ff938a' +green = '#6bc46d' +yellow = '#daaa3f' +blue = '#6cb6ff' +magenta = '#dcbdfb' +cyan = '#56d4dd' +white = '#cdd9e5' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#ff938a' diff --git a/Plugin/wxTerminalCtrl/themes/github_dark_high_contrast.toml b/Plugin/wxTerminalCtrl/themes/github_dark_high_contrast.toml new file mode 100644 index 0000000000..e1b1b3eb98 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_dark_high_contrast.toml @@ -0,0 +1,33 @@ +# (Github Dark High Contrast) Colors for Alacritty + +# Default colors +[colors.primary] +background = '#0a0c10' +foreground = '#f0f3f6' + +# Cursor colors +[colors.cursor] +text = '#0a0c10' +cursor = '#f0f3f6' + +# Normal colors +[colors.normal] +black = '#7a828e' +red = '#ff9492' +green = '#26cd4d' +yellow = '#f0b72f' +blue = '#71b7ff' +magenta = '#cb9eff' +cyan = '#39c5cf' +white = '#d9dee3' + +# Bright colors +[colors.bright] +black = '#9ea7b3' +red = '#ffb1af' +green = '#4ae168' +yellow = '#f7c843' +blue = '#91cbff' +magenta = '#cb9eff' +cyan = '#39c5cf' +white = '#d9dee3' diff --git a/Plugin/wxTerminalCtrl/themes/github_dark_tritanopia.toml b/Plugin/wxTerminalCtrl/themes/github_dark_tritanopia.toml new file mode 100644 index 0000000000..e24c822d83 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_dark_tritanopia.toml @@ -0,0 +1,33 @@ +# (Github Dark Tritanopia) Colors for Alacritty + +# Default colors +[colors.primary] +background = '#0d1117' +foreground = '#c9d1d9' + +# Cursor colors +[colors.cursor] +text = '#0d1117' +cursor = '#c9d1d9' + +# Normal colors +[colors.normal] +black = '#484f58' +red = '#ff7b72' +green = '#58a6ff' +yellow = '#d29922' +blue = '#58a6ff' +magenta = '#bc8cff' +cyan = '#39c5cf' +white = '#b1bac4' + +# Bright colors +[colors.bright] +black = '#6e7681' +red = '#ffa198' +green = '#79c0ff' +yellow = '#e3b341' +blue = '#79c0ff' +magenta = '#bc8cff' +cyan = '#39c5cf' +white = '#b1bac4' diff --git a/Plugin/wxTerminalCtrl/themes/github_light.toml b/Plugin/wxTerminalCtrl/themes/github_light.toml new file mode 100644 index 0000000000..4c6524a6eb --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_light.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#ffffff' +foreground = '#24292f' + +# Normal colors +[colors.normal] +black = '#24292e' +red = '#d73a49' +green = '#28a745' +yellow = '#dbab09' +blue = '#0366d6' +magenta = '#5a32a3' +cyan = '#0598bc' +white = '#6a737d' + +# Bright colors +[colors.bright] +black = '#959da5' +red = '#cb2431' +green = '#22863a' +yellow = '#b08800' +blue = '#005cc5' +magenta = '#5a32a3' +cyan = '#3192aa' +white = '#d1d5da' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#cb2431' diff --git a/Plugin/wxTerminalCtrl/themes/github_light_colorblind.toml b/Plugin/wxTerminalCtrl/themes/github_light_colorblind.toml new file mode 100644 index 0000000000..4e02300744 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_light_colorblind.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#ffffff' +foreground = '#0E1116' + +# Normal colors +[colors.normal] +black = '#24292f' +red = '#cf222e' +green = '#116329' +yellow = '#4d2d00' +blue = '#0969da' +magenta = '#8250df' +cyan = '#1b7c83' +white = '#6e7781' + +# Bright colors +[colors.bright] +black = '#57606a' +red = '#a40e26' +green = '#1a7f37' +yellow = '#633c01' +blue = '#218bff' +magenta = '#a475f9' +cyan = '#3192aa' +white = '#8c959f' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#a40e26' diff --git a/Plugin/wxTerminalCtrl/themes/github_light_default.toml b/Plugin/wxTerminalCtrl/themes/github_light_default.toml new file mode 100644 index 0000000000..4e02300744 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_light_default.toml @@ -0,0 +1,36 @@ +# github Alacritty Colors + +# Default colors +[colors.primary] +background = '#ffffff' +foreground = '#0E1116' + +# Normal colors +[colors.normal] +black = '#24292f' +red = '#cf222e' +green = '#116329' +yellow = '#4d2d00' +blue = '#0969da' +magenta = '#8250df' +cyan = '#1b7c83' +white = '#6e7781' + +# Bright colors +[colors.bright] +black = '#57606a' +red = '#a40e26' +green = '#1a7f37' +yellow = '#633c01' +blue = '#218bff' +magenta = '#a475f9' +cyan = '#3192aa' +white = '#8c959f' + +[[colors.indexed_colors]] +index = 16 +color = '#d18616' + +[[colors.indexed_colors]] +index = 17 +color = '#a40e26' diff --git a/Plugin/wxTerminalCtrl/themes/github_light_high_contrast.toml b/Plugin/wxTerminalCtrl/themes/github_light_high_contrast.toml new file mode 100644 index 0000000000..ee5b9c7094 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_light_high_contrast.toml @@ -0,0 +1,33 @@ +# (Github Light High Contrast) Colors for Alacritty + +# Default colors +[colors.primary] +background = '#ffffff' +foreground = '#010409' + +# Cursor colors +[colors.cursor] +text = '#ffffff' +cursor = '#0e1116' + +# Normal colors +[colors.normal] +black = '#0e1116' +red = '#a0111f' +green = '#024c1a' +yellow = '#3f2200' +blue = '#0349b4' +magenta = '#622cbc' +cyan = '#1b7c83' +white = '#66707b' + +# Bright colors +[colors.bright] +black = '#4b535d' +red = '#86061d' +green = '#055d20' +yellow = '#4e2c00' +blue = '#1168e3' +magenta = '#622cbc' +cyan = '#1b7c83' +white = '#66707b' diff --git a/Plugin/wxTerminalCtrl/themes/github_light_tritanopia.toml b/Plugin/wxTerminalCtrl/themes/github_light_tritanopia.toml new file mode 100644 index 0000000000..6b68f6a976 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/github_light_tritanopia.toml @@ -0,0 +1,33 @@ +# (Github Light Tritanopia) Colors for Alacritty + +# Default colors +[colors.primary] +background = '#ffffff' +foreground = '#1b1f24' + +# Cursor colors +[colors.cursor] +text = '#ffffff' +cursor = '#24292f' + +# Normal colors +[colors.normal] +black = '#24292f' +red = '#cf222e' +green = '#0550ae' +yellow = '#4d2d00' +blue = '#0969da' +magenta = '#8250df' +cyan = '#1b7c83' +white = '#6e7781' + +# Bright colors +[colors.bright] +black = '#57606a' +red = '#a40e26' +green = '#0969da' +yellow = '#633c01' +blue = '#218bff' +magenta = '#8250df' +cyan = '#1b7c83' +white = '#6e7781' diff --git a/Plugin/wxTerminalCtrl/themes/gnome_terminal.toml b/Plugin/wxTerminalCtrl/themes/gnome_terminal.toml new file mode 100644 index 0000000000..a6d21fbb4d --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gnome_terminal.toml @@ -0,0 +1,28 @@ +# Gnome (Gnome Terminal Default) + +# Default colors +[colors.primary] +background = '#1e1e1e' +foreground = '#ffffff' + +# Normal colors +[colors.normal] +black = '#171421' +red = '#c01c28' +green = '#26a269' +yellow = '#a2734c' +blue = '#12488b' +magenta = '#a347ba' +cyan = '#2aa1b3' +white = '#d0cfcc' + +# Bright colors +[colors.bright] +black = '#5e5c64' +red = '#f66151' +green = '#33d17a' +yellow = '#e9ad0c' +blue = '#2a7bde' +magenta = '#c061cb' +cyan = '#33c7de' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/google.toml b/Plugin/wxTerminalCtrl/themes/google.toml new file mode 100644 index 0000000000..001c45d823 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/google.toml @@ -0,0 +1,23 @@ +[colors.primary] +background = '#1d1f21' +foreground = '#c5c8c6' + +[colors.normal] +black = '#1d1f21' +red = '#cc342b' +green = '#198844' +yellow = '#fba922' +blue = '#3971ed' +magenta = '#a36ac7' +cyan = '#3971ed' +white = '#c5c8c6' + +[colors.bright] +black = '#969896' +red = '#cc342b' +green = '#198844' +yellow = '#fba922' +blue = '#3971ed' +magenta = '#a36ac7' +cyan = '#3971ed' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/gotham.toml b/Plugin/wxTerminalCtrl/themes/gotham.toml new file mode 100644 index 0000000000..d4a405ddce --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gotham.toml @@ -0,0 +1,28 @@ +# Colors (Gotham) + +# Default colors +[colors.primary] +background = '#0a0f14' +foreground = '#98d1ce' + +# Normal colors +[colors.normal] +black = '#0a0f14' +red = '#c33027' +green = '#26a98b' +yellow = '#edb54b' +blue = '#195465' +magenta = '#4e5165' +cyan = '#33859d' +white = '#98d1ce' + +# Bright colors +[colors.bright] +black = '#10151b' +red = '#d26939' +green = '#081f2d' +yellow = '#245361' +blue = '#093748' +magenta = '#888ba5' +cyan = '#599caa' +white = '#d3ebe9' diff --git a/Plugin/wxTerminalCtrl/themes/gruber_darker.toml b/Plugin/wxTerminalCtrl/themes/gruber_darker.toml new file mode 100644 index 0000000000..50b437791b --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruber_darker.toml @@ -0,0 +1,26 @@ +# author: rexim +# from: https://github.com/rexim/gruber-darker-theme + +[colors.primary] +background = "#181818" +foreground = "#E4E4E4" + +[colors.normal] +black = "#181818" +red = "#F43841" +green = "#73D936" +yellow = "#FFDD33" +blue = "#96A6C8" +magenta = "#9E95C7" +cyan = "#95A99F" +white = "#E4E4E4" + +[colors.bright] +black = "#52494E" +red = "#FF4F58" +green = "#73D936" +yellow = "#FFDD33" +blue = "#96A6C8" +magenta = "#AFAFD7" +cyan = "#95A99F" +white = "#F5F5F5" diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_dark.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_dark.toml new file mode 100644 index 0000000000..d2845cd02f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_dark.toml @@ -0,0 +1,30 @@ +# Colors (Gruvbox dark) + +# Default colors +[colors.primary] +# hard contrast background = = '#1d2021' +background = '#282828' +# soft contrast background = = '#32302f' +foreground = '#ebdbb2' + +# Normal colors +[colors.normal] +black = '#282828' +red = '#cc241d' +green = '#98971a' +yellow = '#d79921' +blue = '#458588' +magenta = '#b16286' +cyan = '#689d6a' +white = '#a89984' + +# Bright colors +[colors.bright] +black = '#928374' +red = '#fb4934' +green = '#b8bb26' +yellow = '#fabd2f' +blue = '#83a598' +magenta = '#d3869b' +cyan = '#8ec07c' +white = '#ebdbb2' diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_light.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_light.toml new file mode 100644 index 0000000000..d2852dbd82 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_light.toml @@ -0,0 +1,30 @@ +# Colors (Gruvbox light) + +# Default colors +[colors.primary] +# hard contrast background = = '#f9f5d7' +background = '#fbf1c7' +# soft contrast background = = '#f2e5bc' +foreground = '#3c3836' + +# Normal colors +[colors.normal] +black = '#fbf1c7' +red = '#cc241d' +green = '#98971a' +yellow = '#d79921' +blue = '#458588' +magenta = '#b16286' +cyan = '#689d6a' +white = '#7c6f64' + +# Bright colors +[colors.bright] +black = '#928374' +red = '#9d0006' +green = '#79740e' +yellow = '#b57614' +blue = '#076678' +magenta = '#8f3f71' +cyan = '#427b58' +white = '#3c3836' diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_material.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_material.toml new file mode 100644 index 0000000000..02accfde0f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_material.toml @@ -0,0 +1,25 @@ +# Colors (Gruvbox Material Dark Medium) + +[colors.primary] +background = '#282828' +foreground = '#dfbf8e' + +[colors.normal] +black = '#665c54' +red = '#ea6962' +green = '#a9b665' +yellow = '#e78a4e' +blue = '#7daea3' +magenta = '#d3869b' +cyan = '#89b482' +white = '#dfbf8e' + +[colors.bright] +black = '#928374' +red = '#ea6962' +green = '#a9b665' +yellow = '#e3a84e' +blue = '#7daea3' +magenta = '#d3869b' +cyan = '#89b482' +white = '#dfbf8e' diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_dark.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_dark.toml new file mode 100644 index 0000000000..f9fb56d32d --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_dark.toml @@ -0,0 +1,28 @@ +# Colors (Gruvbox Material Hard Dark) + +# Default colors +[colors.primary] +background = '#1d2021' +foreground = '#d4be98' + +# Normal colors +[colors.normal] +black = '#32302f' +red = '#ea6962' +green = '#a9b665' +yellow = '#d8a657' +blue = '#7daea3' +magenta = '#d3869b' +cyan = '#89b482' +white = '#d4be98' + +# Bright colors (same as normal colors) +[colors.bright] +black = '#32302f' +red = '#ea6962' +green = '#a9b665' +yellow = '#d8a657' +blue = '#7daea3' +magenta = '#d3869b' +cyan = '#89b482' +white = '#d4be98' diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_light.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_light.toml new file mode 100644 index 0000000000..e17ebdfa98 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_material_hard_light.toml @@ -0,0 +1,28 @@ +# Colors (Gruvbox Material Hard Light) + +# Default colors +[colors.primary] +background = '#f9f5d7' +foreground = '#654735' + +# Normal colors +[colors.normal] +black = '#654735' +red = '#c14a4a' +green = '#6c782e' +yellow = '#b47109' +blue = '#45707a' +magenta = '#945e80' +cyan = '#4c7a5d' +white = '#f2e5bc' + +# Bright colors (same as normal colors) +[colors.bright] +black = '#654735' +red = '#c14a4a' +green = '#6c782e' +yellow = '#b47109' +blue = '#45707a' +magenta = '#945e80' +cyan = '#4c7a5d' +white = '#f2e5bc' diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_dark.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_dark.toml new file mode 100644 index 0000000000..1bbbfe88fe --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_dark.toml @@ -0,0 +1,28 @@ +# Colors (Gruvbox Material Medium Dark) + +# Default colors +[colors.primary] +background = '#282828' +foreground = '#d4be98' + +# Normal colors +[colors.normal] +black = '#3c3836' +red = '#ea6962' +green = '#a9b665' +yellow = '#d8a657' +blue = '#7daea3' +magenta = '#d3869b' +cyan = '#89b482' +white = '#d4be98' + +# Bright colors (same as normal colors) +[colors.bright] +black = '#3c3836' +red = '#ea6962' +green = '#a9b665' +yellow = '#d8a657' +blue = '#7daea3' +magenta = '#d3869b' +cyan = '#89b482' +white = '#d4be98' diff --git a/Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_light.toml b/Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_light.toml new file mode 100644 index 0000000000..d43ac161a8 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/gruvbox_material_medium_light.toml @@ -0,0 +1,28 @@ +# Colors (Gruvbox Material Medium Light) + +# Default colors +[colors.primary] +background = '#fbf1c7' +foreground = '#654735' + +# Normal colors +[colors.normal] +black = '#654735' +red = '#c14a4a' +green = '#6c782e' +yellow = '#b47109' +blue = '#45707a' +magenta = '#945e80' +cyan = '#4c7a5d' +white = '#eee0b7' + +# Bright colors (same as normal colors) +[colors.bright] +black = '#654735' +red = '#c14a4a' +green = '#6c782e' +yellow = '#b47109' +blue = '#45707a' +magenta = '#945e80' +cyan = '#4c7a5d' +white = '#eee0b7' diff --git a/Plugin/wxTerminalCtrl/themes/hardhacker.toml b/Plugin/wxTerminalCtrl/themes/hardhacker.toml new file mode 100644 index 0000000000..a3b0b64b29 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/hardhacker.toml @@ -0,0 +1,33 @@ +# hardhacker colorscheme for alacritty +# by xin wu, https//github.com/hardhackerlabs/theme-alacritty + +# Default colors +[colors.primary] +background = '#282433' +foreground = '#eee9fc' + +[colors.cursor] +text = '#eee9fc' +cursor = '#eee9fc' + +# Normal colors +[colors.normal] +black = '#282433' +red = '#e965a5' +green = '#b1f2a7' +yellow = '#ebde76' +blue = '#b1baf4' +magenta = '#e192ef' +cyan = '#b3f4f3' +white = '#eee9fc' + +# Bright colors +[colors.bright] +black = '#3f3951' +red = '#e965a5' +green = '#b1f2a7' +yellow = '#ebde76' +blue = '#b1baf4' +magenta = '#e192ef' +cyan = '#b3f4f3' +white = '#eee9fc' diff --git a/Plugin/wxTerminalCtrl/themes/hatsunemiku.toml b/Plugin/wxTerminalCtrl/themes/hatsunemiku.toml new file mode 100644 index 0000000000..d39317a318 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/hatsunemiku.toml @@ -0,0 +1,23 @@ +[colors.primary] +background = '#242829' +foreground = '#dcd7d7' + +[colors.normal] +black = '#242829' +red = '#df2683' +green = '#13868c' +yellow = '#fcfcdf' +blue = '#1a86b9' +magenta = '#bc7fd2' +cyan = '#7cc7d6' +white = '#4a4b4b' + +[colors.bright] +black = '#7b8b99' +red = '#df2683' +green = '#13868c' +yellow = '#fcfcdf' +blue = '#1a86b9' +magenta = '#bc7fd2' +cyan = '#7cc7d6' +white = '#dcd7d7' diff --git a/Plugin/wxTerminalCtrl/themes/high_contrast.toml b/Plugin/wxTerminalCtrl/themes/high_contrast.toml new file mode 100644 index 0000000000..c90466bb2f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/high_contrast.toml @@ -0,0 +1,33 @@ +# Colors (High Contrast) + +# Default colors +[colors.primary] +background = '#444444' +foreground = '#dddddd' + +# Colors the cursor will use if `custom_cursor_colors` is true +[colors.cursor] +text = '#aaaaaa' +cursor = '#ffffff' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#ff0000' +green = '#00ff00' +yellow = '#ffff00' +blue = '#0000ff' +magenta = '#ff00ff' +cyan = '#00ffff' +white = '#ffffff' + +# Bright colors +[colors.bright] +black = '#000000' +red = '#ff0000' +green = '#00ff00' +yellow = '#ffff00' +blue = '#0000ff' +magenta = '#ff00ff' +cyan = '#00ffff' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/horizon_dark.toml b/Plugin/wxTerminalCtrl/themes/horizon_dark.toml new file mode 100644 index 0000000000..009a784284 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/horizon_dark.toml @@ -0,0 +1,28 @@ +# Colors (Horizon Dark) + +# Primary colors +[colors.primary] +background = '#1c1e26' +foreground = '#e0e0e0' + +# Normal colors +[colors.normal] +black = '#16161c' +red = '#e95678' +green = '#29d398' +yellow = '#fab795' +blue = '#26bbd9' +magenta = '#ee64ac' +cyan = '#59e1e3' +white = '#d5d8da' + +# Bright colors +[colors.bright] +black = '#5b5858' +red = '#ec6a88' +green = '#3fdaa4' +yellow = '#fbc3a7' +blue = '#3fc4de' +magenta = '#f075b5' +cyan = '#6be4e6' +white = '#d5d8da' diff --git a/Plugin/wxTerminalCtrl/themes/hyper.toml b/Plugin/wxTerminalCtrl/themes/hyper.toml new file mode 100644 index 0000000000..89256b223f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/hyper.toml @@ -0,0 +1,32 @@ +# Colors (Hyper) + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#ffffff' + +[colors.cursor] +text = '#F81CE5' +cursor = '#ffffff' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#fe0100' +green = '#33ff00' +yellow = '#feff00' +blue = '#0066ff' +magenta = '#cc00ff' +cyan = '#00ffff' +white = '#d0d0d0' + +# Bright colors +[colors.bright] +black = '#808080' +red = '#fe0100' +green = '#33ff00' +yellow = '#feff00' +blue = '#0066ff' +magenta = '#cc00ff' +cyan = '#00ffff' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/iceberg.toml b/Plugin/wxTerminalCtrl/themes/iceberg.toml new file mode 100644 index 0000000000..3e7a652088 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/iceberg.toml @@ -0,0 +1,36 @@ +# Default colors +[colors.primary] +background = "#161821" +foreground = "#c6c8d1" + +# Cursor colors +[colors.cursor] +text = "#161821" +cursor = "#c6c8d1" + +# Selection colors +[colors.selection] +text = "CellForeground" +background = "#272c42" + +# Normal colors +[colors.normal] +black = "#1e2132" +red = "#e27878" +green = "#b4be82" +yellow = "#e2a478" +blue = "#84a0c6" +magenta = "#a093c7" +cyan = "#89b8c2" +white = "#c6c8d1" + +# Bright colors +[colors.bright] +black = "#6b7089" +red = "#e98989" +green = "#c0ca8e" +yellow = "#e9b189" +blue = "#91acd1" +magenta = "#ada0d3" +cyan = "#95c4ce" +white = "#d2d4de" diff --git a/Plugin/wxTerminalCtrl/themes/inferno.toml b/Plugin/wxTerminalCtrl/themes/inferno.toml new file mode 100644 index 0000000000..5157fabd7c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/inferno.toml @@ -0,0 +1,29 @@ +# Inferno theme +# Source https//github.com/hafiz-muhammad/inferno-alacritty-theme + +# Default colors +[colors.primary] +background = '#270d06' +foreground = '#d9d9d9' + +# Normal colors +[colors.normal] +black = '#330000' +red = '#ff3300' +green = '#ff6600' +yellow = '#ff9900' +blue = '#ffcc00' +magenta = '#ff6600' +cyan = '#ff9900' +white = '#d9d9d9' + +# Bright colors +[colors.bright] +black = '#663300' +red = '#ff6633' +green = '#ff9966' +yellow = '#ffcc99' +blue = '#ffcc33' +magenta = '#ff9966' +cyan = '#ffcc99' +white = '#d9d9d9' diff --git a/Plugin/wxTerminalCtrl/themes/iris.toml b/Plugin/wxTerminalCtrl/themes/iris.toml new file mode 100644 index 0000000000..38401a141f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/iris.toml @@ -0,0 +1,28 @@ +# Colors (Iris) + +# Default colors +[colors.primary] +background = '#272537' +foreground = '#e8e6e9' + +# Normal colors +[colors.normal] +black = '#111133' +red = '#d61d52' +green = '#48a842' +yellow = '#e1a51c' +blue = '#5556d3' +magenta = '#8650d3' +cyan = '#52afb7' +white = '#9f9aa7' + +# Bright colors +[colors.bright] +black = '#484867' +red = '#e15877' +green = '#71ab3a' +yellow = '#c6a642' +blue = '#6d6dc9' +magenta = '#956ad3' +cyan = '#6ab6bd' +white = '#e8e6e9' diff --git a/Plugin/wxTerminalCtrl/themes/iterm.toml b/Plugin/wxTerminalCtrl/themes/iterm.toml new file mode 100644 index 0000000000..018f6c89fe --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/iterm.toml @@ -0,0 +1,28 @@ +# Colors (iTerm 2 default theme) + +# Default colors +[colors.primary] +background = '#101421' +foreground = '#fffbf6' + +# Normal colors +[colors.normal] +black = '#2e2e2e' +red = '#eb4129' +green = '#abe047' +yellow = '#f6c744' +blue = '#47a0f3' +magenta = '#7b5cb0' +cyan = '#64dbed' +white = '#e5e9f0' + +# Bright colors +[colors.bright] +black = '#565656' +red = '#ec5357' +green = '#c0e17d' +yellow = '#f9da6a' +blue = '#49a4f8' +magenta = '#a47de9' +cyan = '#99faf2' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/iterm_solardark.toml b/Plugin/wxTerminalCtrl/themes/iterm_solardark.toml new file mode 100644 index 0000000000..138a67e87e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/iterm_solardark.toml @@ -0,0 +1,32 @@ +# Colors (iTerm 2 SolarDark theme) + +# Default colors +[colors.primary] +background = '#002833' +foreground = '#a5abb6' + +[colors.cursor] +text = "#003440" +cursor = "#f86100" + +# Normal colors +[colors.normal] +black = '#003440' +red = '#dc312e' +green = '#7cc67f' +yellow = '#b58900' +blue = '#268ad2' +magenta = '#d33582' +cyan = '#2aa197' +white = '#eee8d5' + +# Bright colors +[colors.bright] +black = '#00779a' +red = '#f9314b' +green = '#5bee96' +yellow = '#c08f34' +blue = '#109fd2' +magenta = '#e9679f' +cyan = '#00bdae' +white = '#fdf6e3' diff --git a/Plugin/wxTerminalCtrl/themes/kanagawa_dragon.toml b/Plugin/wxTerminalCtrl/themes/kanagawa_dragon.toml new file mode 100644 index 0000000000..a3dc784169 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/kanagawa_dragon.toml @@ -0,0 +1,38 @@ +# Colors (Kanagawa Dragon) +# Source https//github.com/rebelot/kanagawa.nvim + +[colors.primary] +background = '#181616' +foreground = '#c5c9c5' + +[colors.normal] +black = '#0d0c0c' +blue = '#8ba4b0' +cyan = '#8ea4a2' +green = '#8a9a7b' +magenta = '#a292a3' +red = '#c4746e' +white = '#C8C093' +yellow = '#c4b28a' + +[colors.bright] +black = '#a6a69c' +blue = '#7FB4CA' +cyan = '#7AA89F' +green = '#87a987' +magenta = '#938AA9' +red = '#E46876' +white = '#c5c9c5' +yellow = '#E6C384' + +[colors.selection] +background = '#2d4f67' +foreground = '#c8c093' + +[[colors.indexed_colors]] +index = 16 +color = '#ffa066' + +[[colors.indexed_colors]] +index = 17 +color = '#ff5d62' diff --git a/Plugin/wxTerminalCtrl/themes/kanagawa_wave.toml b/Plugin/wxTerminalCtrl/themes/kanagawa_wave.toml new file mode 100644 index 0000000000..73ae8fbabc --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/kanagawa_wave.toml @@ -0,0 +1,38 @@ +# Colors (Kanagawa Wave) +# Source https//github.com/rebelot/kanagawa.nvim + +[colors.primary] +background = '#1f1f28' +foreground = '#dcd7ba' + +[colors.normal] +black = '#090618' +red = '#c34043' +green = '#76946a' +yellow = '#c0a36e' +blue = '#7e9cd8' +magenta = '#957fb8' +cyan = '#6a9589' +white = '#c8c093' + +[colors.bright] +black = '#727169' +red = '#e82424' +green = '#98bb6c' +yellow = '#e6c384' +blue = '#7fb4ca' +magenta = '#938aa9' +cyan = '#7aa89f' +white = '#dcd7ba' + +[colors.selection] +background = '#2d4f67' +foreground = '#c8c093' + +[[colors.indexed_colors]] +index = 16 +color = '#ffa066' + +[[colors.indexed_colors]] +index = 17 +color = '#ff5d62' diff --git a/Plugin/wxTerminalCtrl/themes/kimbie_dark.toml b/Plugin/wxTerminalCtrl/themes/kimbie_dark.toml new file mode 100644 index 0000000000..7521fcc980 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/kimbie_dark.toml @@ -0,0 +1,24 @@ +[colors.primary] +background = "#221a0f" +foreground = "#d3af86" + +[colors.normal] +black = "#221a0f" +red = "#c87e5a" +green = "#879a6b" +yellow = "#e4b581" +blue = "#5d90cd" +magenta = "#c792ea" +cyan = "#6bbab2" +white = "#d3af86" + +[colors.bright] +black = "#7d6f48" +red = "#c87e5a" +green = "#879a6b" +yellow = "#e4b581" +blue = "#5d90cd" +magenta = "#c792ea" +cyan = "#6bbab2" +white = "#f2cca8" + diff --git a/Plugin/wxTerminalCtrl/themes/kimbie_light.toml b/Plugin/wxTerminalCtrl/themes/kimbie_light.toml new file mode 100644 index 0000000000..76e214f9b0 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/kimbie_light.toml @@ -0,0 +1,24 @@ +[colors.primary] +background = "#fbebd4" +foreground = "#6e5346" + +[colors.normal] +black = "#fbebd4" +red = "#d43552" +green = "#b8bb26" +yellow = "#f0c674" +blue = "#7cafc2" +magenta = "#d3869b" +cyan = "#8abeb7" +white = "#6e5346" + +[colors.bright] +black = "#f7e4c6" +red = "#d43552" +green = "#b8bb26" +yellow = "#f0c674" +blue = "#7cafc2" +magenta = "#d3869b" +cyan = "#8abeb7" +white = "#4a3631" + diff --git a/Plugin/wxTerminalCtrl/themes/kitty.toml b/Plugin/wxTerminalCtrl/themes/kitty.toml new file mode 100644 index 0000000000..ff32457197 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/kitty.toml @@ -0,0 +1,31 @@ +# Default colors +[colors.primary] +background = '#000000' +foreground = '#dddddd' + +# Cursor colors +[colors.cursor] +text = '#111111' +cursor = '#cccccc' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#cc0403' +green = '#19cb00' +yellow = '#cecb00' +blue = '#0d73cc' +magenta = '#cb1ed1' +cyan = '#0dcdcd' +white = '#dddddd' + +# Bright colors +[colors.bright] +black = '#767676' +red = '#f2201f' +green = '#23fd00' +yellow = '#fffd00' +blue = '#1a8fff' +magenta = '#fd28ff' +cyan = '#14ffff' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/konsole_linux.toml b/Plugin/wxTerminalCtrl/themes/konsole_linux.toml new file mode 100644 index 0000000000..b5b15d3775 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/konsole_linux.toml @@ -0,0 +1,44 @@ +# Color theme ported from Konsole Linux colors + +[colors.primary] +foreground = '#e3e3e3' +bright_foreground = '#ffffff' +background = '#1f1f1f' + +[colors.cursor] +text = '#191622' +cursor = '#f8f8f2' + +[colors.search] +matches = { foreground = '#b2b2b2', background = '#b26818' } +focused_match = { foreground = "CellBackground", background = "CellForeground" } + +[colors.normal] +black = '#000000' +red = '#b21818' +green = '#18b218' +yellow = '#b26818' +blue = '#1818b2' +magenta = '#b218b2' +cyan = '#18b2b2' +white = '#b2b2b2' + +[colors.bright] +black = '#686868' +red = '#ff5454' +green = '#54ff54' +yellow = '#ffff54' +blue = '#5454ff' +magenta = '#ff54ff' +cyan = '#54ffff' +white = '#ffffff' + +[colors.dim] +black = '#000000' +red = '#b21818' +green = '#18b218' +yellow = '#b26818' +blue = '#1818b2' +magenta = '#b218b2' +cyan = '#18b2b2' +white = '#b2b2b2' diff --git a/Plugin/wxTerminalCtrl/themes/linux.toml b/Plugin/wxTerminalCtrl/themes/linux.toml new file mode 100644 index 0000000000..c56b5338d4 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/linux.toml @@ -0,0 +1,28 @@ +# Linux console default colors + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#aaaaaa' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#aa0000' +green = '#00aa00' +yellow = '#aa5500' +blue = '#0000aa' +magenta = '#aa00aa' +cyan = '#00aaaa' +white = '#aaaaaa' + +# Bright colors +[colors.bright] +black = '#555555' +red = '#ff5555' +green = '#55ff55' +yellow = '#ffff55' +blue = '#5555ff' +magenta = '#ff55ff' +cyan = '#55ffff' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/low_contrast.toml b/Plugin/wxTerminalCtrl/themes/low_contrast.toml new file mode 100644 index 0000000000..ecde019838 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/low_contrast.toml @@ -0,0 +1,32 @@ +# Colors (Dim) + +# Default colors +[colors.primary] +background = '#333333' +foreground = '#dddddd' + +[colors.cursor] +text = '#aaaaaa' +cursor = '#ffffff' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#bb0000' +green = '#00bb00' +yellow = '#bbbb00' +blue = '#0000bb' +magenta = '#bb00bb' +cyan = '#00bbbb' +white = '#bbbbbb' + +# Bright colors +[colors.bright] +black = '#000000' +red = '#bb0000' +green = '#00bb00' +yellow = '#bbbb00' +blue = '#0000bb' +magenta = '#bb00bb' +cyan = '#00bbbb' +white = '#bbbbbb' diff --git a/Plugin/wxTerminalCtrl/themes/marine_dark.toml b/Plugin/wxTerminalCtrl/themes/marine_dark.toml new file mode 100644 index 0000000000..a06dcfacba --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/marine_dark.toml @@ -0,0 +1,29 @@ +# Marine Dark Theme +# Source https//github.com/ProDeSquare/alacritty-colorschemes/blob/master/themes/marine_dark.yaml + +# Default colors +[colors.primary] +background = '#002221' +foreground = '#e6f8f8' + +# Normal colors +[colors.normal] +black = '#002221' +red = '#ea3431' +green = '#00b6b6' +yellow = '#f8b017' +blue = '#4894fd' +magenta = '#e01dca' +cyan = '#1ab2ad' +white = '#99dddb' + +# Bright colors +[colors.bright] +black = '#006562' +red = '#ea3431' +green = '#00b6b6' +yellow = '#f8b017' +blue = '#4894fd' +magenta = '#e01dca' +cyan = '#1ab2ad' +white = '#e6f6f6' diff --git a/Plugin/wxTerminalCtrl/themes/material_theme.toml b/Plugin/wxTerminalCtrl/themes/material_theme.toml new file mode 100644 index 0000000000..deae20b14c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/material_theme.toml @@ -0,0 +1,28 @@ +# Colors (Material Theme) + +# Default colors +[colors.primary] +background = '#1e282d' +foreground = '#c4c7d1' + +# Normal colors +[colors.normal] +black = '#666666' +red = '#eb606b' +green = '#c3e88d' +yellow = '#f7eb95' +blue = '#80cbc4' +magenta = '#ff2f90' +cyan = '#aeddff' +white = '#ffffff' + +# Bright colors +[colors.bright] +black = '#ff262b' +red = '#eb606b' +green = '#c3e88d' +yellow = '#f7eb95' +blue = '#7dc6bf' +magenta = '#6c71c4' +cyan = '#35434d' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/material_theme_mod.toml b/Plugin/wxTerminalCtrl/themes/material_theme_mod.toml new file mode 100644 index 0000000000..782760db5a --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/material_theme_mod.toml @@ -0,0 +1,28 @@ +# Colors (Material Theme) + +# Default colors +[colors.primary] +background = '#1e282d' +foreground = '#c4c7d1' + +# Normal colors +[colors.normal] +black = '#666666' +red = '#eb606b' +green = '#c3e88d' +yellow = '#f7eb95' +blue = '#80cbc4' +magenta = '#ff2f90' +cyan = '#aeddff' +white = '#ffffff' + +# Bright colors +[colors.bright] +black = '#a1a1a1' +red = '#eb606b' +green = '#c3e88d' +yellow = '#f7eb95' +blue = '#7dc6bf' +magenta = '#6c71c4' +cyan = '#35434d' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/meliora.toml b/Plugin/wxTerminalCtrl/themes/meliora.toml new file mode 100644 index 0000000000..8eb702f75c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/meliora.toml @@ -0,0 +1,75 @@ +[colors.primary] +background = '#1c1917' +foreground = '#d6d0cd' +# Bright and dim foreground colors +dim_foreground = '#d6d0cd' +bright_foreground = '#d6d0cd' + +# Cursor colors +[colors.cursor] +text = '#1c1917' +cursor = '#d6d0cd' + +[colors.vi_mode_cursor] +text = '#1c1917' +cursor = '#d6d0cd' + +# Search colors +[colors.search] +matches = { foreground = '#1c1917', background = '#24201e' } +focused_match = { foreground = '#1c1917', background = '#2a2522' } + +[colors.footer_bar] +foreground = '#1c1917' +background = '#b8aea8' + +# Keyboard regex hints +[colors.hints] +start = { foreground = '#1c1917', background = '#c4b392' } +end = { foreground = '#1c1917', background = '#24201e' } + +# Selection colors +[colors.selection] +text = '#d6d0cd' +background = '#2a2522' + +# Normal colors +[colors.normal] +black = '#2a2421' +red = '#d49191' +green = '#b6b696' +yellow = '#c4b392' +blue = '#9e96b6' +magenta = '#b696b1' +cyan = '#98acc8' +white = '#ddd9d6' + +# Bright colors +[colors.bright] +black = '#2e2622' +red = '#d89393' +green = '#b9b99b' +yellow = '#c8b692' +blue = '#a299b9' +magenta = '#b997b4' +cyan = '#9bb0ca' +white = '#e1dbd9' + +# Dim colors +[colors.dim] +black = '#2a2421' +red = '#d18989' +green = '#727246' +yellow = '#c1b090' +blue = '#9b92b3' +magenta = '#b393ad' +cyan = '#95a9c5' +white = '#e3d5ce' + +[[colors.indexed_colors]] +index = 16 +color = '#c4b392' + +[[colors.indexed_colors]] +index = 17 +color = '#ddd9d6' diff --git a/Plugin/wxTerminalCtrl/themes/miasma.toml b/Plugin/wxTerminalCtrl/themes/miasma.toml new file mode 100644 index 0000000000..23cb410c04 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/miasma.toml @@ -0,0 +1,28 @@ +# miasma: https://github.com/xero/miasma.nvim + +# Primary colors +[colors.primary] +background = "#222222" +foreground = "#c2c2b0" + +# Normal colors +[colors.normal] +black = "#222222" +red = "#685742" +green = "#5f875f" +yellow = "#b36d43" +blue = "#78824b" +magenta = "#bb7744" +cyan = "#c9a554" +white = "#d7c483" + +# Bright colors +[colors.bright] +black = "#666666" +red = "#685742" +green = "#5f875f" +yellow = "#b36d43" +blue = "#78824b" +magenta = "#bb7744" +cyan = "#c9a554" +white = "#d7c483" diff --git a/Plugin/wxTerminalCtrl/themes/midnight_haze.toml b/Plugin/wxTerminalCtrl/themes/midnight_haze.toml new file mode 100644 index 0000000000..9cb555788f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/midnight_haze.toml @@ -0,0 +1,29 @@ +# Midnight Haze theme +# Source https//github.com/hafiz-muhammad/midnight-haze-alacritty-theme + +# Default colors +[colors.primary] +background = '#0c0c16' +foreground = '#d8dee9' + +# Normal colors +[colors.normal] +black = '#2c2c3d' +red = '#ff6e6e' +green = '#9ec875' +yellow = '#ffa759' +blue = '#70a7d4' +magenta = '#d291e0' +cyan = '#96e0e0' +white = '#d8dee9' + +# Bright colors +[colors.bright] +black = '#414166' +red = '#ff8d8d' +green = '#b3d987' +yellow = '#ffc57f' +blue = '#9bb3d3' +magenta = '#ffa1ff' +cyan = '#9cd8d8' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/monokai.toml b/Plugin/wxTerminalCtrl/themes/monokai.toml new file mode 100644 index 0000000000..45aaafeb7e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/monokai.toml @@ -0,0 +1,23 @@ +[colors.primary] +background = "#272822" +foreground = "#f8f8f2" + +[colors.normal] +black = "#272822" +red = "#f92672" +green = "#a6e22e" +yellow = "#f4bf75" +blue = "#66d9ef" +magenta = "#ae81ff" +cyan = "#a1efe4" +white = "#f8f8f2" + +[colors.bright] +black = "#75715e" +red = "#f92672" +green = "#a6e22e" +yellow = "#f4bf75" +blue = "#66d9ef" +magenta = "#ae81ff" +cyan = "#a1efe4" +white = "#f9f8f5" diff --git a/Plugin/wxTerminalCtrl/themes/monokai_charcoal.toml b/Plugin/wxTerminalCtrl/themes/monokai_charcoal.toml new file mode 100644 index 0000000000..c6ae6c669a --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/monokai_charcoal.toml @@ -0,0 +1,28 @@ +# Colours (Monokai Charcoal) + +# Default Colours +[colors.primary] +background = '#000000' +foreground = '#FFFFFF' + +# Normal Colours +[colors.normal] +black = '#1a1a1a' +red = '#f4005f' +green = '#98e024' +yellow = '#fa8419' +blue = '#9d65ff' +magenta = '#f4005f' +cyan = '#58d1eb' +white = '#c4c5b5' + +# Bright Colours +[colors.bright] +black = '#625e4c' +red = '#f4005f' +green = '#98e024' +yellow = '#e0d561' +blue = '#9d65ff' +magenta = '#f4005f' +cyan = '#58d1eb' +white = '#f6f6ef' diff --git a/Plugin/wxTerminalCtrl/themes/monokai_pro.toml b/Plugin/wxTerminalCtrl/themes/monokai_pro.toml new file mode 100644 index 0000000000..e43490059c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/monokai_pro.toml @@ -0,0 +1,26 @@ +# Default colors +[colors.primary] +background = '#2D2A2E' +foreground = '#fff1f3' + +# Normal colors +[colors.normal] +black = '#2c2525' +red = '#fd6883' +green = '#adda78' +yellow = '#f9cc6c' +blue = '#f38d70' +magenta = '#a8a9eb' +cyan = '#85dacc' +white = '#fff1f3' + +# Bright colors +[colors.bright] +black = '#72696a' +red = '#fd6883' +green = '#adda78' +yellow = '#f9cc6c' +blue = '#f38d70' +magenta = '#a8a9eb' +cyan = '#85dacc' +white = '#fff1f3' diff --git a/Plugin/wxTerminalCtrl/themes/moonfly.toml b/Plugin/wxTerminalCtrl/themes/moonfly.toml new file mode 100644 index 0000000000..8fadb906fb --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/moonfly.toml @@ -0,0 +1,34 @@ +# Upstream: github.com/bluz71/vim-moonfly-colors + +[colors.bright] +black = "#949494" +blue = "#74b2ff" +cyan = "#85dc85" +green = "#36c692" +magenta = "#ae81ff" +red = "#ff5189" +white = "#e4e4e4" +yellow = "#c6c684" + +[colors.cursor] +cursor = "#8e8e8e" +text = "#080808" + +[colors.normal] +black = "#323437" +blue = "#80a0ff" +cyan = "#79dac8" +green = "#8cc85f" +magenta = "#cf87e8" +red = "#ff5454" +white = "#c6c6c6" +yellow = "#e3c78a" + +[colors.primary] +background = "#080808" +bright_foreground = "#eeeeee" +foreground = "#bdbdbd" + +[colors.selection] +background = "#b2ceee" +text = "#080808" diff --git a/Plugin/wxTerminalCtrl/themes/moonlight_ii_vscode.toml b/Plugin/wxTerminalCtrl/themes/moonlight_ii_vscode.toml new file mode 100644 index 0000000000..2991e70de2 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/moonlight_ii_vscode.toml @@ -0,0 +1,27 @@ +[colors.primary] +background = '#1e2030' +foreground = '#7f85a3' + +[colors.cursor] +text = '#7f85a3' +cursor = '#808080' + +[colors.normal] +black = '#444a73' +red = '#ff5370' +green = '#4fd6be' +yellow = '#ffc777' +blue = '#3e68d7' +magenta = '#fc7b7b' +cyan = '#86e1fc' +white = '#d0d0d0' + +[colors.bright] +black = '#828bb8' +red = '#ff98a4' +green = '#c3e88d' +yellow = '#ffc777' +blue = '#82aaff' +magenta = '#ff966c' +cyan = '#b4f9f8' +white = '#5f8787' diff --git a/Plugin/wxTerminalCtrl/themes/msx.toml b/Plugin/wxTerminalCtrl/themes/msx.toml new file mode 100644 index 0000000000..d10a124559 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/msx.toml @@ -0,0 +1,41 @@ +# Colors (MSX-like) +# Notice that MSX used blue as background so [bright] blue and [bright] black +# are reversed in this theme. Also MSX had only 15 colors (color 0 was +# transparent) so 'gray' (#CCCCCC) is used two times both as white and +# bright black. + +# Default colors +[colors.primary] +background = '#5955E0' +foreground = '#FFFFFF' + +# Normal colors +[colors.normal] +# It is 'dark blue' not black +black = '#5955E0' +red = '#B95E51' +green = '#3AA241' +yellow = '#CCC35E' +# It is 'black' not blue +blue = '#000000' +# It is 'medium red' not magenta +magenta = '#DB6559' +# It is 'medium green' not cyan +cyan = '#3EB849' +# It is 'gray' not white +white = '#CCCCCC' + +# Bright colors +[colors.bright] +# It is 'light blue' not bright black +black = '#8076F1' +red = '#FF897D' +green = '#74D07D' +yellow = '#DED087' +# It is 'gray' not bright blue +blue = '#CCCCCC' +# It is 'magenta' not bright magenta +magenta = '#B766B5' +# It is 'cyan' not bright cyan +cyan = '#65DBEF' +white = '#FFFFFF' diff --git a/Plugin/wxTerminalCtrl/themes/night_owl.toml b/Plugin/wxTerminalCtrl/themes/night_owl.toml new file mode 100644 index 0000000000..f77eebcc76 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/night_owl.toml @@ -0,0 +1,54 @@ +# Default colors +[colors.primary] +background = "#011627" +foreground = "#d6deeb" + +# Cursor colors +[colors.cursor] +text = "CellBackground" +cursor = "CellForeground" + +[colors.vi_mode_cursor] +text = "CellBackground" +cursor = "#22da6e" + +# Search colors +[colors.search.matches] +foreground = "#000000" +background = "#22da6e" + +[colors.search.focused_match] +foreground = "#ffffff" +background = "#22da6e" + +[colors.footer_bar] +foreground = "#ffffff" +background = "#1d3b53" + +# Selection colors +[colors.selection] +text = "#ffffff" +background = "#0d486e" + +# Normal colors +[colors.normal] +black = "#011627" +red = "#EF5350" +green = "#22da6e" +yellow = "#c5e478" +blue = "#82AAFF" +magenta = "#C792EA" +cyan = "#21c7a8" +white = "#ffffff" + +# Bright colors +[colors.bright] +black = "#575656" +red = "#EF5350" +green = "#22da6e" +yellow = "#ffeb95" +blue = "#82AAFF" +magenta = "#C792EA" +cyan = "#7fdbca" +white = "#ffffff" + diff --git a/Plugin/wxTerminalCtrl/themes/night_owlish_light.toml b/Plugin/wxTerminalCtrl/themes/night_owlish_light.toml new file mode 100644 index 0000000000..7aaf7cf189 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/night_owlish_light.toml @@ -0,0 +1,33 @@ +# Colors (Night Owlish Light) + +[colors.primary] +background = '#ffffff' +foreground = '#403f53' + +[colors.normal] +black = '#011627' +red = '#d3423e' +green = '#2aa298' +yellow = '#daaa01' +blue = '#4876d6' +magenta = '#403f53' +cyan = '#08916a' +white = '#7a8181' + +[colors.bright] +black = '#7a8181' +red = '#f76e6e' +green = '#49d0c5' +yellow = '#dac26b' +blue = '#5ca7e4' +magenta = '#697098' +cyan = '#00c990' +white = '#989fb1' + +[colors.cursor] +cursor = '#403f53' +text = '#fbfbfb' + +[colors.selection] +background = '#f2f2f2' +text = '#403f53' diff --git a/Plugin/wxTerminalCtrl/themes/nightfly.toml b/Plugin/wxTerminalCtrl/themes/nightfly.toml new file mode 100644 index 0000000000..f935754901 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nightfly.toml @@ -0,0 +1,34 @@ +# Source https://github.com/bluz71/vim-nightfly-colors + +[colors.bright] +black = "#7c8f8f" +blue = "#82aaff" +cyan = "#7fdbca" +green = "#21c7a8" +magenta = "#ae81ff" +red = "#ff5874" +white = "#d6deeb" +yellow = "#ecc48d" + +[colors.cursor] +cursor = "#9ca1aa" +text = "#080808" + +[colors.normal] +black = "#1d3b53" +blue = "#82aaff" +cyan = "#7fdbca" +green = "#a1cd5e" +magenta = "#c792ea" +red = "#fc514e" +white = "#a1aab8" +yellow = "#e3d18a" + +[colors.primary] +background = "#011627" +bright_foreground = "#eeeeee" +foreground = "#bdc1c6" + +[colors.selection] +background = "#b2ceee" +text = "#080808" diff --git a/Plugin/wxTerminalCtrl/themes/nightfox.toml b/Plugin/wxTerminalCtrl/themes/nightfox.toml new file mode 100644 index 0000000000..cedb99bb16 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nightfox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: nightfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/nightfox/alacritty.toml + +[colors.primary] +background = "#192330" +foreground = "#cdcecf" +dim_foreground = "#aeafb0" +bright_foreground = "#d6d6d7" + +[colors.cursor] +text = "#cdcecf" +cursor = "#aeafb0" + +[colors.vi_mode_cursor] +text = "#cdcecf" +cursor = "#63cdcf" + +[colors.search.matches] +foreground = "#cdcecf" +background = "#3c5372" + +[colors.search.focused_match] +foreground = "#cdcecf" +background = "#81b29a" + +[colors.footer_bar] +foreground = "#cdcecf" +background = "#29394f" + +[colors.hints.start] +foreground = "#cdcecf" +background = "#f4a261" + +[colors.hints.end] +foreground = "#cdcecf" +background = "#29394f" + +[colors.selection] +text = "#cdcecf" +background = "#2b3b51" + +[colors.normal] +black = "#393b44" +red = "#c94f6d" +green = "#81b29a" +yellow = "#dbc074" +blue = "#719cd6" +magenta = "#9d79d6" +cyan = "#63cdcf" +white = "#dfdfe0" + +[colors.bright] +black = "#575860" +red = "#d16983" +green = "#8ebaa4" +yellow = "#e0c989" +blue = "#86abdc" +magenta = "#baa1e2" +cyan = "#7ad5d6" +white = "#e4e4e5" + +[colors.dim] +black = "#30323a" +red = "#ab435d" +green = "#6e9783" +yellow = "#baa363" +blue = "#6085b6" +magenta = "#8567b6" +cyan = "#54aeb0" +white = "#bebebe" diff --git a/Plugin/wxTerminalCtrl/themes/noctis_lux.toml b/Plugin/wxTerminalCtrl/themes/noctis_lux.toml new file mode 100644 index 0000000000..eb2479a714 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/noctis_lux.toml @@ -0,0 +1,28 @@ +# Colors (NoctixLux) + +# Default colors +[colors.primary] +background = '#fef8ec' +foreground = '#005661' + +# Normal colors +[colors.normal] +black = '#003b42' +red = '#e34e1c' +green = '#00b368' +yellow = '#f49725' +blue = '#0094f0' +magenta = '#ff5792' +cyan = '#00bdd6' +white = '#8ca6a6' + +# Bright colors +[colors.bright] +black = '#004d57' +red = '#ff4000' +green = '#00d17a' +yellow = '#ff8c00' +blue = '#0fa3ff' +magenta = '#ff6b9f' +cyan = '#00cbe6' +white = '#bbc3c4' diff --git a/Plugin/wxTerminalCtrl/themes/nord.toml b/Plugin/wxTerminalCtrl/themes/nord.toml new file mode 100644 index 0000000000..01cc0d04b6 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nord.toml @@ -0,0 +1,28 @@ +# Colors (Nord) + +# Default colors +[colors.primary] +background = '#2E3440' +foreground = '#D8DEE9' + +# Normal colors +[colors.normal] +black = '#3B4252' +red = '#BF616A' +green = '#A3BE8C' +yellow = '#EBCB8B' +blue = '#81A1C1' +magenta = '#B48EAD' +cyan = '#88C0D0' +white = '#E5E9F0' + +# Bright colors +[colors.bright] +black = '#4C566A' +red = '#BF616A' +green = '#A3BE8C' +yellow = '#EBCB8B' +blue = '#81A1C1' +magenta = '#B48EAD' +cyan = '#8FBCBB' +white = '#ECEFF4' diff --git a/Plugin/wxTerminalCtrl/themes/nord_light.toml b/Plugin/wxTerminalCtrl/themes/nord_light.toml new file mode 100644 index 0000000000..84e570cf37 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nord_light.toml @@ -0,0 +1,28 @@ +# Colors (Nord light) theme based on https//github.com/nordtheme/alacritty/issues/28#issuecomment-1422225211 + +# Default colors +[colors.primary] +background = '#ECEFF4' +foreground = '#81A1C1' + +# Normal colors +[colors.normal] +black = '#D8DEE9' +red = '#bf616a' +green = '#a3be8c' +yellow = '#D08770' +blue = '#81A1C1' +magenta = '#B48EAD' +cyan = '#88C0D0' +white = '#4C566A' + +# Bright colors +[colors.bright] +black = '#D8DEE9' +red = '#bf616a' +green = '#a3be8c' +yellow = '#D08770' +blue = '#D8DEE9' +magenta = '#B48EAD' +cyan = '#8FBCBB' +white = '#D8DEE9' diff --git a/Plugin/wxTerminalCtrl/themes/nordfox.toml b/Plugin/wxTerminalCtrl/themes/nordfox.toml new file mode 100644 index 0000000000..7961947ad2 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nordfox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: nordfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/nordfox/alacritty.toml + +[colors.primary] +background = "#2e3440" +foreground = "#cdcecf" +dim_foreground = "#abb1bb" +bright_foreground = "#c7cdd9" + +[colors.cursor] +text = "#cdcecf" +cursor = "#abb1bb" + +[colors.vi_mode_cursor] +text = "#cdcecf" +cursor = "#88c0d0" + +[colors.search.matches] +foreground = "#cdcecf" +background = "#4f6074" + +[colors.search.focused_match] +foreground = "#cdcecf" +background = "#a3be8c" + +[colors.footer_bar] +foreground = "#cdcecf" +background = "#444c5e" + +[colors.hints.start] +foreground = "#cdcecf" +background = "#c9826b" + +[colors.hints.end] +foreground = "#cdcecf" +background = "#444c5e" + +[colors.selection] +text = "#cdcecf" +background = "#3e4a5b" + +[colors.normal] +black = "#3b4252" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#88c0d0" +white = "#e5e9f0" + +[colors.bright] +black = "#465780" +red = "#d06f79" +green = "#b1d196" +yellow = "#f0d399" +blue = "#8cafd2" +magenta = "#c895bf" +cyan = "#93ccdc" +white = "#e7ecf4" + +[colors.dim] +black = "#353a45" +red = "#a54e56" +green = "#8aa872" +yellow = "#d9b263" +blue = "#668aab" +magenta = "#9d7495" +cyan = "#69a7ba" +white = "#bbc3d4" diff --git a/Plugin/wxTerminalCtrl/themes/nordic.toml b/Plugin/wxTerminalCtrl/themes/nordic.toml new file mode 100644 index 0000000000..a72e0177d7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nordic.toml @@ -0,0 +1,29 @@ +# Colors (Nordic) + +[colors.primary] +background = '#242933' +foreground = '#BBBDAF' + +[colors.normal] +black = '#191C1D' +red = '#BD6062' +green = '#A3D6A9' +yellow = '#F0DFAF' +blue = '#8FB4D8' +magenta = '#C7A9D9' +cyan = '#B6D7A8' +white = '#BDC5BD' + +[colors.bright] +black = '#727C7C' +red = '#D18FAF' +green = '#B7CEB0' +yellow = '#BCBCBC' +blue = '#E0CF9F' +magenta = '#C7A9D9' +cyan = '#BBDA97' +white = '#BDC5BD' + +[colors.selection] +text = '#000000' +background = '#F0DFAF' diff --git a/Plugin/wxTerminalCtrl/themes/nvim_dark.toml b/Plugin/wxTerminalCtrl/themes/nvim_dark.toml new file mode 100644 index 0000000000..7952129702 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/nvim_dark.toml @@ -0,0 +1,67 @@ +[colors.primary] +background = "#14161b" +foreground = "#E0E2EA" +dim_foreground = "#C4C6CD" +bright_foreground = "#E0E2EA" + +[colors.cursor] +text = "#14161b" +cursor = "#E0E2EA" + +[colors.vi_mode_cursor] +text = "#14161b" +cursor = "#E0E2EA" + +[colors.search.matches] +foreground = "#14161b" +background = "#6b5300" + +[colors.search.focused_match] +foreground = "#14161b" +background = "#fce094" + +[colors.footer_bar] +foreground = "#14161b" +background = "#7EDFDE" + +[colors.hints.start] +foreground = "#14161b" +background = "#E5ADB9" + +[colors.hints.end] +foreground = "#14161b" +background = "#7EDFDE" + +[colors.selection] +text = "#E0E2EA" +background = "#4f5258" + +[colors.normal] +black = "#2c2e33" +red = "#E5ADB9" +green = "#A2DFC0" +yellow = "#E3CA85" +blue = "#95C5E5" +magenta = "#E5B6E6" +cyan = "#7EDFDE" +white = "#C4C6CD" + +[colors.bright] +black = "#4f5258" +red = "#FFC0B9" +green = "#B4F6C0" +yellow = "#FCE094" +blue = "#A6DBFF" +magenta = "#FFCAFF" +cyan = "#8CF8F7" +white = "#9b9ea4" + +[colors.dim] +black = "#2c2e33" +red = "#E5ADB9" +green = "#A2DFC0" +yellow = "#E3CA85" +blue = "#95C5E5" +magenta = "#E5B6E6" +cyan = "#7EDFDE" +white = "#C4C6CD" diff --git a/Plugin/wxTerminalCtrl/themes/oceanic_next.toml b/Plugin/wxTerminalCtrl/themes/oceanic_next.toml new file mode 100644 index 0000000000..9268425cb8 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/oceanic_next.toml @@ -0,0 +1,28 @@ +# Colors (Oceanic Next) + +# Default colors +[colors.primary] +background = '#1b2b34' +foreground = '#d8dee9' + +# Normal colors +[colors.normal] +black = '#29414f' +red = '#ec5f67' +green = '#99c794' +yellow = '#fac863' +blue = '#6699cc' +magenta = '#c594c5' +cyan = '#5fb3b3' +white = '#65737e' + +# Bright colors +[colors.bright] +black = '#405860' +red = '#ec5f67' +green = '#99c794' +yellow = '#fac863' +blue = '#6699cc' +magenta = '#c594c5' +cyan = '#5fb3b3' +white = '#adb5c0' diff --git a/Plugin/wxTerminalCtrl/themes/omni.toml b/Plugin/wxTerminalCtrl/themes/omni.toml new file mode 100644 index 0000000000..ed006d192c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/omni.toml @@ -0,0 +1,37 @@ +[colors.primary] +background = '#191622' +foreground = '#e1e1e6' + +[colors.cursor] +text = '#191622' +cursor = '#f8f8f2' + +[colors.normal] +black = '#000000' +red = '#ff5555' +green = '#50fa7b' +yellow = '#effa78' +blue = '#bd93f9' +magenta = '#ff79c6' +cyan = '#8d79ba' +white = '#bfbfbf' + +[colors.bright] +black = '#4d4d4d' +red = '#ff6e67' +green = '#5af78e' +yellow = '#eaf08d' +blue = '#caa9fa' +magenta = '#ff92d0' +cyan = '#aa91e3' +white = '#e6e6e6' + +[colors.dim] +black = '#000000' +red = '#a90000' +green = '#049f2b' +yellow = '#a3b106' +blue = '#530aba' +magenta = '#bb006b' +cyan = '#433364' +white = '#5f5f5f' diff --git a/Plugin/wxTerminalCtrl/themes/one_dark.toml b/Plugin/wxTerminalCtrl/themes/one_dark.toml new file mode 100644 index 0000000000..b2de35ed0e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/one_dark.toml @@ -0,0 +1,28 @@ +# Colors (One Dark) + +# Default colors +[colors.primary] +background = '#282c34' +foreground = '#abb2bf' + +# Normal colors +[colors.normal] +black = '#1e2127' +red = '#e06c75' +green = '#98c379' +yellow = '#d19a66' +blue = '#61afef' +magenta = '#c678dd' +cyan = '#56b6c2' +white = '#abb2bf' + +# Bright colors +[colors.bright] +black = '#5c6370' +red = '#e06c75' +green = '#98c379' +yellow = '#d19a66' +blue = '#61afef' +magenta = '#c678dd' +cyan = '#56b6c2' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/one_light.toml b/Plugin/wxTerminalCtrl/themes/one_light.toml new file mode 100644 index 0000000000..0337917a70 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/one_light.toml @@ -0,0 +1,23 @@ +[colors.primary] +background = '#f8f8f8' +foreground = '#2a2b33' + +[colors.normal] +black = '#000000' +red = '#de3d35' +green = '#3e953a' +yellow = '#d2b67b' +blue = '#2f5af3' +magenta = '#a00095' +cyan = '#3e953a' +white = '#bbbbbb' + +[colors.bright] +black = '#000000' +red = '#de3d35' +green = '#3e953a' +yellow = '#d2b67b' +blue = '#2f5af3' +magenta = '#a00095' +cyan = '#3e953a' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/oxocarbon.toml b/Plugin/wxTerminalCtrl/themes/oxocarbon.toml new file mode 100644 index 0000000000..cd990c96bd --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/oxocarbon.toml @@ -0,0 +1,34 @@ +# Colors (Oxocarbon) +# Source https://vimcolorschemes.com/nyoom-engineering/oxocarbon.nvim + +# Default colors +[colors.primary] +background = '#1b1b1b' +foreground = '#ffffff' + +[colors.cursor] +text = '#161616' +cursor = '#78a9ff' + +# Normal colors +[colors.normal] +black = '#161616' +red = '#ee5396' +green = '#42be65' +yellow = '#ff7eb6' +blue = '#33b1ff' +magenta = '#be95ff' +cyan = '#3ddbd9' +white = '#ffffff' + +# Bright colors +[colors.bright] +black = '#525252' +red = '#ee5396' +green = '#42be65' +yellow = '#ff7eb6' +blue = '#33b1ff' +magenta = '#be95ff' +cyan = '#3ddbd9' +white = '#ffffff' + diff --git a/Plugin/wxTerminalCtrl/themes/palenight.toml b/Plugin/wxTerminalCtrl/themes/palenight.toml new file mode 100644 index 0000000000..fb9ccfcca5 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/palenight.toml @@ -0,0 +1,29 @@ +# iTerm2 Material Design - Palenight theme for Alacritty +# Source https//github.com/JonathanSpeek/palenight-iterm2 + +# Default colors +[colors.primary] +background = '#292d3e' +foreground = '#d0d0d0' + +# Normal colors +[colors.normal] +black = '#292d3e' +red = '#f07178' +green = '#c3e88d' +yellow = '#ffcb6b' +blue = '#82aaff' +magenta = '#c792ea' +cyan = '#89ddff' +white = '#d0d0d0' + +# Bright colors +[colors.bright] +black = '#434758' +red = '#ff8b92' +green = '#ddffa7' +yellow = '#ffe585' +blue = '#9cc4ff' +magenta = '#e1acff' +cyan = '#a3f7ff' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/panda.toml b/Plugin/wxTerminalCtrl/themes/panda.toml new file mode 100644 index 0000000000..4352a53754 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/panda.toml @@ -0,0 +1,30 @@ +# Default colors +[colors.primary] +background = '#292A2B' +foreground = '#eaeaea' + +[colors.cursor] +text = '#000000' +cursor = '#ffffff' + +# Normal colors +[colors.normal] +black = '#3d3e40' +red = '#FF2C6D' +green = '#19f9d8' +yellow = '#FFB86C' +blue = '#45A9F9' +magenta = '#FF75B5' +cyan = '#19f9d8' +white = '#f3f3f3' + +# Bright colors +[colors.bright] +black = '#373b41' +red = '#ff3334' +green = '#41fadf' +yellow = '#ffcc95' +blue = '#6FC1FF' +magenta = '#ff9ecb' +cyan = '#41fadf' +white = '#f8f8f8' diff --git a/Plugin/wxTerminalCtrl/themes/papercolor_dark.toml b/Plugin/wxTerminalCtrl/themes/papercolor_dark.toml new file mode 100644 index 0000000000..a595146c6c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/papercolor_dark.toml @@ -0,0 +1,32 @@ +# Colors (PaperColor - Dark) + +# Default colors +[colors.primary] +background = '#1c1c1c' +foreground = '#808080' + +[colors.cursor] +text = '#1c1c1c' +cursor = '#808080' + +# Normal colors +[colors.normal] +black = '#1c1c1c' +red = '#af005f' +green = '#5faf00' +yellow = '#d7af5f' +blue = '#5fafd7' +magenta = '#808080' +cyan = '#d7875f' +white = '#d0d0d0' + +# Bright colors +[colors.bright] +black = '#585858' +red = '#5faf5f' +green = '#afd700' +yellow = '#af87d7' +blue = '#ffaf00' +magenta = '#ffaf00' +cyan = '#00afaf' +white = '#5f8787' diff --git a/Plugin/wxTerminalCtrl/themes/papercolor_light.toml b/Plugin/wxTerminalCtrl/themes/papercolor_light.toml new file mode 100644 index 0000000000..bcbec819f2 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/papercolor_light.toml @@ -0,0 +1,32 @@ +# Colors (PaperColor - Light) + +# Default colors +[colors.primary] +background = '#eeeeee' +foreground = '#444444' + +[colors.cursor] +text = '#eeeeee' +cursor = '#444444' + +# Normal colors +[colors.normal] +black = '#eeeeee' +red = '#af0000' +green = '#008700' +yellow = '#5f8700' +blue = '#0087af' +magenta = '#878787' +cyan = '#005f87' +white = '#444444' + +# Bright colors +[colors.bright] +black = '#bcbcbc' +red = '#d70000' +green = '#d70087' +yellow = '#8700af' +blue = '#d75f00' +magenta = '#d75f00' +cyan = '#005faf' +white = '#005f87' diff --git a/Plugin/wxTerminalCtrl/themes/papertheme.toml b/Plugin/wxTerminalCtrl/themes/papertheme.toml new file mode 100644 index 0000000000..0c192b1d60 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/papertheme.toml @@ -0,0 +1,28 @@ +# Colors (Paper Theme) + +# Default colors +[colors.primary] +background = '#F2EEDE' +foreground = '#000000' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#CC3E28' +green = '#216609' +yellow = '#B58900' +blue = '#1E6FCC' +magenta = '#5C21A5' +cyan = '#158C86' +white = '#AAAAAA' + +# Bright colors +[colors.bright] +black = '#555555' +red = '#CC3E28' +green = '#216609' +yellow = '#B58900' +blue = '#1E6FCC' +magenta = '#5C21A5' +cyan = '#158C86' +white = '#AAAAAA' diff --git a/Plugin/wxTerminalCtrl/themes/pastel_dark.toml b/Plugin/wxTerminalCtrl/themes/pastel_dark.toml new file mode 100644 index 0000000000..a877760957 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/pastel_dark.toml @@ -0,0 +1,33 @@ +# From iTerm2 Pastel Dark theme + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#C7C7C7' + +# Cursor colors +[colors.cursor] +text = '#FFFEFF' +cursor = '#FFB472' + +# Normal colors +[colors.normal] +black = '#616161' +red = '#FF8272' +green = '#B4FA72' +yellow = '#FEFDC2' +blue = '#A5D5FE' +magenta = '#FF8FFD' +cyan = '#D0D1FE' +white = '#F1F1F1' + +# Bright colors +[colors.bright] +black = '#8E8E8E' +red = '#FFC4BD' +green = '#D6FCB9' +yellow = '#FEFDD5' +blue = '#C1E3FE' +magenta = '#FFB1FE' +cyan = '#E5E6FE' +white = '#FFFEFF' diff --git a/Plugin/wxTerminalCtrl/themes/pencil_dark.toml b/Plugin/wxTerminalCtrl/themes/pencil_dark.toml new file mode 100644 index 0000000000..470544c331 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/pencil_dark.toml @@ -0,0 +1,28 @@ +# Colors (Pencil Dark) + +# Default Colors +[colors.primary] +background = '#212121' +foreground = '#f1f1f1' + +# Normal colors +[colors.normal] +black = '#212121' +red = '#c30771' +green = '#10a778' +yellow = '#a89c14' +blue = '#008ec4' +magenta = '#523c79' +cyan = '#20a5ba' +white = '#e0e0e0' + +# Bright colors +[colors.bright] +black = '#818181' +red = '#fb007a' +green = '#5fd7af' +yellow = '#f3e430' +blue = '#20bbfc' +magenta = '#6855de' +cyan = '#4fb8cc' +white = '#f1f1f1' diff --git a/Plugin/wxTerminalCtrl/themes/pencil_light.toml b/Plugin/wxTerminalCtrl/themes/pencil_light.toml new file mode 100644 index 0000000000..a985b109cc --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/pencil_light.toml @@ -0,0 +1,28 @@ +# Colors (Pencil Light) + +# Default Colors +[colors.primary] +background = '#f1f1f1' +foreground = '#424242' + +# Normal colors +[colors.normal] +black = '#212121' +red = '#c30771' +green = '#10a778' +yellow = '#a89c14' +blue = '#008ec4' +magenta = '#523c79' +cyan = '#20a5ba' +white = '#e0e0e0' + +# Bright colors +[colors.bright] +black = '#212121' +red = '#fb007a' +green = '#5fd7af' +yellow = '#f3e430' +blue = '#20bbfc' +magenta = '#6855de' +cyan = '#4fb8cc' +white = '#f1f1f1' diff --git a/Plugin/wxTerminalCtrl/themes/rainbow.toml b/Plugin/wxTerminalCtrl/themes/rainbow.toml new file mode 100644 index 0000000000..dd7a782957 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/rainbow.toml @@ -0,0 +1,26 @@ +# Default colors +[colors.primary] +background = '#192835' +foreground = '#AADA4F' + +# Normal colors +[colors.normal] +black = '#5B4375' +red = '#426bb6' +green = '#2286b5' +yellow = '#5ab782' +blue = '#93ca5b' +magenta = '#c6c842' +cyan = '#8a5135' +white = '#c54646' + +# Bright colors +[colors.bright] +black = '#5B4375' +red = '#426bb6' +green = '#2286b5' +yellow = '#5ab782' +blue = '#93ca5b' +magenta = '#c6c842' +cyan = '#8a5135' +white = '#c54646' diff --git a/Plugin/wxTerminalCtrl/themes/remedy_dark.toml b/Plugin/wxTerminalCtrl/themes/remedy_dark.toml new file mode 100644 index 0000000000..682ec204c7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/remedy_dark.toml @@ -0,0 +1,29 @@ +# Default colors +[colors.primary] +background = '#2c2b2a' +foreground = '#f9e7c4' + +dim_foreground = '#685E4A' +bright_foreground = '#1C1508' + +# Normal colors +[colors.normal] +black = '#282a2e' +red = '#a54242' +green = '#8c9440' +yellow = '#de935f' +blue = '#5f819d' +magenta = '#85678f' +cyan = '#5e8d87' +white = '#707880' + +# Bright colors +[colors.bright] +black = '#373b41' +red = '#cc6666' +green = '#b5bd68' +yellow = '#f0c674' +blue = '#81a2be' +magenta = '#b294bb' +cyan = '#8abeb7' +white = '#c5c8c6' diff --git a/Plugin/wxTerminalCtrl/themes/rigel.toml b/Plugin/wxTerminalCtrl/themes/rigel.toml new file mode 100644 index 0000000000..84ab9b9db8 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/rigel.toml @@ -0,0 +1,30 @@ +# Rigel theme +# Source: https://github.com/Rigellute/rigel/blob/master/alacritty.toml + +[colors.primary] +background = '#002635' +foreground = '#e6e6dc' + +[colors.normal] +black = '#00384d' +red = '#c43061' +green = '#7fc06e' +yellow = '#f08e48' +blue = '#1c8db2' +magenta = '#c694ff' +cyan = '#00cccc' +white = '#77929e' + +[colors.bright] +black = '#517f8d' +red = '#ff5a67' +green = '#9cf087' +yellow = '#ffcc1b' +blue = '#7eb2dd' +magenta = '#fb94ff' +cyan = '#00ffff' +white = '#b7cff9' + +[colors.cursor] +text = '#002635' +cursor = '#ffcc1b' diff --git a/Plugin/wxTerminalCtrl/themes/rose_pine.toml b/Plugin/wxTerminalCtrl/themes/rose_pine.toml new file mode 100644 index 0000000000..0c5ffc2b3c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/rose_pine.toml @@ -0,0 +1,39 @@ +[colors.primary] +background = '#191724' +foreground = '#e0def4' + +[colors.cursor] +text = '#e0def4' +cursor = '#524f67' + +[colors.vi_mode_cursor] +text = '#e0def4' +cursor = '#524f67' + +[colors.selection] +text = '#e0def4' +background = '#403d52' + +[colors.normal] +black = '#26233a' +red = '#eb6f92' +green = '#31748f' +yellow = '#f6c177' +blue = '#9ccfd8' +magenta = '#c4a7e7' +cyan = '#ebbcba' +white = '#e0def4' + +[colors.bright] +black = '#6e6a86' +red = '#eb6f92' +green = '#31748f' +yellow = '#f6c177' +blue = '#9ccfd8' +magenta = '#c4a7e7' +cyan = '#ebbcba' +white = '#e0def4' + +[colors.hints] +start = {foreground = '#908caa', background = '#1f1d2e' } +end = { foreground = '#6e6a86', background = '#1f1d2e' } diff --git a/Plugin/wxTerminalCtrl/themes/rose_pine_dawn.toml b/Plugin/wxTerminalCtrl/themes/rose_pine_dawn.toml new file mode 100644 index 0000000000..a0ee855ad6 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/rose_pine_dawn.toml @@ -0,0 +1,39 @@ +[colors.primary] +background = '#faf4ed' +foreground = '#575279' + +[colors.cursor] +text = '#575279' +cursor = '#cecacd' + +[colors.vi_mode_cursor] +text = '#575279' +cursor = '#cecacd' + +[colors.selection] +text = '#575279' +background = '#dfdad9' + +[colors.normal] +black = '#f2e9e1' +red = '#b4637a' +green = '#286983' +yellow = '#ea9d34' +blue = '#56949f' +magenta = '#907aa9' +cyan = '#d7827e' +white = '#575279' + +[colors.bright] +black = '#9893a5' +red = '#b4637a' +green = '#286983' +yellow = '#ea9d34' +blue = '#56949f' +magenta = '#907aa9' +cyan = '#d7827e' +white = '#575279' + +[colors.hints] +start = { foreground = '#797593', background = '#fffaf3' } +end = { foreground = '#9893a5', background = '#fffaf3' } diff --git a/Plugin/wxTerminalCtrl/themes/rose_pine_moon.toml b/Plugin/wxTerminalCtrl/themes/rose_pine_moon.toml new file mode 100644 index 0000000000..f816e1e610 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/rose_pine_moon.toml @@ -0,0 +1,38 @@ +[colors.primary] +background = '#232136' +foreground = '#e0def4' + +[colors.cursor] +text = '#e0def4' +cursor = '#56526e' + +[colors.vi_mode_cursor] +text = '#e0def4' +cursor = '#56526e' + +[colors.selection] +text = '#e0def4' +background = '#44415a' +[colors.normal] +black = '#393552' +red = '#eb6f92' +green = '#3e8fb0' +yellow = '#f6c177' +blue = '#9ccfd8' +magenta = '#c4a7e7' +cyan = '#ea9a97' +white = '#e0def4' + +[colors.bright] +black = '#6e6a86' +red = '#eb6f92' +green = '#3e8fb0' +yellow = '#f6c177' +blue = '#9ccfd8' +magenta = '#c4a7e7' +cyan = '#ea9a97' +white = '#e0def4' + +[colors.hints] +start = { foreground = '#908caa', background = '#2a273f' } +end = { foreground = '#6e6a86', background = '#2a273f' } diff --git a/Plugin/wxTerminalCtrl/themes/seashells.toml b/Plugin/wxTerminalCtrl/themes/seashells.toml new file mode 100644 index 0000000000..0db2734c5e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/seashells.toml @@ -0,0 +1,37 @@ +# Colors (SeaShells) +# Source https//raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/SeaShells.itermcolors + +# Default colors +[colors.primary] +background = '#061923' +foreground = '#e5c49e' + +[colors.cursor] +text = '#061822' +cursor = '#feaf3c' + +[colors.selection] +text = '#ffe9d7' +background = '#265b75' + +# Normal colors +[colors.normal] +black = '#1d485f' +red = '#db662d' +green = '#008eab' +yellow = '#feaf3c' +blue = '#255a62' +magenta = '#77dbf4' +cyan = '#5fb1c2' +white = '#e5c49e' + +# Bright colors +[colors.bright] +black = '#545d65' +red = '#dd998a' +green = '#739da8' +yellow = '#fedaae' +blue = '#0bc7e3' +magenta = '#c6e8f1' +cyan = '#97b9c0' +white = '#ffe9d7' diff --git a/Plugin/wxTerminalCtrl/themes/selenized_dark.toml b/Plugin/wxTerminalCtrl/themes/selenized_dark.toml new file mode 100644 index 0000000000..c2c79afccf --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/selenized_dark.toml @@ -0,0 +1,26 @@ +# Colors (Selenized Dark) + +[colors.primary] +background = "#103c48" +foreground = "#adbcbc" + +[colors.normal] +black = "#184956" +red = "#fa5750" +green = "#75b938" +yellow = "#dbb32d" +blue = "#4695f7" +magenta = "#f275be" +cyan = "#41c7b9" +white = "#72898f" + +[colors.bright] +black = "#2d5b69" +red = "#ff665c" +green = "#84c747" +yellow = "#ebc13d" +blue = "#58a3ff" +magenta = "#ff84cd" +cyan = "#53d6c7" +white = "#cad8d9" + diff --git a/Plugin/wxTerminalCtrl/themes/selenized_light.toml b/Plugin/wxTerminalCtrl/themes/selenized_light.toml new file mode 100644 index 0000000000..daa0df06d9 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/selenized_light.toml @@ -0,0 +1,25 @@ +# Colors (Selenized Light) +[colors.primary] +background = '#fbf3db' +foreground = '#53676d' + +[colors.normal] +black = '#ece3cc' +red = '#d2212d' +green = '#489100' +yellow = '#ad8900' +blue = '#0072d4' +magenta = '#ca4898' +cyan = '#009c8f' +white = '#909995' + +[colors.bright] +black = '#d5cdb6' +red = '#cc1729' +green = '#428b00' +yellow = '#a78300' +blue = '#006dce' +magenta = '#c44392' +cyan = '#00978a' +white = '#3a4d53' + diff --git a/Plugin/wxTerminalCtrl/themes/seoul256-light.toml b/Plugin/wxTerminalCtrl/themes/seoul256-light.toml new file mode 100644 index 0000000000..37880fc39f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/seoul256-light.toml @@ -0,0 +1,71 @@ +# Seoul256 Light Alacritty Colors +## name: seoul256-light +## inspired by: https://github.com/junegunn/seoul256.vim + +[colors.primary] +background = "#dadada" # light_bg (253) +foreground = "#4e4e4e" # light_fg (239) +dim_foreground = "#616161" # slightly darker than foreground +bright_foreground = "#3a3a3a" # slightly brighter than foreground + +[colors.cursor] +text = "#dadada" # background +cursor = "#4e4e4e" # foreground + +[colors.vi_mode_cursor] +text = "#dadada" # background +cursor = "#007299" # blue (24) + +[colors.search.matches] +foreground = "#ffffff" # white (255) +background = "#007299" # blue (74) + +[colors.search.focused_match] +foreground = "#ffffff" # white (255) +background = "#005f87" # darker blue + +[colors.footer_bar] +foreground = "#4e4e4e" # foreground +background = "#bcbcbc" # light grey (250) + +[colors.hints.start] +foreground = "#4e4e4e" # foreground +background = "#d7afaf" # light pink (181) + +[colors.hints.end] +foreground = "#4e4e4e" # foreground +background = "#d0d0d0" # slightly darker than background (252) + +[colors.selection] +text = "#4e4e4e" # foreground +background = "#bcdede" # light cyan (152) + +[colors.normal] +black = "#4e4e4e" # light_fg (239) +red = "#af005f" # dark red (125) +green = "#5f875f" # green (65) +yellow = "#af5f00" # orange/yellow (130) +blue = "#007173" # blue (23) +magenta = "#870087" # magenta (90) +cyan = "#008787" # cyan (30) +white = "#e4e4e4" # very light grey (254) + +[colors.bright] +black = "#626262" # grey (241) +red = "#d70087" # bright red (162) +green = "#87af87" # bright green (108) +yellow = "#dfbc72" # bright yellow (179) +blue = "#5fafd7" # bright blue (74) +magenta = "#af5fff" # bright magenta (135) +cyan = "#00afaf" # bright cyan (37) +white = "#ffffff" # white (231) + +[colors.dim] +black = "#3a3a3a" # darker grey (237) +red = "#9B1D72" # dim red (89) +green = "#719872" # dim green (65) +yellow = "#BE9873" # dim yellow (137) +blue = "#719899" # dim blue (66) +magenta = "#9A7599" # dim magenta (96) +cyan = "#6FBCBD" # dim cyan (73) +white = "#d0d0d0" # dim white (252) diff --git a/Plugin/wxTerminalCtrl/themes/smoooooth.toml b/Plugin/wxTerminalCtrl/themes/smoooooth.toml new file mode 100644 index 0000000000..bdda69fd5c --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/smoooooth.toml @@ -0,0 +1,33 @@ +# Color theme ported from iTerm 2 Smoooooth + +[colors.primary] +foreground = '#dbdbdb' +background = '#14191e' + +[colors.cursor] +text = '#000000' +cursor = '#fefffe' + +[colors.selection] +text = '#000000' +background = '#b3d7ff' + +[colors.normal] +black = '#14191e' +red = '#b43c29' +green = '#00c200' +yellow = '#c7c400' +blue = '#2743c7' +magenta = '#bf3fbd' +cyan = '#00c5c7' +white = '#c7c7c7' + +[colors.bright] +black = '#676767' +red = '#dc7974' +green = '#57e690' +yellow = '#ece100' +blue = '#a6aaf1' +magenta = '#e07de0' +cyan = '#5ffdff' +white = '#feffff' diff --git a/Plugin/wxTerminalCtrl/themes/snazzy.toml b/Plugin/wxTerminalCtrl/themes/snazzy.toml new file mode 100644 index 0000000000..1d47914e68 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/snazzy.toml @@ -0,0 +1,28 @@ +# Colors (Snazzy) + +# Default colors +[colors.primary] +background = '#282a36' +foreground = '#eff0eb' + +# Normal colors +[colors.normal] +black = '#282a36' +red = '#ff5c57' +green = '#5af78e' +yellow = '#f3f99d' +blue = '#57c7ff' +magenta = '#ff6ac1' +cyan = '#9aedfe' +white = '#f1f1f0' + +# Bright colors +[colors.bright] +black = '#686868' +red = '#ff5c57' +green = '#5af78e' +yellow = '#f3f99d' +blue = '#57c7ff' +magenta = '#ff6ac1' +cyan = '#9aedfe' +white = '#f1f1f0' diff --git a/Plugin/wxTerminalCtrl/themes/solarized_dark.toml b/Plugin/wxTerminalCtrl/themes/solarized_dark.toml new file mode 100644 index 0000000000..dbcce2b6fc --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/solarized_dark.toml @@ -0,0 +1,28 @@ +# Colors (Solarized Dark) + +# Default colors +[colors.primary] +background = '#002b36' +foreground = '#839496' + +# Normal colors +[colors.normal] +black = '#073642' +red = '#dc322f' +green = '#859900' +yellow = '#b58900' +blue = '#268bd2' +magenta = '#d33682' +cyan = '#2aa198' +white = '#eee8d5' + +# Bright colors +[colors.bright] +black = '#002b36' +red = '#cb4b16' +green = '#586e75' +yellow = '#657b83' +blue = '#839496' +magenta = '#6c71c4' +cyan = '#93a1a1' +white = '#fdf6e3' diff --git a/Plugin/wxTerminalCtrl/themes/solarized_light.toml b/Plugin/wxTerminalCtrl/themes/solarized_light.toml new file mode 100644 index 0000000000..3f7eb25fd9 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/solarized_light.toml @@ -0,0 +1,28 @@ +# Colors (Solarized Light) + +# Default colors +[colors.primary] +background = '#fdf6e3' +foreground = '#586e75' + +# Normal colors +[colors.normal] +black = '#073642' +red = '#dc322f' +green = '#859900' +yellow = '#b58900' +blue = '#268bd2' +magenta = '#d33682' +cyan = '#2aa198' +white = '#eee8d5' + +# Bright colors +[colors.bright] +black = '#002b36' +red = '#cb4b16' +green = '#586e75' +yellow = '#657b83' +blue = '#839496' +magenta = '#6c71c4' +cyan = '#93a1a1' +white = '#fdf6e3' diff --git a/Plugin/wxTerminalCtrl/themes/solarized_osaka.toml b/Plugin/wxTerminalCtrl/themes/solarized_osaka.toml new file mode 100644 index 0000000000..0f25c291c7 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/solarized_osaka.toml @@ -0,0 +1,29 @@ +# Colors (Solarized Osaka) +# Source https://github.com/craftzdog/solarized-osaka.nvim + +# Default colors +[colors.primary] +background = '#001a1d' +foreground = '#839496' + +# Normal colors +[colors.normal] +black = '#073642' +red = '#dc322f' +green = '#859900' +yellow = '#b58900' +blue = '#268bd2' +magenta = '#d33682' +cyan = '#2aa198' +white = '#eee8d5' + +# Bright colors +[colors.bright] +black = '#4c4c4c' +red = '#cb4b16' +green = '#586e75' +yellow = '#657b83' +blue = '#839496' +magenta = '#6c71c4' +cyan = '#93a1a1' +white = '#fdf6e3' diff --git a/Plugin/wxTerminalCtrl/themes/solarized_osaka_day.toml b/Plugin/wxTerminalCtrl/themes/solarized_osaka_day.toml new file mode 100644 index 0000000000..2a93bb0332 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/solarized_osaka_day.toml @@ -0,0 +1,29 @@ +# Colors (Solarized Osaka: Day) +# Source https://github.com/craftzdog/solarized-osaka.nvim + +# Default colors +[colors.primary] +background = '#fdf5e0' +foreground = '#586e74' + +# Normal colors +[colors.normal] +black = '#073642' +red = '#dc322f' +green = '#859900' +yellow = '#b58900' +blue = '#268bd2' +magenta = '#d33682' +cyan = '#2aa198' +white = '#eee8d5' + +# Bright colors +[colors.bright] +black = '#4c4c4c' +red = '#cb4b16' +green = '#586e75' +yellow = '#657b83' +blue = '#839496' +magenta = '#6c71c4' +cyan = '#93a1a1' +white = '#fdf6e3' diff --git a/Plugin/wxTerminalCtrl/themes/sonokai.toml b/Plugin/wxTerminalCtrl/themes/sonokai.toml new file mode 100644 index 0000000000..537ca4635b --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/sonokai.toml @@ -0,0 +1,33 @@ +# sonokai.toml: Sonokai color scheme for Alacritty. + +[colors.primary] +foreground = "#e2e2e3" +background = "#2c2e34" + +[colors.normal] +black = "#181819" +red = "#fc5d7c" +green = "#9ed072" +yellow = "#e7c664" +blue = "#76cce0" +magenta = "#b39df3" +cyan = "#f39660" +white = "#e2e2e3" + +[colors.bright] +black = "#7f8490" +red = "#fc5d7c" +green = "#9ed072" +yellow = "#e7c664" +blue = "#76cce0" +magenta = "#b39df3" +cyan = "#f39660" +white = "#e2e2e3" + +[colors.cursor] +text = "#2c2e34" +cursor = "#e2e2e3" + +[colors.selection] +text = "CellForeground" +background = "#414550" diff --git a/Plugin/wxTerminalCtrl/themes/spacegray.toml b/Plugin/wxTerminalCtrl/themes/spacegray.toml new file mode 100644 index 0000000000..3543c8331f --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/spacegray.toml @@ -0,0 +1,33 @@ +# Spacegray, from Sublime Text +# Source https://github.com/SublimeText/Spacegray + +# Default colors +[colors.primary] +background = '#20242d' +foreground = '#b3b8c3' + +[colors.cursor] +text = '#b3b8c3' +cursor = '#b3b8c3' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#b04b57' +green = '#87b379' +yellow = '#e5c179' +blue = '#7d8fa4' +magenta = '#a47996' +cyan = '#85a7a5' +white = '#b3b8c3' + +# Bright colors +[colors.bright] +black = '#000000' +red = '#b04b57' +green = '#87b379' +yellow = '#e5c179' +blue = '#7d8fa4' +magenta = '#a47996' +cyan = '#85a7a5' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/synthwave_84.toml b/Plugin/wxTerminalCtrl/themes/synthwave_84.toml new file mode 100644 index 0000000000..89df6663a4 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/synthwave_84.toml @@ -0,0 +1,23 @@ +[colors.primary] +foreground = "#ffffff" +background = "#262335" + +[colors.normal] +black = "#262335" +red = "#fe4450" +green = "#72f1b8" +yellow = "#f3e70f" +blue = "#03edf9" +magenta = "#ff7edb" +cyan = "#03edf9" +white = "#ffffff" + +[colors.bright] +black = "#614d85" +red = "#fe4450" +green = "#72f1b8" +yellow = "#fede5d" +blue = "#03edf9" +magenta = "#ff7edb" +cyan = "#03edf9" +white = "#ffffff" diff --git a/Plugin/wxTerminalCtrl/themes/taerminal.toml b/Plugin/wxTerminalCtrl/themes/taerminal.toml new file mode 100644 index 0000000000..1ae012ab02 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/taerminal.toml @@ -0,0 +1,32 @@ +# Colors (Taerminal) + +# Default colors +[colors.primary] +background = '#26282a' +foreground = '#f0f0f0' + +[colors.cursor] +background = '#f0f0f0' +foreground = '#26282a' + +# Normal colors +[colors.normal] +black = '#26282a' +red = '#ff8878' +green = '#b4fb73' +yellow = '#fffcb7' +blue = '#8bbce5' +magenta = '#ffb2fe' +cyan = '#a2e1f8' +white = '#f1f1f1' + +# Bright colors +[colors.bright] +black = '#6f6f6f' +red = '#fe978b' +green = '#d6fcba' +yellow = '#fffed5' +blue = '#c2e3ff' +magenta = '#ffc6ff' +cyan = '#c0e9f8' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/tango_dark.toml b/Plugin/wxTerminalCtrl/themes/tango_dark.toml new file mode 100644 index 0000000000..55541a9823 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tango_dark.toml @@ -0,0 +1,25 @@ +# GNOME Terminal Tango Dark + +[colors.primary] +background = '#2e3436' +foreground = '#d3d7cf' + +[colors.normal] +black = '#2e3436' +red = '#cc0000' +green = '#4e9a06' +yellow = '#c4a000' +blue = '#3465a4' +magenta = '#75507b' +cyan = '#06989a' +white = '#d3d7cf' + +[colors.bright] +black = '#555753' +red = '#ef2929' +green = '#8ae234' +yellow = '#fce94f' +blue = '#729fcf' +magenta = '#ad7fa8' +cyan = '#34e2e2' +white = '#eeeeec' diff --git a/Plugin/wxTerminalCtrl/themes/tender.toml b/Plugin/wxTerminalCtrl/themes/tender.toml new file mode 100644 index 0000000000..9e09a06e87 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tender.toml @@ -0,0 +1,26 @@ +# Default colors +[colors.primary] +background = '#282828' +foreground = '#eeeeee' + +# Normal colors +[colors.normal] +black = '#282828' +red = '#f43753' +green = '#c9d05c' +yellow = '#ffc24b' +blue = '#b3deef' +magenta = '#d3b987' +cyan = '#73cef4' +white = '#eeeeee' + +# Bright colors +[colors.bright] +black = '#4c4c4c' +red = '#f43753' +green = '#c9d05c' +yellow = '#ffc24b' +blue = '#b3deef' +magenta = '#d3b987' +cyan = '#73cef4' +white = '#feffff' diff --git a/Plugin/wxTerminalCtrl/themes/terafox.toml b/Plugin/wxTerminalCtrl/themes/terafox.toml new file mode 100644 index 0000000000..84b7f6d6a2 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/terafox.toml @@ -0,0 +1,71 @@ +# Nightfox Alacritty Colors +## name: terafox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/terafox/alacritty.toml + +[colors.primary] +background = "#152528" +foreground = "#e6eaea" +dim_foreground = "#cbd9d8" +bright_foreground = "#eaeeee" + +[colors.cursor] +text = "#e6eaea" +cursor = "#cbd9d8" + +[colors.vi_mode_cursor] +text = "#e6eaea" +cursor = "#a1cdd8" + +[colors.search.matches] +foreground = "#e6eaea" +background = "#425e5e" + +[colors.search.focused_match] +foreground = "#e6eaea" +background = "#7aa4a1" + +[colors.footer_bar] +foreground = "#e6eaea" +background = "#254147" + +[colors.hints.start] +foreground = "#e6eaea" +background = "#ff8349" + +[colors.hints.end] +foreground = "#e6eaea" +background = "#254147" + +[colors.selection] +text = "#e6eaea" +background = "#293e40" + +[colors.normal] +black = "#2f3239" +red = "#e85c51" +green = "#7aa4a1" +yellow = "#fda47f" +blue = "#5a93aa" +magenta = "#ad5c7c" +cyan = "#a1cdd8" +white = "#ebebeb" + +[colors.bright] +black = "#4e5157" +red = "#eb746b" +green = "#8eb2af" +yellow = "#fdb292" +blue = "#73a3b7" +magenta = "#b97490" +cyan = "#afd4de" +white = "#eeeeee" + +[colors.dim] +black = "#282a30" +red = "#c54e45" +green = "#688b89" +yellow = "#d78b6c" +blue = "#4d7d90" +magenta = "#934e69" +cyan = "#89aeb8" +white = "#c8c8c8" diff --git a/Plugin/wxTerminalCtrl/themes/terminal_app.toml b/Plugin/wxTerminalCtrl/themes/terminal_app.toml new file mode 100644 index 0000000000..838f7a5dee --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/terminal_app.toml @@ -0,0 +1,28 @@ +# Colors (Terminal.app) + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#b6b6b6' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#990000' +green = '#00a600' +yellow = '#999900' +blue = '#0000b2' +magenta = '#b200b2' +cyan = '#00a6b2' +white = '#bfbfbf' + +# Bright colors +[colors.bright] +black = '#666666' +red = '#e50000' +green = '#00d900' +yellow = '#e5e500' +blue = '#0000ff' +magenta = '#e500e5' +cyan = '#00e5e5' +white = '#e5e5e5' diff --git a/Plugin/wxTerminalCtrl/themes/thelovelace.toml b/Plugin/wxTerminalCtrl/themes/thelovelace.toml new file mode 100644 index 0000000000..461474ec5e --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/thelovelace.toml @@ -0,0 +1,26 @@ +# Default colors +[colors.primary] +background = '#1D1F28' +foreground = '#FDFDFD' + +# Normal colors +[colors.normal] +# Bright colors +black = '#282A36' +red = '#F37F97' +green = '#5ADECD' +yellow = '#F2A272' +blue = '#8897F4' +magenta = '#C574DD' +cyan = '#79E6F3' +white = '#FDFDFD' + +[colors.bright] +black = '#414458' +red = '#FF4971' +green = '#18E3C8' +yellow = '#EBCB8B' +blue = '#FF8037' +magenta = '#556FFF' +cyan = '#3FDCEE' +white = '#BEBEC1' diff --git a/Plugin/wxTerminalCtrl/themes/tokyo_night.toml b/Plugin/wxTerminalCtrl/themes/tokyo_night.toml new file mode 100644 index 0000000000..0642a90774 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tokyo_night.toml @@ -0,0 +1,29 @@ +# Colors (Tokyo Night) +# Source https//github.com/zatchheems/tokyo-night-alacritty-theme + +# Default colors +[colors.primary] +background = '#1a1b26' +foreground = '#a9b1d6' + +# Normal colors +[colors.normal] +black = '#32344a' +red = '#f7768e' +green = '#9ece6a' +yellow = '#e0af68' +blue = '#7aa2f7' +magenta = '#ad8ee6' +cyan = '#449dab' +white = '#787c99' + +# Bright colors +[colors.bright] +black = '#444b6a' +red = '#ff7a93' +green = '#b9f27c' +yellow = '#ff9e64' +blue = '#7da6ff' +magenta = '#bb9af7' +cyan = '#0db9d7' +white = '#acb0d0' diff --git a/Plugin/wxTerminalCtrl/themes/tokyo_night_enhanced.toml b/Plugin/wxTerminalCtrl/themes/tokyo_night_enhanced.toml new file mode 100644 index 0000000000..90ba82bde3 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tokyo_night_enhanced.toml @@ -0,0 +1,30 @@ +[colors.primary] +background = "#08080b" +foreground = "#787c99" + +[colors.cursor] +cursor = "#787c99" + +[colors.selection] +text = "CellForeground" +background = "#515c7e" + +[colors.normal] +black = "#363b54" +red = "#f7768e" +green = "#41a6b5" +yellow = "#e0af68" +blue = "#7aa2f7" +magenta = "#bb9af7" +cyan = "#7dcfff" +white = "#787c99" + +[colors.bright] +black = "#363b54" +red = "#f7768e" +green = "#41a6b5" +yellow = "#e0af68" +blue = "#7aa2f7" +magenta = "#bb9af7" +cyan = "#7dcfff" +white = "#787c99" diff --git a/Plugin/wxTerminalCtrl/themes/tokyo_night_storm.toml b/Plugin/wxTerminalCtrl/themes/tokyo_night_storm.toml new file mode 100644 index 0000000000..992f1d3041 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tokyo_night_storm.toml @@ -0,0 +1,29 @@ +# Colors (Tokyo Night Storm variant) +# Source https//github.com/zatchheems/tokyo-night-alacritty-theme + +# Default colors +[colors.primary] +background = '#24283b' +foreground = '#a9b1d6' + +# Normal colors +[colors.normal] +black = '#32344a' +red = '#f7768e' +green = '#9ece6a' +yellow = '#e0af68' +blue = '#7aa2f7' +magenta = '#ad8ee6' +cyan = '#449dab' +white = '#9699a8' + +# Bright colors +[colors.bright] +black = '#444b6a' +red = '#ff7a93' +green = '#b9f27c' +yellow = '#ff9e64' +blue = '#7da6ff' +magenta = '#bb9af7' +cyan = '#0db9d7' +white = '#acb0d0' diff --git a/Plugin/wxTerminalCtrl/themes/tomorrow.toml b/Plugin/wxTerminalCtrl/themes/tomorrow.toml new file mode 100644 index 0000000000..3287e06810 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tomorrow.toml @@ -0,0 +1,29 @@ +# Colors (Tomorrow) + +[colors.primary] +background = '#ffffff' +foreground = '#4d4d4c' + +[colors.cursor] +cursor = '#d6d6d6' +text = '#ffffff' + +[colors.normal] +black = '#1d1f21' +red = '#c82829' +green = '#718c00' +yellow = '#f5871f' +blue = '#4271ae' +magenta = '#8959a8' +cyan = '#3e999f' +white = '#d6d6d6' + +[colors.bright] +black = '#8e908c' +red = '#ff3334' +green = '#89aa00' +yellow = '#eab700' +blue = '#5795e6' +magenta = '#b777e0' +cyan = '#66bdc3' +white = '#efefef' diff --git a/Plugin/wxTerminalCtrl/themes/tomorrow_night.toml b/Plugin/wxTerminalCtrl/themes/tomorrow_night.toml new file mode 100644 index 0000000000..579ebd8982 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tomorrow_night.toml @@ -0,0 +1,32 @@ +# Colors (Tomorrow Night) + +# Default colors +[colors.primary] +background = '#1d1f21' +foreground = '#c5c8c6' + +[colors.cursor] +text = '#1d1f21' +cursor = '#ffffff' + +# Normal colors +[colors.normal] +black = '#1d1f21' +red = '#cc6666' +green = '#b5bd68' +yellow = '#e6c547' +blue = '#81a2be' +magenta = '#b294bb' +cyan = '#70c0ba' +white = '#373b41' + +# Bright colors +[colors.bright] +black = '#666666' +red = '#ff3334' +green = '#9ec400' +yellow = '#f0c674' +blue = '#81a2be' +magenta = '#b77ee0' +cyan = '#54ced6' +white = '#282a2e' diff --git a/Plugin/wxTerminalCtrl/themes/tomorrow_night_blue.toml b/Plugin/wxTerminalCtrl/themes/tomorrow_night_blue.toml new file mode 100644 index 0000000000..c5c6d610bd --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tomorrow_night_blue.toml @@ -0,0 +1,29 @@ +# Colors (Tomorrow Night Blue) + +[colors.primary] +background = '#002451' +foreground = '#ffffff' + +[colors.cursor] +cursor = '#ffffff' +text = '#003f8e' + +[colors.normal] +black = '#002451' +red = '#ff9da4' +green = '#d1f1a9' +yellow = '#ffc58f' +blue = '#bbdaff' +magenta = '#ebbbff' +cyan = '#99ffff' +white = '#7285b7' + +[colors.bright] +black = '#7285b7' +red = '#ff9da4' +green = '#d1f1a9' +yellow = '#ffc58f' +blue = '#bbdaff' +magenta = '#ebbbff' +cyan = '#99ffff' +white = '#7285b7' diff --git a/Plugin/wxTerminalCtrl/themes/tomorrow_night_bright.toml b/Plugin/wxTerminalCtrl/themes/tomorrow_night_bright.toml new file mode 100644 index 0000000000..9ce62a39f3 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tomorrow_night_bright.toml @@ -0,0 +1,28 @@ +# Colors (Tomorrow Night Bright) + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#eaeaea' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#d54e53' +green = '#b9ca4a' +yellow = '#e6c547' +blue = '#7aa6da' +magenta = '#c397d8' +cyan = '#70c0ba' +white = '#424242' + +# Bright colors +[colors.bright] +black = '#666666' +red = '#ff3334' +green = '#9ec400' +yellow = '#e7c547' +blue = '#7aa6da' +magenta = '#b77ee0' +cyan = '#54ced6' +white = '#2a2a2a' diff --git a/Plugin/wxTerminalCtrl/themes/tomorrow_night_eighties.toml b/Plugin/wxTerminalCtrl/themes/tomorrow_night_eighties.toml new file mode 100644 index 0000000000..36fa009924 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/tomorrow_night_eighties.toml @@ -0,0 +1,29 @@ +# Colors (Tomorrow Night Eighties) + +[colors.primary] +background = '#2d2d2d' +foreground = '#cccccc' + +[colors.cursor] +cursor = '#cccccc' +text = '#2d2d2d' + +[colors.normal] +black = '#2d2d2d' +red = '#f2777a' +green = '#99cc99' +yellow = '#f99157' +blue = '#6699cc' +magenta = '#cc99cc' +cyan = '#66cccc' +white = '#515151' + +[colors.bright] +black = '#666666' +red = '#ff3334' +green = '#9ec400' +yellow = '#ffcc66' +blue = '#6699cc' +magenta = '#b77ee0' +cyan = '#54ced6' +white = '#393939' diff --git a/Plugin/wxTerminalCtrl/themes/ubuntu.toml b/Plugin/wxTerminalCtrl/themes/ubuntu.toml new file mode 100644 index 0000000000..952cc07272 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/ubuntu.toml @@ -0,0 +1,33 @@ +# 0x From the Ubuntu terminal color palette + +# 0x Default colors +[colors.primary] +background = '#300a24' +foreground = '#eeeeec' + +# 0x Colors the cursor will use if `custom_cursor_colors` is true +[colors.cursor] +text = '#bbbbbb' +cursor = '#b4d5ff' + +# 0x Normal colors +[colors.normal] +black = '#2e3436' +red = '#cc0000' +green = '#4e9a06' +yellow = '#c4a000' +blue = '#3465a4' +magenta = '#75507b' +cyan = '#06989a' +white = '#d3d7cf' + +# 0x Bright colors +[colors.bright] +black = '#555753' +red = '#ef2929' +green = '#8ae234' +yellow = '#fce94f' +blue = '#729fcf' +magenta = '#ad7fa8' +cyan = '#34e2e2' +white = '#eeeeec' diff --git a/Plugin/wxTerminalCtrl/themes/vesper.toml b/Plugin/wxTerminalCtrl/themes/vesper.toml new file mode 100644 index 0000000000..dea338cf43 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/vesper.toml @@ -0,0 +1,26 @@ +# Colors (Vesper) +# Source https://github.com/raunofreiberg/vesper + +[colors.primary] +background = '#101010' +foreground = '#ffffff' + +[colors.normal] +black = '#101010' +red = '#f5a191' +green = '#90b99f' +yellow = '#e6b99d' +blue = '#aca1cf' +magenta = '#e29eca' +cyan = '#ea83a5' +white = '#a0a0a0' + +[colors.bright] +black = '#7e7e7e' +red = '#ff8080' +green = '#99ffe4' +yellow = '#ffc799' +blue = '#b9aeda' +magenta = '#ecaad6' +cyan = '#f591b2' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/vscode.toml b/Plugin/wxTerminalCtrl/themes/vscode.toml new file mode 100644 index 0000000000..6d40ab2d1b --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/vscode.toml @@ -0,0 +1,23 @@ +[colors.primary] +foreground = "#cccccc" +background = "#1e1e1e" + +[colors.normal] +black = "#000000" +red = "#cd3131" +green = "#0dbc79" +yellow = "#e5e510" +blue = "#2472c8" +magenta = "#bc3fbc" +cyan = "#11a8cd" +white = "#e5e5e5" + +[colors.bright] +black = "#666666" +red = "#f14c4c" +green = "#23d18b" +yellow = "#f5f543" +blue = "#3b8eea" +magenta = "#d670d6" +cyan = "#29b8db" +white = "#e5e5e5" diff --git a/Plugin/wxTerminalCtrl/themes/wombat.toml b/Plugin/wxTerminalCtrl/themes/wombat.toml new file mode 100644 index 0000000000..fb13a54994 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/wombat.toml @@ -0,0 +1,28 @@ +# Colors (Wombat) + +# Default colors +[colors.primary] +background = '#1f1f1f' +foreground = '#e5e1d8' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#f7786d' +green = '#bde97c' +yellow = '#efdfac' +blue = '#6ebaf8' +magenta = '#ef88ff' +cyan = '#90fdf8' +white = '#e5e1d8' + +# Bright colors +[colors.bright] +black = '#b4b4b4' +red = '#f99f92' +green = '#e3f7a1' +yellow = '#f2e9bf' +blue = '#b3d2ff' +magenta = '#e5bdff' +cyan = '#c2fefa' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/xterm.toml b/Plugin/wxTerminalCtrl/themes/xterm.toml new file mode 100644 index 0000000000..47fd62cb8d --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/xterm.toml @@ -0,0 +1,28 @@ +# XTerm's default colors + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#ffffff' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#cd0000' +green = '#00cd00' +yellow = '#cdcd00' +blue = '#0000ee' +magenta = '#cd00cd' +cyan = '#00cdcd' +white = '#e5e5e5' + +# Bright colors +[colors.bright] +black = '#7f7f7f' +red = '#ff0000' +green = '#00ff00' +yellow = '#ffff00' +blue = '#5c5cff' +magenta = '#ff00ff' +cyan = '#00ffff' +white = '#ffffff' diff --git a/Plugin/wxTerminalCtrl/themes/zenburn.toml b/Plugin/wxTerminalCtrl/themes/zenburn.toml new file mode 100644 index 0000000000..9c6fcd0964 --- /dev/null +++ b/Plugin/wxTerminalCtrl/themes/zenburn.toml @@ -0,0 +1,29 @@ +# Colors (Zenburn) +# Orginally designed by jnurmine for vim. + +# Default colors +[colors.primary] +background = '#3A3A3A' +foreground = '#DCDCCC' + +# Normal colors +[colors.normal] +black = '#1E2320' +red = '#D78787' +green = '#60B48A' +yellow = '#DFAF8F' +blue = '#506070' +magenta = '#DC8CC3' +cyan = '#8CD0D3' +white = '#DCDCCC' + +# Bright colors +[colors.bright] +black = '#709080' +red = '#DCA3A3' +green = '#C3BF9F' +yellow = '#F0DFAF' +blue = '#94BFF3' +magenta = '#EC93D3' +cyan = '#93E0E3' +white = '#FFFFFF' diff --git a/cmake/Modules/UtilsHelper.cmake b/cmake/Modules/UtilsHelper.cmake index 0aee3af8ba..9aecaf8ee2 100644 --- a/cmake/Modules/UtilsHelper.cmake +++ b/cmake/Modules/UtilsHelper.cmake @@ -102,6 +102,14 @@ macro(codelite_install_svgs) PATTERN "*.svg") endmacro() +macro(codelite_install_terminal_themes) + install( + DIRECTORY ${CL_SRC_ROOT}/Plugin/wxTerminalCtrl/themes + DESTINATION ${CL_RESOURCES_DIR}/terminal_themes + FILES_MATCHING + PATTERN "*.toml") +endmacro() + function(get_distro_name DISTRO_NAME) execute_process( COMMAND /bin/bash "-c" "cat /etc/os-release |grep ^ID=|cut -d = -f 2" diff --git a/submodules/wxTerminalEmulator b/submodules/wxTerminalEmulator index ca149354cf..7eac16c9d5 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit ca149354cf6bb2be6a882170cfd8d4b5e36db1fd +Subproject commit 7eac16c9d581ae62653b490bfa1d31a55aadd917 From 03ebbe96cfc6baeeabd19cb7cd55754bd70b9939 Mon Sep 17 00:00:00 2001 From: Eran Ifrah Date: Tue, 31 Mar 2026 19:45:51 +0300 Subject: [PATCH 16/16] Fixed build on non-macOS platforms Signed-off-by: Eran Ifrah --- LiteEditor/app.cpp | 2 ++ LiteEditor/app.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/LiteEditor/app.cpp b/LiteEditor/app.cpp index 0173cf4906..5d6f6cb233 100644 --- a/LiteEditor/app.cpp +++ b/LiteEditor/app.cpp @@ -896,6 +896,7 @@ bool CodeLiteApp::IsSingleInstance(const wxCmdLineParser& m_parser) return true; } +#ifdef __WXMAC__ void CodeLiteApp::MacOpenFile(const wxString& fileName) { switch (FileExtManager::GetType(fileName)) { @@ -907,6 +908,7 @@ void CodeLiteApp::MacOpenFile(const wxString& fileName) break; } } +#endif void CodeLiteApp::MSWReadRegistry() { diff --git a/LiteEditor/app.h b/LiteEditor/app.h index 5aedfbff79..a0a556819d 100644 --- a/LiteEditor/app.h +++ b/LiteEditor/app.h @@ -49,7 +49,9 @@ class CodeLiteApp : public wxApp void SetParserPaths(const wxArrayString& parserPaths) { this->m_parserPaths = parserPaths; } const wxArrayString& GetParserPaths() const { return m_parserPaths; } +#ifdef __WXMAC__ void MacOpenFile(const wxString& fileName) override; +#endif void SetStartedInDebuggerMode(bool startedInDebuggerMode) { this->m_startedInDebuggerMode = startedInDebuggerMode; } bool IsStartedInDebuggerMode() const { return m_startedInDebuggerMode; }