Ubuntu 安装后

Posted by [Zenith John] on Thursday, August 19, 2021

目录

使用的代理软件

v2raya 以及 v2ray-core。具体可以参考 这篇文章

同时,为让命令行工具使用代理,我使用的是 privoxy

apt install privoxy
vim /etc/privoxy/config

修改为

forward-socks5t   /   127.0.0.1:1080 .
listen-address  127.0.0.1:8118

注意 . 不可省略。

在 zsh 配置文件中加入

# proxy setting
alias proxyon="export http_proxy='http://127.0.0.1:8118'; export https_proxy=$http_proxy"
alias proxyoff="unset http_proxy; unset https_proxy"

然后就可以使用这两个命令来临时开启、关闭代理。

软件包安装

安装 git, zsh, rust, find-fd, ripgrep, cmake, make, autoconf 等软件, 编译 emacs-28 –with-modules –with-native-comp, 在此过程中需要添加大量的包,包括 jansson, jpeg, png, tiff, xpm, gnutls, gtk3,libvterm, libtool 等, 还需要安装 rcm

apt install git rcm zsh lua5.3 fd-find ripgrep cmake autoconf libjansson4 libjansson-dev libjpeg-dev libpng-dev libtiff5 libtiff5-dev libgtk-3-0 libgtk-3-dev libvterm0 libvterm-dev libtool libxpm4 libxpm-dev libgnutls28-dev libgif7 libgif-dev  libncurses-dev texinfo clang libclang-dev  librime librime-dev libgccjit0 libgccgit-10-dev

apt install zathura

# git clone 最好在代理配置后进行
git clone https://github.com/zplug/zplug .zplug

git clone git@github.com:zenith-john/dotfiles.git .dotfiles
rcup
git clone git@github.com:zenith-john/Notes.git
git clone git@github.com:zenith-john/zenith-emacs.git
ln -s zenith-emacs .emacs.d

git clone https://github.com/emacs-mirror/emacs --depth=1

在安装完 zsh 后,使用 chsh 命令将 login shell 转化为 zshell。

在 .emacs.d 的 README.md 中可以看到具体的 emacs 配置的安装方法。

Trojan 需要版本 1.14 否则可能有一些问题。(Trojan 已经无法使用了。)

安装 rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

然后可以使用 rust 安装 sd。

cargo install sd

安装一些应用软件

安装 jumpapp

git clone https://github.com/mkropat/jumpapp.git
cd jumpapp
make && sudo make install
apt install flameshot juk goldendict latte-dock fsearch xbindkeys fcitx5 fcitx5-rime rofi

将 rime 配置文件,放入 ~/.local/share/fcitx5/rime/

为了使用 mu4e 必须编译安装 mu,这一过程也比较复杂,请按照需求安装软件包,并完成编译。

杂项

  1. KDE 的快捷键设置和虚拟桌面。将 .local/bin/zstart 加入启动项。将 CapsLock 换为 Ctrl。

  2. 修改 /etc/fstab 来进行自动挂载 windows 的几个磁盘,以下是案例。

       /dev/nvme0n1p3	/media/C	ntfs	defaults	0	1
    
  3. 加入 okular-unique 这一 script 来弥补 okular open in tab 的不足,然后使用 mimeopen -d 来切换默认的打开程序为 okular-unique

       #!/bin/sh
       jumpapp okular
       okular $1
    

clang 找不到标准库头文件错误

由于 clang 会找 gcc,g++ 版本最高的 headers,因此有时 clang 会找不到头文件,因此需要安装新版本的 gcc。

Sshfs

Example: bash

sshfs -o follow_symlinks,idmap=user zhangnt20@101.6.120.15:/home/zhangnt20 -p 5003 ~/remote_home

Webcal

将 webcal:// 换为 http:// 直接使用 wget 下载为 ics, 然后使用 ics2org.awk 脚本处理。

使用 Gnome

apt install vanilla-gnome-desktop gnome-tweak-tools

由于我使用的部分软件需要 X,因此,我还是在 Xorg 中使用 Gnome。可以使用 firefox 的 app 来安装 appindicator, dash-to-dock, clipboard 三个 extensions。也需要和 KDE 一样对虚拟桌面和快捷键进行设置。

切换到 Gnome 的主要原因是 KDE 的 notfiy-send 的 notification 无法存留在 nofication center 中,而 gnome 可以。不知道是特性还是功能的问题。由于我使用 org-mode 管理日程,因此这个提醒对我来说还是比较重要的,因此我切换到了 gnome 中。

我们可以使用 kvantum 来对 QT 的应用进行 appearance 的修饰使得和 gtk 的应用更相似。

sudo apt install qt5-style-kvantum qt5-style-kvantum-themes
echo "export QT_STYLE_OVERRIDE=kvantum" >> ~/.profile

可以使用以下的命令,禁用 Win 的 activity 效果

gsettings set org.gnome.mutter overlay-key ""

在 Gnome 使用过程中,发现 xbindkeys 的部分快捷键不能正确作用。我们使用

(for schema in $(gsettings list-schemas); do gsettings list-recursively $schema; done) | grep '<Super>'

来找到有问题的快捷键被哪个东西占了,然后使用

gsettings set org.gnome.settings-daemon.plugins.media-keys rotate-video-lock-static \[\'XF86DRotationLockToggle\'\]

来取消绑定,这个快捷键就能够正常使用了。

使用 ibus-rime 来进行中文输入

apt install ibus-rime

为使 ibus-rime 横排显示需要在 ibus-rime.yaml 中加入

style:
   horizontal: true

同时需要修改 .profile

export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus

KDE connect and GSconnect

GSConnect 是 Gnome 的一个 Extension 与 KDE connect 一样,其安卓 app 利用的就是 KDE connect 的 app。使用他就可以非常方便的进行手机和电脑的互操作。Enjoy!

无法 hibernate

[2021-08-14 Sat] 在 Linux 中,进行 Hibernate 较为复杂,主要参考的是 https://blog.ivansmirnov.name/how-to-set-up-hibernate-on-ubuntu-20-04/ 。我使用的是 swapfile 首先需要将 \/swapfile 扩大。可以参考的命令是

swapoff
dd if=/dev/zero of=/swapfile bs=1M count=$((SIZE*1024))
mkswap /swapfile
swapon /swapfile

之后可能需要更改一下 /etc/fstab, 通过以下命令来获得 swapfile 的 UUID 和 offset。

RESUME_PARAMS="resume=UUID=$(findmnt / -o UUID -n) resume_offset=$(sudo filefrag -v /swapfile|awk 'NR==4{gsub(/\./,"");print $4;}') "

更新 grub 以及 Linux-kernel 镜像就完成了,将上述的变量的字符串加入 /etc/default/grub 文件,中的 GRUB\_CMDLINE\_LINUX\_DEFAULT ,例如

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=18ec5634-548e-40ef-8629-aca25a6eeb00 resume_offset=18003967"

然后将 RESUME_PARAMS 写入 /etc/initramfs-tools/conf.d/resume。之后运行

update-initramfs -c -k all

这样 hibernate 应该能正常进行了。

如果还有问题,可以使用以下的命令来对 hibernate 的问题进行调试了

journalctl -xe
dmesg | less
vim /var/log/pm-suspend.log
systemctl status hibernate

同时由于 Lenovo 的问题,因此,我们 ELAN touchpad 被错误地认为了 touchscreen。我们要解决这个问题,可以使用 systemctl 的 service。参考 https://bugzilla.kernel.org/show%5Fbug.cgi?id=207759#c17

#!/bin/bash
modprobe i2c_hid
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/elants_i2c/unbind
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/i2c_hid/bind

以及

[Unit]
Description=Move touchscreen to correct driver

[Service]
ExecStart=/etc/tsmove
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

然后使用了

systemctl enable touchscreen
systemctl start touchscreen

来解决这个问题,但是即使这样,但是由于在开机的过程中,这个错误的程序是无法加载的,因此也就会导致存储的文件无法正常使用,因此也就无法使用 hibernate 了。

Ubuntu 安装 deepin-wine

来自:https://zhuanlan.zhihu.com/p/341481469 系统:Ubuntu 20.10

今天使用Ubuntu,想安装一下deepin的qq,在网上找到以下方法:

wget -O- https://deepin-wine.i-m.dev/setup.sh | sh

正常执行

sudo apt-get install com.qq.im.deepin

报错:

下列软件包有未满足的依赖关系: libgirepository-1.0-1 : 破坏: python-gi (< 3.34.0-4~) 但是 3.30.4-1 正要被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

我试着安装python-gi,同样报错,我又试着删了libgirepository-1.0-1,但是他是很多包的依赖,不敢删。

百度搜索无果,bing搜索外国也没找到解决办法,倒是有人遇到了同样的问题。

在ubuntu搜集信息后,发现libgirepository-1.0-1依赖于libffi7,但是apt下载不到他,只能去https://packages.ubuntu.com/zh-cn/focal/libffi7 手动下载。安装完后又去https://packages.ubuntu.com/zh-cn/focal/python-gi 手动下载python-gi,先后安装成功。

再次安装qq,重启,安装成功。

但是发现字体显示不全。找了个网站下载了simsun.ttc,放到 ~/.deepinwine/Deepin-QQ/drive_c/windows/Fonts/

问题解决。

PS:注意 deepin-wine 是无法使用摄像头的。