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..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; @@ -284,117 +260,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; @@ -415,29 +284,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, @@ -453,28 +310,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, @@ -490,26 +335,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, @@ -546,13 +381,19 @@ 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; } BOOL ret = FALSE; { - ConsoleAttacher ca(prc->GetPid()); ret = CreateProcess(NULL, cmd.wchar_str(), // shell line execution command NULL, // process security attributes @@ -573,30 +414,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(); @@ -829,46 +646,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..43590c5e87 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 @@ -109,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 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/CodeLite/event_notifier.cpp b/CodeLite/event_notifier.cpp index 1aaf037b2c..bc64033545 100644 --- a/CodeLite/event_notifier.cpp +++ b/CodeLite/event_notifier.cpp @@ -102,3 +102,47 @@ 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; + } + + 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/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/CodeLite/procutils.cpp b/CodeLite/procutils.cpp index b1ed3a9249..7865831c67 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,32 @@ 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; - } - - tmpbuf.Clear(); - if (proc->Read(tmpbuf)) { - // as long as we read something, don't sleep... - buff << tmpbuf; - } else { - wxThread::Sleep(1); + 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; } - } - - 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; + if (!err.empty()) { + accumlated_output += err; } - proc->Read(tmpbuf); - while (!tmpbuf.IsEmpty()) { - buff << tmpbuf; - tmpbuf.Clear(); - proc->Read(tmpbuf); + if (shutdown_flag == nullptr) { + return true; } - proc->Cleanup(); - LOG_IF_TRACE { clDEBUG1() << "reading process output remainder...done" << endl; } + return !shutdown_flag->load(); + }; + + 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/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/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/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/app.cpp b/LiteEditor/app.cpp index 64f3a70b40..5d6f6cb233 100644 --- a/LiteEditor/app.cpp +++ b/LiteEditor/app.cpp @@ -25,6 +25,7 @@ #include "app.h" +#include #ifdef __WXGTK__ #include "exelocator.h" #endif @@ -517,6 +518,12 @@ bool CodeLiteApp::OnInit() 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 // running CodeLite has no write permissions to /usr/share/codelite/... @@ -889,6 +896,7 @@ bool CodeLiteApp::IsSingleInstance(const wxCmdLineParser& m_parser) return true; } +#ifdef __WXMAC__ void CodeLiteApp::MacOpenFile(const wxString& fileName) { switch (FileExtManager::GetType(fileName)) { @@ -900,6 +908,7 @@ void CodeLiteApp::MacOpenFile(const wxString& fileName) break; } } +#endif void CodeLiteApp::MSWReadRegistry() { @@ -1183,3 +1192,5 @@ 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..a0a556819d 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(); @@ -77,7 +49,9 @@ 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); +#ifdef __WXMAC__ + void MacOpenFile(const wxString& fileName) override; +#endif void SetStartedInDebuggerMode(bool startedInDebuggerMode) { this->m_startedInDebuggerMode = startedInDebuggerMode; } bool IsStartedInDebuggerMode() const { return m_startedInDebuggerMode; } @@ -104,11 +78,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/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..7f8d8a74b6 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) @@ -129,3 +131,5 @@ else() LIBRARY DESTINATION ${CL_INSTALL_BIN} ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) endif() + +codelite_install_terminal_themes() 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 ebbeec889d..c1cc51e084 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.cpp @@ -3,172 +3,131 @@ #include "ColoursAndFontsManager.h" #include "CompilerLocator/CompilerLocatorMSVC.h" #include "FontUtils.hpp" +#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" #include "ssh/ssh_account_info.h" +#include "terminal_view.h" #include "wxTerminalOutputCtrl.hpp" #include #include +#include +#include #include +#include + +namespace +{ +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()}); + } + 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)); + 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->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); + 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() { - 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); + EventNotifier::Get()->Unbind(wxEVT_SYS_COLOURS_CHANGED, &clBuiltinTerminalPane::OnThemeChanged, 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 +138,62 @@ 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); + // By default, inherit parent's env. + 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); - 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); + } + }); + + // 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")}); + +#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); + + 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")); + ctrl->Bind(wxEVT_MENU, &clBuiltinTerminalPane::OnCtrlE, this, XRCID("Ctrl_ID_end_of_line")); } void clBuiltinTerminalPane::OnSetTitle(wxTerminalEvent& event) @@ -195,34 +202,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 +229,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 +248,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 +282,6 @@ std::map clBuiltinTerminalPane::GetTerminalsOptions(bool sca } #else wxUnusedVar(scan); - terminals.insert({ "bash", "bash" }); #endif return terminals; } @@ -301,41 +296,267 @@ 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) +#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(); +} + +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) { - CHECK_COND_RET(EventNotifier::Get()->TopFrame()->IsActive()); 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()); - // pass it to the active tab - CHECK_PTR_RET(GetActiveTerminal()); - GetActiveTerminal()->ProcessIdle(); + 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 1d978894df..b305f3762b 100644 --- a/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp +++ b/Plugin/wxTerminalCtrl/clBuiltinTerminalPane.hpp @@ -2,27 +2,33 @@ #define CLBUILTINTERMINALPANE_HPP #include "Notebook.h" -#include "clToolBar.h" -#include "wxTerminalCtrl.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: clBuiltinTerminalPane(wxWindow* parent, wxWindowID id = wxID_ANY); virtual ~clBuiltinTerminalPane(); - void Focus(); - bool IsFocused(); - protected: void OnWorkspaceLoaded(clWorkspaceEvent& event); + void OnInitDone(wxCommandEvent& e); 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,13 +36,41 @@ class WXDLLIMPEXP_SDK clBuiltinTerminalPane : public wxPanel std::map GetTerminalsOptions(bool scan = false); void OnScanForTerminals(wxCommandEvent& event); void UpdateTerminalsChoice(bool scan); - void OnIdle(wxIdleEvent& event); + 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); +#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: - wxTerminalCtrl* GetActiveTerminal(); - clToolBar* m_toolbar = nullptr; + 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/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/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( 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/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 9a869c1c5e..7eac16c9d5 160000 --- a/submodules/wxTerminalEmulator +++ b/submodules/wxTerminalEmulator @@ -1 +1 @@ -Subproject commit 9a869c1c5eaf17e42d8a05107823dc5063b769fc +Subproject commit 7eac16c9d581ae62653b490bfa1d31a55aadd917