使用 slides 在 linux 终端演示 PPT

slides 是一个可以在终端将Markdown转换为PPT的库,可以直接在终端展示PPT,同时执行PPT中的代码片段。

最近有个场景使用了这个工具,简单记录一下安装使用过程。

slides

一、安装

不同平台可以参考官方文档编译,我这里直接使用了二进制文档:

export VER="0.4.1"

cd /tmp
wget https://github.com/maaslalani/slides/releases/download/v${VER}/slides_${VER}_linux_amd64.tar.gz

tar xvf slides_${VER}_linux_amd64.tar.gz
mv slides /usr/local/bin/

二、使用

简单使用只需要记住:

  • PPT各页之间通过 --- 来划分

下一页:

  • space
  • right
  • down
  • enter
  • n
  • k
  • l

上一页:

  • left
  • up
  • p
  • h
  • j

官方有例子,可以下来尝鲜: example slides.

关于自定义主题,感兴趣的也可以看看:theme.json

另外,如果需要预编译流程图,那么需要安装 graph-easy 工具,并把 markdown 文件设置为可执行。

三、流程图

流程图的工具安装,在这里也记录一下,需要安装 perl、graphviz和基于前两者的 Graph::Easy:

# centos
yum install perl 
yum install graphviz

# debian
apt-get install perl 
apt-get install graphviz

# 安装上述软件后安装 Graph::Easy
perl -MCPAN -e shell
cpan[1]> install Graph::Easy
graph-easy -version

Graph::Easy v0.76  (c) by Tels 2004-2008.  Released under the GPL 2.0 or later.

安装 Graph::Easy 的过程有点久,要有点耐心。

参考资料


debian 使用 wine 安装网易云音乐

背景

虽然网易云音乐官方提供了linux安装包, 无法在我目前的系统 Debian 9 上使用, 运行时报错 glib 缺少xxx之类的信息:

无奈还是用 wine 安装.

这篇文章简单记录使用 wine 安装网易云音乐的过程. wine的相关知识以及如何安装可以参考我以前的文章.

下载

  1. 下载exe文件.

  2. 启动安装程序:

    WINEARCH=win32 WINEPREFIX=/home/kelu/Wine/WeChat wine uninstaller
    

  3. 普通的点击install安装即可.

  4. 解决黑屏问题:

     winetricks ddr=gdi
    
  5. 做一些基本的配置:

    image-20210616160814260

参考资料


Linux 终端环境安装 L2TP 客户端

一、安装

# Ubuntu/Debian
apt-get install xl2tpd ppp

# Centos
yum -y install xl2tpd ppp

二、配置

以下<> 内部的是需要自己修改的内容,按需修改。

1. l2tpd配置文件

# /etc/xl2tpd/xl2tpd.conf 文件

[lac <id>]
name = <name>
lns = <l2tp_server_ip>
pppoptfile = /etc/ppp/peers/<id>.xl2tpd
ppp debug = no

<id> <name> <l2tp_server_ip> 大家按需求修改就好。

2. ppp配置文件

# /etc/ppp/peers/<id>.xl2tpd 文件

remotename <id>
user <l2tp_user_name>
password <l2tp_user_password>
unit 0
nodeflate
nobsdcomp
noauth
persist
nopcomp
noaccomp
maxfail 5
debug

三、启动守护进程

systemctl start xl2tpd

查看进程状况。

systemctl status xl2tpd.service

显示正在运行。

image-20210602155731986

四、开启连接

启动成功后,表示守护进程已启动,等待新的连接操作。

连接 L2TP 服务器的命令如下:

sh -c 'echo "c <id>" > /var/run/xl2tpd/l2tp-control'

断开连接的命令为:

sh -c 'echo "d <id>" > /var/run/xl2tpd/l2tp-control'

参考ppp的配置文件,例如我的:

sh -c 'echo "c lao" > /var/run/xl2tpd/l2tp-control'

使用 ifconfig 查看网络设备,如果出现 ppp0 这个网卡项,表示连接成功了。

image-20210602155932428

查看日志,可以清楚地看到连接握手状况。

journalctl -u xl2tpd -f

image-20210602155837473

五、添加路由

将要访问的ip声明为走 ppp0 网卡,使用下面的命令添加路由,我假定我们要代理的ip为 10.187.0.0/24

route add -net 10.187.0.0/24 gw 192.168.100.254 ppp0 # 添加路由
route -n # 显示路由表

# route del -net 10.187.0.0/24 gw 192.168.100.254 ppp0 # 删除路由

image-20210602160046143

添加后可以 traceroute 查看流量是否正确到达我们的对端:

参考文章


debian 安装 wine 与 wine 微信备忘

最近使用 Debian 进行办公,微信在国内是必不可少的办公工具。在linux上有很两种实现方式,

  • 集成web微信的http接口,这是最常见的,例如
    • Snap 安装第三方微信客户端 Electronic-Wechat
    • rambox 安装微信
  • 虚拟化 win 软件,仅有 wine 一家。

两种方式对个人来说都差不多,基于web微信的可以搞更多的花样,但很可惜的是,我的账号不允许登陆 web 微信,我也不知道为什么。所以直接pass,只能走wine 微信这一条路。

这篇文章记录安装 wine 和 wine 微信的要点。

零、什么是wine

Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如Linux,Mac,FreeBSD和Solaris等)上运行 Windows 应用的兼容层。

Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。

一、安装wine

1. 打开多架构支持

查看内核架构:

sudo dpkg --print-architecture  

image-20210601164658434

如果运行的是 64 位系统,需要开启 32 位架构支持

  • 添加i386架构
sudo dpkg --add-architecture i386

2. 添加源并安装

  • 下载 winehq.key 并导入
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
  • 添加 winehq 源,在/etc/apt/sources.list中增加一行
deb https://dl.winehq.org/wine-builds/debian/ buster main
  • 更新源
sudo apt update
  • 安装winehq-stable
sudo apt install --install-recommends winehq-stable

查看wine版本号:

wine --version

image-20210601165402549

二、配置wine

  1. 建议使用桌面用户进行安装,root用户未来要复制一些文件会比较麻烦。我暂时切到我的桌面用户kelu。
su kelu
  1. 由于我一般登陆两个微信,所以我希望能同时跑两个wine来解决这个问题。所以我在运行wine前都会选择各自的独立配置。

1. 配置不同的wine配置文件

mkdir ~/Wine
WINEARCH=win32 WINEPREFIX=~/Wine/WeChat winecfg
WINEARCH=win32 WINEPREFIX=~/Wine/WeChat2 winecfg

其中 WINEARCH=win32 的作用是告诉Wine创建一个32位的wineprefix。

wineprefix 是生成配置文件的目录。

image-20210601174338238

有一个库 riched20 经常使用,提前添加一下,点击 Add:

image-20210601174405902

三、安装微信

打开软件安装界面:

WINEPREFIX=~/Wine/WeChat wine uninstaller

选择 Install 安装微信:

image-20210601174447596

安装完成。再次打开微信可以这样打开:

cd ~/Wine/WeChat/drive_c/Program Files/Tencent/WeChat
WINEPREFIX=~/Wine/WeChat wine WeChat.exe

image-20210601174633344

四、解决微信中文显示

上面可以看到了,中文字符都是方框。下面来解决中文字符问题。

1. 拷贝win7的字体文件

无脑把win7的字体文件夹 C:\WINDOWS\Fonts\ 打包复制一份到 Linux系统中。因为我起了两个配置文件,就是分别拷贝到下面的文件夹:

  • ~/Wine/WeChat/drive_c/windows/Fonts
  • ~/Wine/WeChat2/drive_c/windows/Fonts

2. 修改注册表

gedit ~/Wine/WeChat/system.reg # 一定要使用 gedit 或其他支持 gb2312/utf8 编码的编辑器修改这些文件,否则文件中的中文可能变乱码
  1. 搜索: LogPixels

    找到的行应该是

    [System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts]
    

    将其中的:

    "LogPixels"=dword:00000060
    

    改为:

    "LogPixels"=dword:00000070
    
  2. 搜索: FontSubstitutes

    找到的行应该是:

    [Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]
    

    将其中的:

    "MS Shell Dlg"="Tahoma"
    "MS Shell Dlg 2″="Tahoma"
    

    改为:

    "MS Shell Dlg"="SimSun"
    "MS Shell Dlg 2″="SimSun"
    
  3. 把下面的代码保存为 zh.reg

    REGEDIT4
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
    "Arial"="simsun"
    "Arial CE,238"="simsun"
    "Arial CYR,204"="simsun"
    "Arial Greek,161"="simsun"
    "Arial TUR,162"="simsun"
    "Courier New"="simsun"
    "Courier New CE,238"="simsun"
    "Courier New CYR,204"="simsun"
    "Courier New Greek,161"="simsun"
    "Courier New TUR,162"="simsun"
    "FixedSys"="simsun"
    "Helv"="simsun"
    "Helvetica"="simsun"
    "MS Sans Serif"="simsun"
    "MS Shell Dlg"="simsun"
    "MS Shell Dlg 2"="simsun"
    "System"="simsun"
    "Tahoma"="simsun"
    "Times"="simsun"
    "Times New Roman CE,238"="simsun"
    "Times New Roman CYR,204"="simsun"
    "Times New Roman Greek,161"="simsun"
    "Times New Roman TUR,162"="simsun"
    "Tms Rmn"="simsun"
    

    终端执行

     WINEPREFIX=~/Wine/WeChat regedit zh.reg
     WINEPREFIX=~/Wine/WeChat2 regedit zh.reg
    

完成以上的操作,中文就显示出来了。

image-20210601182700039

五、解决微信输入界面不显示中文

主要还是 riched20 的问题。我这边的解决办法是直接把 win7 的这个文件拷贝过来。 C:\WINDOWS\System32\riched20.dll ,拷贝到wine下相关的位置。要注意先给原文件做个备份。

  • ~/Wine/WeChat/drive_c/windows/System32/riched20.dll
  • ~/Wine/WeChat2/drive_c/windows/System32/riched20.dll

image-20210602104014874

然后重启电脑。

六、制作图标

因为有两个微信,还是要制作不同的图标,以下是我的设置。

image-20210602104004589

文件 wechat.desktop:

[Desktop Entry]
Name=WeChat
Exec=env WINEPREFIX="/home/kelu/Wine/WeChat" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/kelu/Wine/WeChat/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/WeChat/WeChat.lnk
Type=Application
StartupNotify=true
Path=/home/kelu/Wine/WeChat/dosdevices/c:/Program Files/Tencent/WeChat
Icon=8A76_WeChat.0
StartupWMClass=wechat.exe

文件 wechat2.desktop:

[Desktop Entry]
Name=WeChat2
Exec=env WINEPREFIX="/home/kelu/Wine/WeChat2" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/kelu/Wine/WeChat2/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/WeChat/WeChat.lnk
Type=Application
StartupNotify=true
Path=/home/kelu/Wine/WeChat2/dosdevices/c:/Program Files/Tencent/WeChat
Icon=8A76_WeChat.0
StartupWMClass=wechat.exe

分别给这两个文件赋予可执行权限:

chmod +x wechat.desktop
chmod +x wechat2.desktop

在桌面点击图标后,信任该文件,就可以看到图标了。

image-20210602104031729

参考资料