玩转UOS
1.
xev | grep keycode
/usr/share/glib-2.0/schemas/com.deepin.xsettings.gschema.xml
sudo vim /usr/bin/startdde-wayland systemctl restart lightdm.service
终端字体设置:
vim ~/.config/deepin/deepin-terminal/config.conf chmod a-rw ~/.config/deepin/deepin-terminal/config.conf [advanced.shell.default_shell] value= [basic.interface.expand_theme] value= [basic.interface.font] value=MONACO [basic.interface.opacity] value=91 [basic.interface.theme] value=Dark
搜索系统中有哪些程序用到了libdtkwidget这个库:
sudo ls | egrep "[[:digit:]]+" | xargs -i sudo cat {}/maps | grep libdtkwidget.so # 然后再按 pid 查看?
2. 激活
sudo apt update && sudo apt -y install qtcreator qt5-default build-essential cmake git
sudo apt install qtbase5-private-dev
uos-activator-cmd -s --kms kms.uniontech.com:8900:Vlc1cGIyNTBaV05v
# 开启wayland
dde-dconfig --set -a org.deepin.dde.lightdm-deepin-greeter -r org.deepin.dde.lightdm-deepin-greeter -k allowSwitchingToWayland -v true
# wayland
## Generated by deepin-installer deb [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free deb-src https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free deb [trusted=yes] http://aptly.uniontech.com/pkg/eagle-1050/release-candidate/5LiT5Lia54mIMTA1MHdheWxhbmTpgILphY3kuLvpopgyMDIxLTA5LTE3IDEzOjQzOjMz unstable main
# 0831 deb [trusted=yes] https://aptly.uniontech.com/pkg/eagle-1050/release-candidate/W0RERV0xMDUw54mI5pys6L2s5rWL6K-VLTIwMjEwODMxMjAyMS0wOC0zMSAxMToxMzoyOQ/ unstable main deb [trusted=yes] https://aptly.uniontech.com/pkg/nonfree-eagle-1050/release-candidate/W0RERV0xMDUw54mI5pys6L2s5rWL6K-VLTIwMjEwODMxMjAyMS0wOC0zMSAxMToxMzoyOQ/ unstable non-free
# x11 1050 deb [trusted=yes] http://aptly.uniontech.com/pkg/eagle-1050/release-candidate/W0RERV0xMDUwIFNQcmludDLpnIDmsYLlhajph4-lhoXmtYvkuLvpopgtLTA4MzHlpI3liLYyMDIxLTExLTEyIDEzOjE3OjQ2 unstable main deb [trusted=yes] http://aptly.uniontech.com/pkg/nonfree-eagle-1050/release-candidate/W0RERV0xMDUwIFNQcmludDLpnIDmsYLlhajph4-lhoXmtYvkuLvpopgtLTA4MzHlpI3liLYyMDIxLTExLTEyIDEzOjE3OjQ2 unstable main
3. Tips
flameshot 是一个截图工具
screen rule 是一个尺子
seahorse 可以清空密钥环
systemctl start lightdm 可在崩溃后重新进入桌面
4. 一键创建虚拟机
#!/bin/bash function vm::install { # 使用这种方式安装的 virtualbox 才有 VBoxManage 管理工具 wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add - sudo tee -a /etc/apt/sources.list <<< "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib" sudo apt -y update && sudo apt -y install virtualbox-6.1 } function vm::create { [[ -z "${VM_NAME}" ]] && local VM_NAME && read -p "Virtual machine name: " VM_NAME vm::geniso && local INSTALL_ISO=$DEST_ISO [[ -z "${INSTALL_ISO}" ]] && local INSTALL_ISO && read -p "Install iso: " INSTALL_ISO [[ -z "$VM_NAME" ]] && echo "Error, input vm name invalid." && return 0 [ ! -e "${INSTALL_ISO}" ] && echo "Error, install file does not exist." && return 0 VM_HD_PATH="${HOME}/VirtualBox VMs/${VM_NAME}/${VM_NAME}.vdi" mkdir -p "`dirname "${VM_HD_PATH}"`" #&& cd "`dirname "${VM_HD_PATH}"`" # 注册虚拟机 VBoxManage createvm --name ${VM_NAME} --register # 修改配置参数 PROC=`nproc` VBoxManage modifyvm ${VM_NAME} --ostype Debian_64 VBoxManage modifyvm ${VM_NAME} --memory 8192 VBoxManage modifyvm ${VM_NAME} --cpus $((${PROC}/2)) VBoxManage modifyvm ${VM_NAME} --vram 16 VBoxManage modifyvm ${VM_NAME} --clipboard-mode bidirectional VBoxManage modifyvm ${VM_NAME} --draganddrop bidirectional VBoxManage modifyvm ${VM_NAME} --graphicscontroller vmsvga VBoxManage modifyvm ${VM_NAME} --nic1 bridged --nictype1 82540EM --cableconnected1 on --bridgeadapter1 eno1 # 创建100G系统盘 VBoxManage createmedium disk --filename "${VM_HD_PATH}" --size 102400 # 创建第一、二通道控制器(IDE、SATA) VBoxManage storagectl ${VM_NAME} --name IDE --add ide --controller PIIX4 --bootable on VBoxManage storagectl ${VM_NAME} --name SATA --add sata --controller IntelAhci --bootable on # 控制器关联镜像文件、虚拟磁盘(IDE:uos.iso, SATA:sys.vdi) VBoxManage storageattach ${VM_NAME} --storagectl SATA --port 0 --device 0 --type hdd --medium "${VM_HD_PATH}" bash -c "VBoxManage storageattach ${VM_NAME} --storagectl IDE --port 0 --device 0 --type dvddrive --medium ${INSTALL_ISO}" VBoxManage storageattach ${VM_NAME} --storagectl IDE --port 1 --device 0 --type dvddrive --medium "/usr/share/virtualbox/VBoxGuestAdditions.iso" # 启动虚拟机 VBoxManage startvm ${VM_NAME} --type gui } SELECTED_VM= function vm::select { local CURRENT_VM_LIST=(`VBoxManage list vms | awk '{print $1}'`) [[ ${#CURRENT_VM_LIST[@]} =~ 0 ]] && echo "Please create a vm first." && return 1 local listLen=$[${#CURRENT_VM_LIST[@]}-1] for vm_id in `seq 0 ${listLen}` do echo " ${vm_id} : ${CURRENT_VM_LIST[${vm_id}]}" done local CURRENT_SELECT= read -p "Please select a vm to continue:" CURRENT_SELECT [[ ${CURRENT_SELECT} < ${listLen} || ${CURRENT_SELECT} == ${listLen} ]] || { echo "Please input a coprrect number!" && return 1 ;} SELECTED_VM="${CURRENT_VM_LIST[${CURRENT_SELECT}]}" # ${CURRENT_VM_LIST[${CURRENT_SELECT}]} echo "select: ${SELECTED_VM}" } function vm::start { vm::select bash -c "VBoxManage startvm $SELECTED_VM --type gui" } function vm::geniso { [[ -z "${INSTALL_ISO}" ]] && local INSTALL_ISO && read -p "Install iso: " INSTALL_ISO MOUNT_DIR=$(mktemp -d) RSYNC_DIR=$(mktemp -d) DEST_ISO="$(mktemp -d)/auto_install.iso" IS_MOUNTED=`mount -l | grep $(basename $ISO)` [[ -n "${IS_MOUNTED}" ]] && echo "Please umount: ${IS_MOUNTED}" && return 1 bash -c "sudo mount -o loop -t iso9660 ${INSTALL_ISO} $MOUNT_DIR" rsync -avP $MOUNT_DIR/ $RSYNC_DIR rm -rf $RSYNC_DIR/oem && [ -e "./oem" ] && cp -r ./oem $RSYNC_DIR [ ! -e "./oem" ] && tar -xf ./oem.tar -C $RSYNC_DIR # 生成可启动安装的镜像文件 sudo genisoimage \ -input-charset utf-8 \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -o "$DEST_ISO" \ -J -R -A -V -v "$RSYNC_DIR" && return 0 } # 生成普通镜像文件 # genisoimage -o '/home/alex/Desktop/iso/oem.iso' -J -R -A -V -v '/home/alex/Desktop/iso/oem'
5. debian打包
apt-get install --allow-downgrades -y xxxx 允许下载低版本的包进行安装
sudo apt-get install manpages-dev 安装帮助手册
6. 开启bbr
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf sudo /usr/sbin/sysctl -p /usr/sbin/sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr
7. 其他
cat /etc/issue 查看debian版本
cat /etc/debian_version
lsb_release -a
hostnamectl status
cat /proc/version
查看 Debian 系统版本的 6 种方式 - 知乎 (zhihu.com)
UOS相关命令_只想整天学习-CSDN博客_uos查看系统版本命令
8. 窗管
替换为openbox:
sudo apt install openbox openbox --replace
这个是dde-kwin deepin-kwin dev/x11wayland 还有一个kwayland maintain/wayland_x86
9. GCC11升级教程
10. 软件安装错误
1. 强制重启 2. sudo rmmod vfs_monitor 3. sudo systemctl stop deepin-anything-tool.service deepin-anything-monitor.service 4. sudo dpkg-reconfigure -a
11. 命令行启动一些进程
function 测试应用启动状态 { # dde-daemon 搜索 print-reply 就行 dbus-send --print-reply --dest=com.deepin.dde.osd /org/freedesktop/Notifications com.deepin.dde.Notification.Toggle dbus-send --print-reply --dest=com.deepin.dde.Launcher /com/deepin/dde/Launcher com.deepin.dde.Launcher.Toggle dbus-send --print-reply --dest=com.deepin.dde.Clipboard /com/deepin/dde/Clipboard com.deepin.dde.Clipboard.Toggle # logout dbus-send --print-reply --dest=com.deepin.dde.shutdownFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show # 锁屏 /usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show # 截屏 dbus-send --print-reply --dest=com.deepin.ScreenRecorder /com/deepin/ScreenRecorder com.deepin.ScreenRecorder.stopRecord # 控制中心 dbus-send --session --dest=com.deepin.dde.ControlCenter --print-reply /com/deepin/dde/ControlCenter com.deepin.dde.ControlCenter.Show # 然后再查询 pid 或者注入即可 pidof /usr/bin/dde-clipboard }
12. 高版本内核永久开启ptrace
echo 'kernel.yama.ptrace_scope = 0' | sudo tee -a /etc/sysctl.d/10-ptrace.conf && reboot
13
使用windos字体
14. 使用gdbus提醒
gdbus call --session \ --dest org.freedesktop.Notifications \ --object-path /org/freedesktop/Notifications \ --method org.freedesktop.Notifications.Notify \ my_app_name \ 42 \ gtk-dialog-info \ "打卡提示" \ "打卡啦王鹏" \ \[\] \ \{\} \ 1500
echo '15 18 * * * alex gdbus call --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.Notify my_app_name 42 gtk-dialog-info "打卡提示" "打卡啦王鹏" \[\] \{\} 1500' | sudo tee -a /etc/crontab