hypyland使用过程中,遇到开了很多工作区和很多窗口时,找指定的窗口会比较麻烦
一键安装
yay -S jq rofi-lbonn-wayland-git
把以下脚本存放到~/.config/hypr/scripts/switch_windows
1
2
3
4 !/usr/bin/env bash
NAME=`hyprctl clients -j | jq -r '.[] | select(.title != "") | .title' | rofi -dmenu`
WINDOW=`hyprctl clients -j | jq -r ".[] | select(.title == \"${NAME}\") | .address"`
hyprctl dispatch focuswindow address:${WINDOW}
添加快捷键1
bind = ALT, Tab, exec, ${HOME}/.config/hypr/scripts/switch_windows
]]>按
alt + tab
后,在弹出的窗口选择对应窗口的标题, 可以自动跳转到对应的窗口
大型项目经常需要在标准的用户表或员工表加些扩展字段,如果你有一套标准的用户管理系统的话,要么每个项目复制过来改一遍或者添加十几个固定的自定义字段Def1~Def10, 现在可以用在gorm定义模型时使用泛型来解决这个问题
使用gorm:"embedded"
定义嵌入字段
1 | type User struct { |
上面的model等价于这个, 两个生成的表结构是一致的1
2
3
4
5
6
7type User struct {
gorm.Model
Username string
Password string
OpenID string
UnionID string
}
上面两个模型都会生成同样的ddl sql, 如下1
2
3
4
5
6
7
8
9
10
11
12
13create table if not users
(
id bigint unsigned auto_increment
primary key,
created_at datetime(3) null,
updated_at datetime(3) null,
deleted_at datetime(3) null,
username longtext null,
password longtext null,
org_id longtext null,
open_id longtext null,
union_id longtext null
)
1 | type User[ExtendField any] struct { |
使用方法1
2
3
4
5
6// 生成数据库表结构
db.AutoMigrate(User[ExtendUserField])
// 查找
var list []User[ExtendUserField]
db.model(&User[ExtendUserField]).Find(&list)
1 | type User[ExtendField any,Item any] struct { |
使用方法1
2
3// 查找
var list []User[ExtendUserField, UserItem]
db.model(&User[ExtendUserField, UserItem]).Find(&list)
]]>使用类型别名, 可以把上面的泛型代码简化
1
2
3
4 type MyUser = User[ExUserField, UserItem]
var list []MyUser
db.model(&MyUser).Find(&list)
QEMU_EFI_8.0.fd
: 固件archlinux-xfce4-2023.05.10-loong64.qcow2.zst
: 系统镜像, 下载后需要解压出qcow2文件建议安装
qemu-full
包, 我以前安装的不是这个, 导致gpu加载不了
1 | sudo pacman -S qemu-full |
注意固件版本和系统镜像版本
1 | qemu-system-loongarch64 \ |
发现安装好龙芯后, laur软件仓库就自带了yay和paru, 可以直接使用pacman安装. 我有一个软件kaf-cli是go写的可以直接编译到龙芯上.本文记录一下PKGBUILD的写法
脚本基本上和x86上的没什么区别, 只需要
arch
字段上添加loong64
构架source_loong64
软件安装包的源sha512sums_loong64
校验值, 还可以是md5sum_loong64
, sha1sums_loong64
1 | # Maintainer: YSTYLE <lxy5266@live.com> |
然后生成安装包清单信息1
makepkg --printsrcinfo > .SRCINFO
测试生成安装包1
makepkg -f
直接安装软件1
makepkg -si
没问题直接用git推送到aur上就可以了
]]>公网master和内网agent使用wireguard-native
通信, 只要在所有节点上安装了wireguard
模块,k3s会自动处理所有通信流量
tcp
6443
端口,udp
51820
端口wireguard-native
, 点击查看安装命令6443
和51820
端口需要替换下面的master_public_ip为master公网ip, 能正常起来一般就没问题了
1 | export INSTALL_KAS_EXEC="--node-external-ip=master_public_ip --flannel-backend=wireguard-native --flannel-external-ip" |
INSTALL_KAS_EXEC的参数是最少的开启
wireguard-native
功能的参数
在msater上执行
cat /var/lib/rancher/k3s/server/node-token
获取token, 等下子节点需要用
我是在树苺派上安装的。
下面的token需要换成上一步获取的, 然后把x.x.x.x换成上面的master_public_ip
的master公网ip
1 | export TOKEN=K1004a306bd3e78de0bfb4e9a485659e847dd16be3192b5b16407f53f991dc7d7f7::server:58dcf4e6e4fd7c6023976c331d1xxxxxx |
只需要添加
--node-external-ip
参数就能启用wireguard-native
功能了 。 如果没加这参数,是普通的节点,公网master和内网agent就不能正常通信
先查看节点是否正常,不需要重启master或agent的服务,如果重启后才看到的话,可能没安装成功
1 | $ kubelct get node |
用nodeSelector分别在master和内网机器上部署nginx的deploy, 再分别创建对应的service
把以下内容存为run.ps1
1 | $env:REFRESH_TOKEN="484b469b3ef74dcaba5cf21aeadae2ca" |
脚本配置说明:
$env:REFRESH_TOKEN
: 为阿里云网盘登陆后的token, 必需改为自己的$env:WEBDAV_AUTH_USER
: webdav用户名$env:WEBDAV_AUTH_PASSWORD
: webdav密码--port=8080
为webdav的访问端口,被占用时可以换成其它的
win + s
搜索任务计划程序
打开任务计划程序库
在右边点创建基本任务,输入名字: aliyundrive-webdav
(名字可以随意写)
下一步选择: 计算机启动时
下一步选择: 启动程序
powershell.exe
-WindowStyle Hidden -file run.ps1
run.ps1
和 aliyundrive-webdav
的目录下一步点击:完成
aliyundrive-webdav
并在右边选项里选择启动在弹窗选择一个盘符,并在文件夹填写: http://127.0.0.1:8080
, 点完成,在弹窗输入用户名和密码
1 | export GOPRIVATE=git.hofo.co |
在git设置http.extraheader
PRIVATE-TOKEN
生成方式: 在点击gogs右上头像-用户设置-授权应用-生成新的token1 | git config --global http.extraheader "PRIVATE-TOKEN: 5737d215af7f9a41a2abe98631d312e9e9311d29d" |
在git添加url配置, ystyle:5737d215af7f9a41a2abe98631d312e9e939d29d11
是用户名和上一步生成的token
1 | git config --global url."https://ystyle:5737d215af7f9a41a2abe98631d312e9e939d29d11@git.hofo.co".insteadOf "https://git.hofo.co" |
设备管理-用串行总线设备
下面看到HDC Device
hdc list targets
列出设备/system/xbin/su
获取root权限ifconfig eth0 192.168.3.197 netmask 255.255.255.0
网络IP要换成自己的网段hdcd -t
hdc tconn 192.168.3.197:10178
显示 Connect OK
就表示连接上了hdc list targets -v
显示设备hdc -t 192.168.3.197:10178 shell
连接鸿蒙系统的shell, 注: tcp连接时要用-t指定连接的ip:端口hdc -t 192.168.3.197:10178 file send localfile remotefile
发送文件鸿蒙的HI3516编译里已经有wpa_supplicant相关工程了,但编译时没有包进去, 所以只要修改配置文件后就能编译出来了
主要修改文件: communication/BUILD.gn#L17-18 行之间添加, 以下第2行1
2
3features = [
"wpa_supplicant:wpa_sample",
]
1 | docker run --rm -ti -e HARDWARE=ipcamera_hi3516dv300 -v ${PWD}/out:/OpenHarmony/out ystyle/open-harmony bash |
然后wpa_supplicant在编译目录
/out/ipcamera_hi3516dv300/bin/
, 把wpa_supplicant复制出来就可以直接使用
先创建配置文件,wpa_supplicant.conf
1 | country=GB |
把wpa_supplicant和配置文件复制到hi3516, 执行以下命令连接wifi1
2cd /nfs/wifi
./wpa_supplicant -i wlan0 -c ./wpa_supplicant.conf
需要可上网,与tcp、udp转发, 激活更新系统时需要udp转发才能正常更新系统, 本方法完美支持,只需要有支持wifi网卡的电脑
.NET Desktop runtime 5.0 x64
和Visual C++ 运行库
ByPass LAN and China
, 启动设置-公测版
打开Airlink
设置virtual desktop
virtual desktop
必需买,sidequest上的只是个串流用的插件virtual desktop streamer
串流软件, 官方网站直接免费下载virtual desktop vr patch
oculus home
、oculus网站
、或手机oculus app
绑定paypalvirtual desktop
点购买,如果出现执行查询出现错误就更换代理节点
(我用美国节点的会出现这个)137RMB
virtual desktop
不支持quest2virtual desktop streamer
,并在username填写自己的oculus帐户名virtual desktop
软件steam vr
或oculus home
的游戏,会自动串流到quest2里ps: 本文使用与鸿蒙系统一同编译的方法。 如果自己有本地环境,可以把lua项目放鸿蒙代码目录里(或者使用软接连)
1 | mkdir -p ~/code/ohos/ |
因为要与系统一起编译, 为了方便,直接用替换掉示例的方法,这样就只需要写一个BUILD.gn就好了
1 | # Copyright (c) 2020 YSTYLE(lxy5266@live.com) |
static_library里的source参照lua/makefile
创建编译脚本build-ohos.sh
文件
1 | cd ~/code/ohos/lua |
文件内容如下1
2
3
4
5
6
7
8
9
10
11set -e
rm -rf ./out ./bin
docker run --rm -ti \
-e HARDWARE=ipcamera_hi3516dv300 \
-v ${PWD}/out:/OpenHarmony/out \
-v ${PWD}:/OpenHarmony/applications/sample/camera/app \
ystyle/open-harmony
mkdir -p ./bin
cp ./out/ipcamera_hi3516dv300/bin/camera_app ./bin/lua
tar -zcf lua-5.4.2-ohos.tar.gz ./bin
echo 'build success!'
与鸿蒙一起编译,这里使用我之前的docker镜像1
2
3cd ~/code/ohos/lua
./build-ohos.sh
看到 ohos ipcamera_hi3516dv300 build success! build success! 就编译成功了。
编译后软件在鸿蒙的 ./out/ipcamera_hi3516dv300/bin/camera_app
脚本会把lua单独打包出来
单独的lua可执行文件在bin目录
/out/ipcamera_hi3516dv300/dev_tools/bin
复制到nfs挂载目录)1 | ➜ harl.exe |
cd /your-project-dir
切换到项目目录harl init
初始化配置文件harl w
监听项目文件修改^run [command name]
的方式执行command里定义的脚本^run setup
.harl.yaml
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 watch: # 监听文件修改并自动编译、安装的参数
excludes: # 排除的文件
- .gradle
- .idea
- gradle
- entry/build
- entry/node_modules
includes: # 监听的文件类型
- .css
- .hml
- .js
- .hap
- .json
delay: 100 # 监听频率,单位ms
nfs: # nfs 配置
ldir: H:/bin # 本地nfs挂载目录
rdir: /nfs # 远程nfs(开发板)挂载目录
shell: # 开发板连接参数
com: COM5 # 串口号
command: # 定义常用命令, 在shell或watch里可执行
setup: # 命令执行方式: ^run setup
- dhclient eth0 # 命令一行一个, 顺序执行错误不会中断
- mkdir /nfs
- mount 192.168.3.12:/nfsshare /nfs nfs
kill: # 关闭应用
- cd /nfs
- ./aa terminate -p top.ystyle.ohos.js.testapp
start: # 启动应用
- cd /nfs
- ./aa start -p top.ystyle.ohos.js.testapp -n default
1 | mkdir ~/OpenHarmony |
Hi3861
开发板的系统镜像, 可自行烧录到固定测试HARDWARE
目前支持: wifiiot
、ipcamera_hi3516dv300
、ipcamera_hi3518ev300
1 | mkdir ~/OpenHarmony |
my_first_app
新建文件hello_world.c
1 |
|
新建文件BUILD.gn
1 | static_library("myapp") { |
新建文件APP_BUILD.gn
1 | import("//build/lite/config/component/lite_component.gni") |
现在的目录结构为
1 | . |
1 | docker run --rm \ |
编译后的文件在out目录
1
2
3
4
5
6 .
├── APP_BUILD.gn
├── BUILD.gn
├── hello_world.c
└── out
└── wifiiot
/OpenHarmony/applications/sample/wifi-iot/app/
目录, 目录里边的都是示例代码.python build.py ${HARDWARE} -b debug
docker run --rm -v ${PWD}/mybuild.sh:/OpenHarmony/mybuild.sh ystyle/open-harmony /OpenHarmony/mybuild.sh
/OpenHarmony
目录执行repo sync -c
命令参考
@keithyau
所写的Dockerfile修改而来
1 | FROM ubuntu:20.04 AS build-env |
转换在线漫画为mobi格式的工具
谷歌浏览器chrome
新建一个文件文件
1 | # 注释: 以#号或//开头的行会被忽略,空行也会被忽略 |
然后把文件拖到comic-cli里边就会自动把漫画转为mobi格式
kindlegen.exe
放到c:/windows
里再试试检查文件夹没有就创建一个
1 | mkdir ~/.smb |
然后在文件填写
1 | [global] |
打开Dolphin
smb://192.168.3.129
回车复制到方舟引擎代码根目录, 文件名为Dockerfile
1 | FROM ubuntu:16.04 |
方舟编译器,也会一起编译,注意: 编译libjava时会占用25G左右的内存,不足25G建议添加swap分区
本人机器是16G内存,20G的SSD swap分区
1 | docker build -t ystyle/maple-engine . |
镜像已经推送到docker hub, 可以直接使用下面的镜像编译hello world或其它软件
1 | docker run --rm -ti ystyle/maple-engine bash |
1 | docker run --rm -ti ystyle/maple-engine:gdb bash |
应用场景: 在文件右键打开windows terminal, 并在执行的命令中以选择的文件为参数运行。
本示例为在windows terminal使用micro编辑器打开选中文件
1 | Windows Registry Editor Version 5.00 |
[HKEY_CLASSES_ROOT\*\shell\Open with Micro]
中的 Open with Micro
为右键菜单名wt.exe new-tab -p \"Windows PowerShell\" micro.exe '%1'
new-tab
是打开一个新的windows terminal 页签(不过在我电脑会打开新的一个应用实例)-p \"Windows PowerShell\"
是新页签需要用的的shell,可以是windows terminal的配置中的 name或guidmicro.exe \"%1\"
是需要执行的命令, \"%1\"
是当前右键的文件占位符软件设置并不能解决百分百的问题,BT是有死链的概念的,这种怎么设置都无法下载,还有些冷门内容速度慢是无法解决的,但大家可以尽量少用讯雷下载。 讯雷p2p只上传给自己的服务器,别的下载工具得不到p2p加速,并且还免费给讯雷做下载点
如果遇到喜欢的资源,想让更多的人知道、下载就多给种子挂【做种】吧,下载完后默认就开了的,建议分享率大于1时再关,有条件的可以一直挂着
连接设置
任务设置
去广告
主要是开DHT,和设置tracker, DHT开在连接上面的任务里说过了
Tracker是什么
一般下载文件是用http/ftp/smb协议的域名或ip来明确指向文件存放在哪个IP的服务器上, 但BT是用识别码来标识文件,而没有明确的文件地址。 所以为了找到文件就需要有一个机制来确定目标文件在哪些机器上能下载到。 DHT和Tracker服务器都能做到文件寻址。
https://github.com/ngosang/trackerslist
trackers_best_ip.txt
或 trackers_all.txt
的内容复制到tracker里文件-制作新的torrent
或 工具栏 箭头那个图标注意替换路径
命令一定要用转义的双引号包起来, key的路径用git bash的路径方式,没key的话,删掉-i后面的就好,但每次都要输入密码. key登陆百度搜索SSH免密登陆
1 | { |
基本是一样的,但key的目录必需在当前用户的主目录下,路径是windwos的标准格式
1 | { |
1 | Windows Registry Editor Version 5.00 |
$HOME/.local/share/kservices5/
/usr/share/kservices5/
.desktop
1 | [Desktop Entry] |
Actions
: 在该菜单中的菜单项,多个用英文分号隔开MimeType
: 在指定的文件类型中启动该菜单inode/directory
在目录中启用image/png
只在png图片启用all/allfiles
在所有文件中启用(不包括文件夹)image/allfiles
在所有图片启用X-KDE-ServiceTypes=KonqPopupMenu/Plugin
: 只在kde中支持, 表示显示在右键-动作
下边X-KDE-Priority=TopLevel
表示显示在顶级菜单中,右键直接显示Icon
Type=Service 时图标不会显示OptimisePNG
为自定义的动作,填写在上边的Actions
里Name
菜单项名称Icon
菜单显示图标Exec
点击菜单时执行的命令[Desktop Action XXXX]
的条目在一个文件中可以有多个kbuildsycoca5
如果有错误会有提示`