折腾LINUX复古终端

news2024/10/6 20:25:41

这个复古终端是cool-retro-term,先来图
LINUX复古终端
绿色复古终端
黑客帝国复古终端

点击GITHUB地址
开始用docker运行,报错。后来用x11docker,因为我要远程通过SSH的x11转发,但实际x11docker的默认backbone就说docker,也就说要先用docker下载镜像,再用x11docker加载。
X11的GITHUB地址

1.x11docker安装(直接本机docker运行的,这步忽略)

查看这里,照抄

  • 安装
curl -fsSL https://raw.githubusercontent.com/mviereck/x11docker/master/x11docker | sudo bash -s -- --update

遇到科学问题,用科学方法。

  • 安装依赖,我是用x11。如果是用其它agent,另行下载。
 sudo docker pull x11docker/xserver

2.下载cool-retro-term

docker镜像地址
这个镜像没有任何说明,意味着耐折腾。

docker pull jess/cathode

3.运行

x11docker jess/cathode

4.问题来了

报错

QQmlApplicationEngine failed to load component
qrc:/main.qml:137:5: Type TerminalContainer unavailable
qrc:/TerminalContainer.qml:23:5: Type PreprocessedTerminal unavailable
qrc:/PreprocessedTerminal.qml:24:1: module "QMLTermWidget" is not installed
Cannot load QML interface

解决的线索看这里

5.解决

不要中断运行,先进入dockers容器

sudo docker exec -itu 0 32fccdcafcd2 bash  #32fccdcafcd2 是容器id

容器内的根目录如下:

root@32fccdcafcd2:/tmp# cd ..   #到根目录
root@09cfa18cba18:/# dir
bin   dev  home  lib64  mnt  proc  run   src  sys  usr  x11docker
boot  etc  lib   media  opt  root  sbin  srv  tmp  var

进入src目录

root@09cfa18cba18:/# cd /src/
root@09cfa18cba18:/src# dir -l
total 1780
-rw-r--r-- 1 root root   25713 Nov  2  2020 Makefile
-rw-r--r-- 1 root root    7832 Nov  2  2020 README.md
drwxr-xr-x 1 root root    4096 Nov  2  2020 app
-rwxr-xr-x 1 root root 1698328 Nov  2  2020 cool-retro-term
-rw-r--r-- 1 root root     280 Nov  2  2020 cool-retro-term.desktop
-rw-r--r-- 1 root root     182 Nov  2  2020 cool-retro-term.pro
-rw-r--r-- 1 root root   18092 Nov  2  2020 gpl-2.0.txt
-rw-r--r-- 1 root root   35147 Nov  2  2020 gpl-3.0.txt
drwxr-xr-x 5 root root    4096 Nov  2  2020 packaging
drwxr-xr-x 1 root root    4096 Nov  2  2020 qmltermwidget
drwxr-xr-x 2 root root    4096 Nov  2  2020 snap

可以看到

  • 可执行文件 cool-retro-term
  • 前面线索中提到的目录qmltermwidget

按线索操作

root@09cfa18cba18:/src# cp -r qmltermwidget/src/qmldir qmltermwidget/lib/kb-layouts \
qmltermwidget/lib/color-schemes qmltermwidget/src/QMLTermScrollbar.qml \
qmltermwidget/QMLTermWidget

运行程序

root@09cfa18cba18:/src# ./cool-retro-term

成功运行,问题解决!

最后

编写dockfile,重新生成镜像。

vim Dockerfile
FROM jess/cathode
RUN cd /src
RUN cp -r qmltermwidget/src/qmldir qmltermwidget/lib/kb-layouts \
         qmltermwidget/lib/color-schemes qmltermwidget/src/QMLTermScrollbar.qml \
         qmltermwidget/QMLTermWidget

构建镜像

sudo docker build -t jess/cathode:new .

补充

设置和修改主题,鼠标右键,从菜单上选择
修改主题

第三方主题
可以鼠标右键->setting->General->Import,导入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[maven] 实现使用 plugin 及 properties 简述

[maven] 实现&使用 plugin 及 properties 简述 这章内容,我个人感觉可看可不看……? 不过课都上了,笔记 📒 补完才对得起自己嘛 plugins 主要讲一下 maven 的 plugin 时怎么实现的,以及项目中怎么调用自己实现…

成集云 | 用友T+集成聚水潭ERP(用友T+主管供应链)| 解决方案

源系统成集云目标系统 方案介绍 用友T是一款由用友畅捷通推出的新型互联网企业管理系统,它主要满足成长型小微企业对其灵活业务流程的管控需求,并重点解决往来业务管理、订单跟踪、资金、库存等管理难题。 聚水潭是一款以SaaS ERP为核心,集…

mysql事务测试

mysql的事务处理主要有两种方法1、用begin,rollback,commit来实现 begin; -- 开始一个事务 rollback; -- 事务回滚 commit; -- 事务提交 2、直接用set来改变mysql的自动提交模式 mysql默认是自动提交的,也就是你提交一个sql,它就直接执行!我…

微信管理系统可以解决什么问题?

微信作为一款社交通讯软件,已经成为人们日常生活中不可缺少的工具。不仅个人,很多企业都用微信来联系客户、维护客户和营销,这自然而然就会有很多微信账号、手机也多,那管理起来就会带来很多的不便,而微信管理系统正好…

基于径向基神经RBF的空调功率预测,RBF神经网络的详细原理,RBF回归预测代码

目录 完整代码和数据下载链接:基于MATLAB的RBF的空调能耗预测_模糊空调matlab资源-CSDN文库 https://download.csdn.net/download/abc991835105/87833598 RBF的详细原理 RBF的定义 RBF理论 易错及常见问题 RBF应用实例,基于rbf的空调功率预测 代码 结果…

C语言大佬的必杀技---宏的高级用法

C语言大佬的必杀技—宏的高级用法 目录: 字符串化标记的拼接宏的嵌套替换多条语句防止一个文件被重复包含宏和函数的区别 可能大家在学习的时候用得比较少,但是在一些代码量比较大的时候,这样使用,可以大大的提高代码的可读性,…

minio报错should be less than or equal解决方案

minio报错should be less than or equal解决方案 问题背景解决方案Lyric&#xff1a; 当作你的请求 问题背景 在进行minio扩容时&#xff0c;报错 parity validation returned an error: parity 4 should be less than or equal to 2 <- (4, 4), for pool(2nd解决方案 mi…

ModbusTCP 转 Profinet 主站网关控制汇川伺服驱动器配置案例

ModbusTCP Client 通过 ModbusTCP 控制 Profinet 接口设备&#xff0c;Profinet 接口设备接入 DCS/工控机等 兴达易控ModbusTCP转Profinet主站网关&#xff08;XD-ETHPNM20&#xff09;采用数据映射方式进行工作。 使用设备&#xff1a;兴达易控ModbusTCP 转 Profinet 主站网关…

敏捷开发七大步骤和敏捷工具

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中&#xff0c;软件项目的构建被切分成多个子项目&#xff0c;各个子项目的成果都经过测试&#xff0c;具备集成和可运行的特征。敏捷开发并不追求前期完美的设计、完美编码&#xff0c;而是力求在很短的周期内…

2023-9-23 区间分组

题目链接&#xff1a;区间分组 #include <iostream> #include <algorithm> #include <queue>using namespace std;const int N 100010;struct Range {int l, r;bool operator< (const Range &W) const {return l < W.l;} }range[N];int main() {i…

一篇文章带你走进测试工程师的世界

【软件测试行业现状】2023年了你还敢学软件测试&#xff1f;未来已寄..测试人该何去何从&#xff1f;【自动化测试、测试开发、性能测试】 一、 测试工程师&#xff1a; 1、 国内定位和发展前景&#xff1a; 测试工程师&#xff0c;软件质量的把关者&#xff0c;工作起点高&…

Scala最基础入门教程

文章目录 一、简介1、概述2、Idea环境 二、变量和数据类型1、注释2、变量和常量&#xff08;重点&#xff09;3、标识符的命名规范4、关键字(39)5、字符串输出6、数据类型6.1 整数类型(Byte、Short、Int、Long)6.2 浮点类型&#xff08;Float、Double&#xff09;6.3 字符类型&…

量化交易97个Python库、696个策略、55本书合集

今天和大家分享一个超多内容的量化交易资料合集&#xff0c;包含了696个策略&#xff0c;55本书&#xff0c;97个库&#xff0c;目前还在不断更新&#xff0c;强烈推荐量化交易方向的同学收藏学习。 这个合集是由Edouard dArchimbaud、James Munro和GrimyFishTank三位大佬整理…

6.wifi开发【智能家居:下】,正式开发:智能开关灯,智能采集温湿度,智能调彩灯

一。WEB Server开发 1.需求分析 用户通过页面操作插座彩灯温湿度 【开发前端1】&#xff1a;智能插座网页设计 智能插座网页设计需求 1.通过浏览器访问ESP8266 webserver 2.显示“创客学院-WiFi-智能家居” 3.显示“智能插座” 4.显示当前插座工作状态 5.按键触发插座动作 2.…

【【萌新的FPGA学习之初识ZYNQ】】

萌新的FPGA学习之初识ZYNQ 进入 21 世纪&#xff0c;FPGA 的发展进入了累积阶段。人们发现&#xff0c;FPGA 的发展此时遭遇了瓶颈&#xff0c;因此单纯的 提升 FPGA 的容量已经不能满足各类应用的需求。由于更多客户开始追求更高的性价比&#xff0c;FPGA 不得不从 单纯的可编…

swift 天气

定义不同模式主题 自定义颜色 输入框 委托和协议 扩展 协议 http 请求 调用api 闭包

实现人工智能的去中心化,权力下放是最佳途径!

Web3和人工智能&#xff08;AI&#xff09;的交集&#xff0c;已成为加密社区中最热门的争论话题之一。毕竟&#xff0c;生成式AI正在彻底改变传统软件堆栈的所有领域&#xff0c;Web3也不例外。鉴于去中心化是Web3的核心价值主张&#xff0c;许多新兴的Web3生成AI项目和场景都…

统计回归模型中的一些概念解释

1、置信区间一般怎么算 置信区间是在统计学中用来估计总体参数的范围。一般来说&#xff0c;置信区间的计算依赖于样本数据的分布和样本量。以下是一种常用的计算置信区间的方法&#xff1a; 1. 首先确定置信水平&#xff08;confidence level&#xff09;&#xff0c;通常为9…

连接器公司介绍

连接器是模块之间的桥梁&#xff0c;在选型中考虑的因素较多。特别是在信号完整性领域&#xff0c;涉及到高速、射频方向需要全方位评估。记录几家全球连接器知名企业方便后续访问学习。 泰科连接器第一名 泰科电子TEConnectivity&#xff08;简称“TE”&#xff09;总部位于瑞…

高并发场景防止超卖的实现

一、商品秒杀-超卖 ApiOperation(value"秒杀实现方式——Lock加锁") PostMapping("/start/lock") public Result startLock(long skgId){try{log.info("来时秒杀方式一");final long userId (int)(new Random().nextDouble()*(99999-100001))1…