0%

最近一直在使用Windows开发,所以需要配置一下终端。
在Windows store中安装Terminal,因为这个版本的界面看起来比较舒服,如下。

然后就是安装oh-my-posh & posh-git

1
2
3
Install-Module -Name PSReadLine -AllowPrerelease -Force # PSReadLine
Install-Module posh-git -Scope CurrentUser # posh-git
Install-Module oh-my-posh -Scope CurrentUser # oh-my-posh

安装完成之后可能会有乱码,需要安装字体,我安装的是Fira Code,下载解压之后,把ttf中的字体全选,然后右击为所有用户安装即可。
然后在terminal中设置"fontFace" : "Fira Code Retina"

启动配置

输入notepad.exe $Profile,即可编辑启动配置,以下是我的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Import-Module posh-git # 引入 posh-git
Import-Module oh-my-posh # 引入 oh-my-posh

Set-Theme Paradox # 设置主题为 Paradox

Set-PSReadLineOption -PredictionSource History # 设置预测文本来源为历史记录

Set-PSReadlineKeyHandler -Key Tab -Function Complete # 设置 Tab 键补全
Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function MenuComplete # 设置 Ctrl+d 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo # 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward # 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward # 设置向下键为前向搜索历史纪录

$env:http_proxy="http://127.0.0.1:1086"
$env:https_proxy="http://127.0.0.1:1086"

curl ip.sb

前言

最近有个需求是需要在收银系统内连接热敏打印机和一体机的客显,因为项目中使用了electron进行开发并发布到Windows,所以就在网上找了下解决方案。
经过一番搜索,发现了一个node-escpos库,但是相关开发资料比较少就只能自己摸索了。

热敏打印机

这块比较好对接,安装好相关依赖(escposescpos-usb)后,需要使用electron-rebuild重建,因为其中使用到了一个原生模块(usb)。

安装完成之后只需按照例子中操作即可打印出小票

客显

对接这块时,一般产品会提供一个escpos指令文档,只要按照文档上的指令给设备发送指令即可,但重要是怎么发送。
在我的项目中使用到了escpos-serialport模块。
使用以下代码连接串口

1
2
3
4
5
6
7
8
9
10
11
const options = {
baudRate: 2400, // 波特率,一般是这个
autoOpen: false // 不自动打开
};
const device = new window.escpos.Serial(
"COM1", // 串口名,根据具体设备来
{ ...options }
);
device.open(() => {
// 串口连接成功
});

连接串口成功之后即可向指定串口发送指令集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 我这台机器的指令文档如下
// 1.ESC @初始化命令
// ASCII码 格式:ESC @
// 十进制 格式:[027][064]
// 十六进制 格式:[1BH][40H]
// 说明:恢复到上电开机时的状态。

// 2.CLR清屏命令
// ASCII码 格式:CLR
// 十进制 格式:[012]
// 十六进制 格式:[0CH]
// 说明:清除屏幕上的所有字符。

// 3.ESC Q A d1d2d3…dn CR送显示数据命令
// ASCII码 格式:ESC Q A d1d2d3…dn CR
// 十进制 格式:[027][081][065]d1d2d3…dn[013] 48<=dn<=57或dn=45或dn=46
// 十六进制 格式:[1BH][51H][41H]d1d2d3…dn[0DH]
// 30H<=dn<=39H或dn=2DH或dn=2EH
// 说明:
// a.执行该命令时,会以覆盖模式送要显示的数据,这样就不需要在每次送显示数据前都去执行CAN清除光标行命令了。
// b.显示的d1…dn没有小数点时1<=n<=8。
// c.显示的d1…dn有小数点时1<=n<=15(8位数值+7位小数点)。
// d.显示的内容可用CLR或CAN命令清除。

// 4.ESC s n设置 “单价”、“总计”、“收款”、“找零”字符显示状态命令
// ASCII码 格式:ESC s n 0<=n<=4
// 十进制 格式:[027][115] n 48<=n<=52
// 十六进制 格式:[1BH][73H] n 30H<=n<=34H
// 说明:(1)当 n=0,四种灯 全暗。
// (2)当 n=1,“单价”灯 亮,其它三种 暗。
// (3)当 n=2,“总计”灯 亮,其它三种 暗。
// (4)当 n=3,“收款”灯 亮。其它三种 暗。
// (5)当 n=4,“找零”灯 亮。其它三种 暗。

device.write(`${String.fromCodePoint(27)}${String.fromCodePoint(64)}`) // 初始化命令,这里需要用到fromCodePoint
device.write(`${String.fromCodePoint(12)}`) // 清屏命令

const price = 123123.1; // 显示的价格(8位数值或者7位数值+小数点)
device.write(`${String.fromCodePoint(27)}${String.fromCodePoint(81)}${String.fromCodePoint(65)}${price}${String.fromCodePoint(13)}`) // 设置价格

打开破解软件时显示软件已损坏

打开终端,输入以下代码

1
sudo spctl --master-disable

然后输入用户密码,完成。

打开可跨域的chrome

打开终端,输入以下代码

1
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/<yourname>/tmp/chrome

MacOS时间不准

打开终端,输入以下代码

1
sudo sntp -sS time.apple.com

要在CentOS 7、Fedora 29、Fedora 28系统中安装Node.js 10.x LTS,请使用NodeSource方式:

1
curl -sL https://rpm.nodesource.com/setup_10.x | bash -

上面命令将配置Node.js RPM存储库,下面你需要做的就是安装nodejs包:

1、在CentOS 7系统中,运行以下命令:

1
2
3
4
5
sudo yum clean all && sudo yum makecache fast

sudo yum install -y gcc-c++ make

sudo yum install -y nodejs

2、在Fedora 29、Fedora 28系统中,运行以下命令:

```
sudo dnf install -y gcc-c++ make

sudo dnf install -y nodejs

最近发现微软和微信公众号的站点可以跟随系统开启夜间模式

如下图
微软夜间模式.png
在网上搜了一圈发现了如下代码即可判断当前系统是否为夜间模式

1
window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches

就这一行代码即可实现跟随系统开启夜间模式,让网站的逼格瞬间提升~