{"id":13710302,"url":"https://github.com/mytbk/fqterm","last_synced_at":"2025-04-11T03:42:52.546Z","repository":{"id":15765518,"uuid":"18504387","full_name":"mytbk/fqterm","owner":"mytbk","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-19T09:00:41.000Z","size":1580,"stargazers_count":62,"open_issues_count":17,"forks_count":28,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-25T01:43:44.532Z","etag":null,"topics":["bbs","qt","qt5","ssh","telnet","term"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mytbk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-04-07T02:18:48.000Z","updated_at":"2025-03-13T07:21:48.000Z","dependencies_parsed_at":"2023-11-19T10:21:06.492Z","dependency_job_id":"dd44bd12-8618-4a90-9cc3-26ef0d70bf78","html_url":"https://github.com/mytbk/fqterm","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mytbk%2Ffqterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mytbk%2Ffqterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mytbk%2Ffqterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mytbk%2Ffqterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mytbk","download_url":"https://codeload.github.com/mytbk/fqterm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248339287,"owners_count":21087213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bbs","qt","qt5","ssh","telnet","term"],"created_at":"2024-08-02T23:00:54.209Z","updated_at":"2025-04-11T03:42:52.508Z","avatar_url":"https://github.com/mytbk.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"## FQTerm\nFQTerm是为Telnet BBS设计的终端模拟器(俗称Term)，支持Telnet,SSH协议。    \n本项目源自QTerm-Qt3,从2008年起，由Curvlet和dp2重写并移植至Qt4.    \n现在FQTerm的原开发组成员已经停止了该项目的维护，现由archlinux(mytbk@GitHub)网友维护并移植至Qt5。    \n\n## 文档\n目前FQTerm还没有特别完整的文档，现在正在进行文档编写。用Markdown编写的文档请见[doc目录](doc/).\n\n## 如何贡献源码\nfork本项目，然后自己开发，提交自己的更改，再创建pull request.    \n详情请看GitHub的帮助:\n- https://help.github.com/articles/fork-a-repo\n- https://help.github.com/articles/using-pull-requests\n\n注意：除 master 之外的分支都会在 master 的基础上 rebase 并用 ``git push --force`` 推上 GitHub.\n\n## 安装\n\n从0.9.9版本开始，Windows 版本的二进制包使用 GitHub releases 发布，请到 https://github.com/mytbk/fqterm/releases 下载 Windows 版本的二进制包。\n\nArchLinux用户可以使用[archlinuxcn仓库](https://wiki.archlinux.org/index.php/Unofficial_user_repositories#archlinuxcn)安装``fqterm-git``包，或者从AUR安装[fqterm-git](https://aur.archlinux.org/packages/fqterm-git/)或Qt5版本[fqterm-qt5-git](https://aur.archlinux.org/packages/fqterm-qt5-git/).\n\n手动编译大致步骤如下:    \n解决依赖: Qt(Qt5版本需要qt5-script,qt5-multimedia,qt5-tools), alsa(Linux)    \n获取代码：      \n```\ngit clone https://github.com/mytbk/fqterm.git\n```\n\n然后开始编译：      \n\n```\n# 假设FQTerm源码目录为fqterm\nmkdir build\ncd build\ncmake ../fqterm\nmake\n# 以root身份安装，以下用sudo获取root权限\nsudo make install\n```\n\n在 macOS (Sierra) 中编译，利用 HomeBrew 安装依赖。目前支持并不完善。\n```shell\nbrew install openssl qt5\nmkdir build\ncd build\nCMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake \\\nOPENSSL_ROOT_DIR=/usr/local/opt/openssl \\\ncmake ../fqterm\nmake\nmake install\n```\n\n## Windows版本\n- 在Linux下用MXE交叉编译，运行时错误，可能原因是MXE的Qt缺少语言Codec\n- MinGW: 发布的Windows二进制包是在Windows 7下用MinGW编译的(静态连接的OpenSSL,Qt4,TDM GCC,构建方式请见项目wiki),编译方法如下  \n```\nREM 假设源码在C:\\fqterm, OpenSSL在C:\\openssl, Qt在C:\\Qt\\4.8.6.static\nmkdir build\ncd build\ncmake -G \"MinGW Makefiles\" -DOPENSSL_ROOT_DIR=C:\\openssl -DCMAKE_CXX_FLAGS=-mwindows -DCMAKE_BUILD_TYPE=Release -DQT_QMAKE_EXECUTABLE=C:\\Qt\\4.8.6.static\\bin\\qmake.exe C:\\fqterm\nmingw32-make\nREM 生成的fqterm.exe即为程序文件\n```\n- MSVC: 经过测试可以使用MSVC2019，Qt5.15.2编译，方法如下\n```\nREM 假设Qt安装在C:\\Qt目录\nmkdir build\ncd build\ncmake.exe -DCMAKE_BUILD_TYPE=RelWithDebInfo -G\"NMake Makefiles\" -DCMAKE_PREFIX_PATH=C:\\qt\\5.15.2\\msvc2019_64 -DOPENSSL_ROOT_DIR=C:\\Qt\\Tools\\OpenSSL\\Win_x64 C:\\fqterm\nnmake\n```\n\n也可以使用JOM加快编译速度\n\n```\nREM 假设Qt安装在C:\\Qt目录\nmkdir build\ncd build\ncmake.exe -DCMAKE_BUILD_TYPE=RelWithDebInfo -G\"NMake Makefiles JOM\" -DCMAKE_PREFIX_PATH=C:\\qt\\5.15.2\\msvc2019_64 -DOPENSSL_ROOT_DIR=C:\\Qt\\Tools\\OpenSSL\\Win_x64 -DCMAKE_MAKE_PROGRAM=C:\\Qt\\Tools\\QtCreator\\bin\\jom\\jom.exe C:\\fqterm\njom\n```\n\n## TODO\n以下是FQTerm日后需要改进和修复的地方，希望大家参与开发。\n- SSH: 建议使用系统的ssh，可参考 [doc/SSH.md](doc/SSH.md). 自带的SSH实现正在重构。\n- 改善终端渲染\n- 使用矢量UI\n- ~~Bug: Qt5分支中Ctrl按键异常 (暂时使用Mac OS的处理方法解决)~~\n- ~~Maybe something wrong with imageviewer (Qt5)~~ 准备删除imageviewer功能\n- 考虑代码重构\n- Bug: 处理不完整GBK字符时存在一些异常，特别是在Qt5分支\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmytbk%2Ffqterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmytbk%2Ffqterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmytbk%2Ffqterm/lists"}