分类 系统管理 下的文章

[笔记]中国移动光宽带用户下载Github项目中releases压缩包的办法

个人笔记,如有转载,请注明出处。

——by realasking

我家用的中国移动送的移动光宽带,以前在家干活儿时间少,没有觉得有啥不便,最近因为疫情问题,没有出家门,终于觉得移动光宽带上某些站点实在难以忍受了。

最近一段时间,用移动光宽带下载Github上的项目的releases包和更新AUR里的很多包,速度都慢到令人发指。上午8点到10点,下午2点到4点稍快,能达到50KiB/s,其它时候都在7~8KiB/s,而且关键是,如果挂在那里不管,下载一段时间后就会中断。Github的东西又不能续传,更新几次VTKLAMMPS等等简直要了老命了。百度网盘的离线下载就是废物,技术水平可能太水了,尽管买了超级会员,离线下载的时候总是资源不存在。

好在经过一番搜索,找到了解决的办法,直接用微软账号登录offcloud.com,然后把链接拷贝到页面上的对话框,什么都不用再改,直接回车,就能开始顺利下载了,下载速度基本上保持在120KiB/s~2MiB/s,也没中断,很好了。只是AUR的更新就得手动完成,不过这也不算麻烦,可以将就用着了。

【原创】在Manjaro Linux上安装和配置Gnome纪实

个人笔记,如有转载,请注明出处。

——by realasking

最近更新系统后遇到一些问题,修复过程中,损坏了KDE的一些配置,有些毛病排查起来比较麻烦,鉴于我在Linux下主要的编程、阅读和文本编辑环境已经基本迁移到Emacs上,桌面环境的更迭对我的使用习惯影响应当不大,所以打算先重新安装一个新的桌面环境,快速开始工作,今后有时间再恢复原来的KDE,最终再次安装了Gnome桌面。相对于KDE而言,Gnome仍然是很不完善的,表现在缺乏配置工具、缺乏某些必要的功能,以及一些桌面小工具使用不正常,要让其正常使用,还是需要一定的安装和调整。而我多年未主要使用Gnome,对它的发展已经不够清楚,配置过程中走过了一些弯路,这里作个记录。

安装Gnome

[realasking@mypc ~]$ sudo pacman -S gnome-shell-extension-appfolders-manager gnome-shell-extension-appindicator gnome-shell-extension-dash-to-dock gnome-shell-extension-desktop-icons gnome-shell-extension-unite gnome-software-packagekit-plugin gnome-themes-maia gnome gnome-extra gnome-mplayer gnome-layout-switcher manjaro-gnome-extension-settings-19.0 manjaro-gnome-settings-19.0 polkit-gnome gnome-subtitles libnautilus-extension eog-plugins guake gnome-icon-theme-extras gdm fprintd gnome-tweaks
[realasking@mypc ~]$ sudo systemctl disable sddm
[realasking@mypc ~]$ sudo systemctl enable gdm
[realasking@mypc ~]$ reboot

配置GDM

[realasking@mypc ~]$ yaourt -S loginized 

然后进入菜单,找到loginized,进行gdm的自定义

禁用tracker

[realasking@mypc ~]$ systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
[realasking@mypc ~]$ tracker reset --hard

然后重启

更换壁纸、主题,防止眼瞎

自动更换壁纸

在搜索栏中搜索bing,然后在扩展安装工具中安装Bing Wallpaper changer,再在gnome-tweaks扩展中打开

更换主题

gnome-tweaks中打开user-themes

gnome-look下载MilkyChromeOS-dark-compact两个主题,放入.themes下。

配置应用程序背景色

Milky/gtk-3.0/gtk.css第20行改为

@define-color bg_color #ebf0f4;

配置输入框

ChromeOS-dark-compact/gnome-shell/gnome-shell.css第2730行改为:

background-color: #16a085;

配置顶栏字号

将第27行改为:

 font-size: 12pt;

然后打开gnome-tweaks,在外观下,将应用程序设置为Milky,将Shell设置为ChromeOS-dark-compact

配置时钟显示

在搜索栏中搜索panel-date-format,安装后打开,然后执行:

dconf write /org/gnome/shell/extensions/panel-date-format/format "'%Y年%m月%d日 %H时%M分'"

配置扩展

在搜索栏中搜索、并用扩展管理工具安装以下扩展,然后在gnome-tweaks中打开:

application menu

cpumeminfo

Dash to dock

Lunar calendar

Openweather

Removable drive menu

Simple net speed

文件关联

gnome没有提供文件关联设置,然而一些自定义的desktop文件在nautilus中常常无法识别,表现为右键打开的时候,找不到自定义的工具,解决办法是启动kdesystemsettings5来设置文件关联。

禁用桌面效果

打开dconf-editor,搜索/org/gnome/desktop/interface/enable-animations,关闭它。

故障排除

启动时,有些开机启动程序不能最小化

安装tray icon扩展,并启用

guake启动时提示F12无法绑定

先删除guake,重启后重装,然后在gnome-tweaks中加入开机启动

坚果云安装后在nautilus的菜单中看不到选项

在安装坚果云之后,再安装aur中的nautilus-nutstore

ibus输入栏字体太小

安装扩展ibus font setting,然后用它来设置

更新系统后重启无法进入gdm,引导结束后屏幕上方有一个光标始终闪烁

编辑/etc/gdm/custom.conf,去除WaylandEnable=false前的注释符号,然后重启。
登录时选择gnome on xorg

自动挂载移动硬盘后只能卸载,不能断电

执行:

sudo pacman -S manjaro-gnome-settings-19.0 manjaro-gnome-extension-settings-19.0

然后重启

topbarDash to Dock上的drive indicator只能卸载移动硬盘,不能断电

这两个就是残次品,没有断电功能,只能在gnome-tweaks中将它们禁用,然后按照上面所说的方法在nautilus中卸载移动硬盘

各种拾色器不能使用

登录时选择gnome on xorg
然后使用用gtk开发的程序,尽量不要用其它图形库的程序。

使用中鼠标突然失灵,无反应

实际上是桌面问题,重新插拔鼠标即可,有时一天会发生多次,要用gnome的话,忍忍就好。

geocluegeoclue2服务导致开机时进入gdm花费很长时间

先卸载掉geoclue2和所有相关的包,重启后重新安装

使用中遇到的未解决的BUG

移动硬盘问题

如果移动硬盘在进入系统桌面前插入电脑,在Gnome中无法被安全移除,只能卸载,即使按照之前的进行过设置

有些情况下Dash to dock不能自动隐藏

设置智能隐藏的情况下自动启动guake,如果在启用其它任何gui程序之前,按F12弹出guake,会发现dock不会隐藏,会遮挡guake弹出窗口的最下方几行。但如果有比如google-chrome-stable之类的程序先被打开,再呼出guake,则一切正常。

gdm引导其它桌面环境的问题

目前只遇到引导deepin桌面有问题。在manjaro上使用gdm引导deepin桌面后,会遇到两个问题:

一是系统无法从deepin环境关机/重启/休眠/注销,只要执行这些命令之一,deepin桌面会快速退出到plymouth的界面,然后无法进行下一步动作,注销时无法退回到gdm界面。

二是ibus不会启动panel,导致deepin中无法启动输入栏,需要每次进入deepin后以root权限killibus的进程,然后以如下命令重新启动ibus

ibus-daemon -xdr --panel=/usr/lib/ibus/ibus-ui-gtk3

nautilus中使用扩展造成和输入法热键冲突

最典型的就是使用nautilus-terminal时可以用F4呼出Terminal,但是要关闭时却和ibus-rime的热键发生冲突,变成了选择英文、简繁体的功能。

【笔记】使用refind引导的Manjaro和Win10双启动的Secure Boot配置

个人操作笔记,转载请注明出处。

——by realasking

最近,不知什么原因,导致更新系统后grub-fedora这个能支持中文的grub引导器不能正常工作了,只要使用更新的内核,就提示UUID错误,无论是休眠还是根的都找不到,无论用USB Live启动重装grub还是直接在系统中通过重装grub-fedora这个包,都如此。而将其更换为标准的grub则会在启动时提示找不到一个中文的组件,仔细检查也未能找到原因。为了节约时间,决定更换一个启动器。

refind的安装

pacman -S refind-efi refind-drivers refind-theme-maia
refind-install

配置文件

位置在:/boot/efi/EFI/refind/refind.conf

内容为:

timeout 20
resolution 1920 1080
use_graphics_for linux,windows
#确保使用自定义的,才能保证内核参数的传递
scanfor manual,external
#禁止扫描一些多余、重复的内容
dont_scan_dirs boot,EFI/Manjaro,EFI/Boot
menuentry "Manjaro Linux" {
    #manjaro图片是从maia主题中拷贝过去的
    icon EFI/refind/icons/os_manjaro.png
    #volume后面跟的是part guid
    volume 0b6e08ea-62b7-4ba1-9c41-4ba41a6ec29f
    loader /boot/vmlinuz-4.19-x86_64
    initrd /boot/initramfs-4.19-x86_64.img
    #preload的initrd,如amd-ucode等,需要添加在options的最后,空格要用\转义
    options "ro root=UUID=根分区的UUID rw  quiet apparmor=1 security=apparmor resume=UUID=SWAP的UUID udev.log_priority=3 audit=0 acpi_osi=Windows\ 2015 reboot=kbd ivrs_ioapic[32]=00:14.0 amd_iommu=on idle=nomwait bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash initrd=/boot/amd-ucode.img"
}
menuentry "Windows 10" {
    loader \EFI\Microsoft\Boot\bootmgfw.efi
}
include refind-theme-dark/theme.conf

更换主题

git clone https://github.com/samuelmeuli/refind-theme-dark.git
sudo su
cp refind-theme-dark /boot/efi/EFI/refind

然后编辑refind-theme-dark/theme.conf文件,删去其中的所有themes/

再编辑/boot/efi/EFI/refind/refind.conf文件,将最后一行改为:

include refind-theme-dark/theme.conf

再将背景图片用gimp修改为全黑,以保证windowslinux启动时的效果

BIOS设置

重启电脑,按F2进入BIOS设置,在Secure中关闭安全启动、重置Key、进入自定义设置模式,然后按F10保存退出

自定义安全启动

各种安全文件的建立

参考如何在 Linux 系统启用 UEFI 的 Secure Boot

mkdir mok2
cd mok2
echo $(uuidgen) >guid
cat guid 
echo  77fa9abd-0359-4d32-bd60-28f4e78f784b >ms-guid
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Platform Key/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Key Exchange Key/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Database/" -keyout db.key -out db.crt -days 3650 -nodes -sha256
cert-to-efi-sig-list -g $(cat guid) PK.crt PK.esl
cert-to-efi-sig-list -g $(cat guid) KEK.crt KEK.esl
cert-to-efi-sig-list -g $(cat guid) db.crt db.esl
curl -L http://go.microsoft.com/fwlink/?LinkID=321185 -o MSKEK.der
curl -L http://go.microsoft.com/fwlink/?LinkID=321192 -o MSdbWPCA.der
curl -L http://go.microsoft.com/fwlink/?LinkID=321194 -o MSdbUDSCA.der
openssl x509 -in MSKEK.der -inform DER -out MSKEK.crt
openssl x509 -in MSdbWPCA.der -inform DER -out MSdbWPCA.crt
openssl x509 -in MSdbUDSCA.der -inform DER -out MSdbUDSCA.crt
cert-to-efi-sig-list -g $(cat ms-guid) MSKEK.crt MSKEK.esl
cert-to-efi-sig-list -g $(cat ms-guid) MSdbWPCA.crt MSdbWPCA.esl
cert-to-efi-sig-list -g $(cat ms-guid) MSdbUDSCA.crt MSdbUDSCA.esl
cat KEK.esl MSKEK.esl >realKEK.esl
cat db.esl MSdbWPCA.esl MSdbUDSCA.esl >realDB.esl
sign-efi-sig-list -k PK.key -c PK.crt PK PK.esl PK.esl.signed
sign-efi-sig-list -k PK.key -c PK.crt KEK realKEK.esl realKEK.esl.signed
sign-efi-sig-list -k KEK.key -c KEK.crt db realDB.esl realDB.esl.signed
#manjaro默认挂载了efivarfs分区的
efi-updatevar -f PK.esl.signed PK
efi-updatevar -f realKEK.esl.signed KEK
efi-updatevar -f realDB.esl.signed db

签名过程

与前面参考过程的文章不同,使用refind实现secure boot时需要对多个文件签名,而不是使用grub时那样仅对一个文件签名

cp /boot/efi/EFI/refind/refind_x64.efi refind_x64.efi.origin
sbsign --key db.key --cert db.crt --output refind_x64.efi.signed refind_x64.efi.origin
cp refind_x64.efi.signed /boot/efi/EFI/refind/refind_x64.efi
cp refind_x64.efi.signed /boot/efi/EFI/Boot/bootx64.efi
cp /boot/efi/EFI/refind/drivers_x64/ext4_x64.efi ext4_x64.efi.origin
sbsign --key db.key --cert db.crt --output ext4_x64.efi.signed ext4_x64.efi.origin
cp ext4_x64.efi.signed /boot/efi/EFI/refind/drivers_x64/ext4_x64.efi
cp /boot/vmlinuz-4.19-x86_64 vmlinuz-4.19-x86_64.origin
sbsign --key db.key --cert db.crt --output vmlinuz-4.19-x86_64.signed vmlinuz-4.19-x86_64.origin
cp vmlinuz-4.19-x86_64.signed /boot/vmlinuz-4.19-x86_64

后续

重启,进入BIOS,打开Secure Boot,然后就一切正常了。
这个方法也存在一个缺点,即每次更新内核后,都必须对内核再次签名,不如使用grub时方便,不过refindgrub好看一点,而且我的机器上grub出现问题时它能正常使用,暂且如此罢。

【笔记】Emacs 26.2在Windows 10上卡顿及Markdown-mode无法正常工作的解决

个人笔记,如有转载,请注明出处。

——by realasking

昨天自己的Emacs环境能正常工作了,今天干活的时候想做一些笔记,不想老是切换到Typora,也不用同步到joplin,就保存在本地,于是就安装了markdown-mode。但是markdown-mode安装后,按官方说明在init.el中添加了相关的命令后,发现报找不到markdown命令,错误代码1,于是先尝试安装了perl(strawberry),然后在msys2里安装markdown,并将该脚本拷贝到perlsite/bin下,将markdown命令指向用perl来解释的markdown,这倒是能用,但是功能实在太弱了,遂放弃此方案。于是决定使用pandoc

pandoc非常强大,安装.msi后,自动添加了环境变量,找了两个复杂一点的md文件,用它解析一切正常,但是设置markdown命令时发现,pandoc的路径不能有空格,不然找不到。

于是卸载重装到D:\Tools\Pandoc下。但是重启Emacs服务器和客户端后,预览时报错,错误代码92,网上查询无果,灵机一动,删除掉其中的中文内容后再预览,结果一切正常,遂怀疑是编码问题。

找了一个utf-8编码中文.md文件,用emacs打开,自动进入md模式,文件中的中文全部显示为了问号,预览仍然报错92,而utf-8编码中文.txt文件emacs打开一切正常,确认属于编码问题。

于是按网上所传,添加如下内容到init.el中:

(set-language-environment 'UTF-8)

(set-locale-environment UTF-8) 

(set-default-coding-systems 'utf-8)

重新打开emacs,发生了严重的卡顿,又按https://www.cnblogs.com/eat-and-die/p/10309681.html 所述,安装相应字体并添加如下语句:

(defun set-font (english chinese english-size chinese-size)

 (set-face-attribute 'default nil :font (format %s:pixelsize=%d english english-size)) 

(dolist (charset '(kana han symbol cjk-misc bopomofo))

 (set-fontset-font (frame-parameter nil 'font) charset (font-spec :family chinese :size chinese-size)))) 

(set-font Dejavu Sans Mono WenQuanYi Zen Hei Mono 14 14)

重启emacsmarkdown-mode确实正常了,但是原来设置的屏幕最大化失效,屏幕背景色设置失效,字体也没有显示为设置的,而是提示了tty字体缺失

经过搜索,根据aqing1987的解决方案,

将前述诸行全部去除,转而在以下几行

(require  unicad)
(add-to-list  default-frame-alist  ;(fullscreen . maximized)) 

之后添加了如下内容:

(defun s-font()
  (interactive)
  ;; font config for org table showing.
  (set-default-font Consolas-16)
  (dolist (charset '(kana han symbol cjk-misc bopomofo))
    (set-fontset-font (frame-parameter nil 'font)
                      charset
                      (font-spec :family 微软雅黑 :size 16)))
    (setq face-font-rescale-alist '((Consolas . 1.0) (微软雅黑 . 1.23)))
                      )

(add-to-list 'after-make-frame-functions
             (lambda (new-frame)
               (select-frame new-frame)
               (if window-system
                   (s-font))))
(if window-system
    (s-font))

这么修改后编码和emacsclientw都还是不正常,然后还要在

(custom-set-variables

后另起一行添加:

(current-language-environment UTF-8)

并在

(custom-set-faces

后另起一行添加:

(default ((t (:family #(微软雅黑 0 4 (charset utf-8)) :foundry outline :slant normal :weight normal :height 143 :width normal))))

保存之后重启Emacs,Markdown预览无法使用和卡顿的问题就都解决了。

但是按照这种方法配置的Emacs也有问题,在中文版的Windows 10系统下,这么配置后,此软件将无法再打开含有中文的目录名下的文件,因而也不是理想的解决办法。经过一番折腾,目前得到的自觉最为合理的方法如下: ### 安装iconv 1. 安装msys2 我将其安装在D:\\msys64下 2. 安装iconv 启动msys2的控制台,然后执行: bash pacman -S mingw-w64-x86_64-iconv ` 3. 创建pandoc.bat文件 在msys2/usr/bin目录下创建pandoc.bat文件,其内容为: `bash @echo off iconv.exe -t utf-8 %1 |pandoc.exe |iconv.exe -f utf-8 ` 这行脚本修改自[pandoc手册](https://pandoc.org/MANUAL.html#character-encoding) ### 配置Emacs 将init.el中刚才除在(custom-set-faces之后的内容外,额外添加的语句全部删除掉,然后在如下内容: `bash (require \'unicad) (add-to-list \'default-frame-alist \'(fullscreen . maximized)) ` 之前添加: `bash (setenv PATH (concat D:\\\\msys64\\\\mingw64\\\\bin; (getenv PATH))) ` Markdown的命令设置为: `bash (setq markdown-command D:/msys64/mingw64/bin/pandoc.bat) 好了,现在一切都完美了。

【原创】Windows10下Emacs安装与配置中遇到问题的解决

个人原创,如有转载,请注明出处。

——by realasking

最近需要使用python做一个规模较大的脚本,之前那种采用某种编辑器写完脚本后再执行看结果的做法已经不再合适,我需要一个自由度较高的python的ide。在考察了若干ide后,最后我选择了Emacs,不过,Linux下的配置比较成功,而Windows下则遇到了一些问题,这里对解决过程做了一点记录。

如何右键打开文件

GNU组织提供了一个官方解决方案: MsWindowsGlobalContextMenu

操作如下:

  1. 根据实际情况,我建立了注册表文件rightclick.reg,内容如下:
Windows Registry Editor Version 5.00
;; Be sure to set the correct path to Emacs on your system!
[HKEY_CURRENT_USER\Software\Classes\*\shell]

;; Open file in existing frame
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopencurrentframe]
@=&Emacs: Open File
icon=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopencurrentframe\command]
@=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe -n --alternate-editor=\D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\runemacs.exe\ \%1\

;; Open file in new frame
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopennewframe]
@=&Emacs: Open in new Window
icon=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopennewframe\command]
@=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe -n --alternate-editor=\D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\runemacs.exe\ -c \%1\
  1. D:\Program Files\Emacs\emacs-26.2-x86_64\bin下建立runemacs.exe的快捷方式,然后拷贝到shell:startup
  2. 重启电脑

显示字体太小

解决方法:

Options->Set Default font,选择微软雅黑,字号设置为14,然后Save Options

Emacs启动窗口太小

如果直接运行runemacs.exe启动Emacs,有很多方法设置启动窗口大小和位置,但是在Windows下通过emacsclientw.exe来启动,这些方法基本都无效,唯一有效的方法是将Emacs启动窗口设为最大化,做法是将如下语句添加到init.el中:

(add-hook 'window-setup-hook 'toggle-frame-fullscreen t)
(add-to-list 'default-frame-alist '(fullscreen . maximized))

之所以一定要使用服务器-客户端的模式启动Emacs,是因为Windows下Emacs启动实在太慢了。

打开英文和希腊字母混合的文档乱码

解决办法:

1.下载unicad

2.拷贝到.emacs.d/lisp文件夹下

3.将如下语句添加到init.el中:

(push (expand-file-name ~/.emacs.d/lisp) load-path)
(require 'unicad)

最新文章

最近回复

  • realasking: 哪里的话,还要非常感...
  • cnfczn: 发送留言报错:in_...
  • cnfczn: 大狮兄666,以前经...
  • realasking: 最近还行啊,就是上网...
  • cnfczn: 大狮兄,好久不见啊....
  • realasking: 您好。有什么问题就在...
  • Eric Chen: 作者你好!最近折腾中...

分类

归档

其它