dart脚本做运维也很爽,如下是我运行xmodmap的样例。
在Ubuntu 20.04中.xsession,.xinitrc等都不起作用了,如果有谁有方法利用.xsession等可以使得linux自动在图形界面登录后运行xmodmap还请告知。我暂时用dart脚本搞定。具体思路是在bashrc中执行dart脚本,如果.xmodmap被访问的时间小于系统启动时间,则说明系统启动时xmodmap没有执行,则执行xmodmap并更新.xmodmap的被访问时间。如此可以保证xmodmap在系统启动后执行且只执行一次。dart就当个加强版的bash用即可。
在bashrc中添加
dart run /home/dart/.xmodmap.dart > /tmp/xmodmap.dart.out
.xmodmap.dart中代码如下:
import 'dart:io';
void main(List<String> args) async {
var result = await Process.run("uptime", ["-s"]);
var str = (result.stdout as String).trim();
var uptime = DateTime.parse(str);
print("uptime in text:$uptime");
print("uptime in millis:${uptime.millisecondsSinceEpoch}");
var mapFileStr = "/home/cc/.xmodmap";
var mapFile = File(mapFileStr);
var lastAccess = await mapFile.lastAccessed();
print("lastAccess in text:$lastAccess");
print("lastAccess in millis:${lastAccess.millisecondsSinceEpoch}");
if (lastAccess.millisecondsSinceEpoch < uptime.millisecondsSinceEpoch) {
await Process.run("xmodmap", [mapFileStr]);
await Process.run("touch", [mapFileStr]);
print("xmodmap done!");
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。