new gmi: cleanup_home

thoughts about minimalist
tmux.conf access fix
This commit is contained in:
dongdigua 2023-05-13 11:40:03 +08:00
parent 8a18a288c4
commit b5609240f3
6 changed files with 195 additions and 6 deletions

View File

@ -29,7 +29,7 @@ jobs:
- name: Prepare
run: |
curl "https://raw.githubusercontent.com/dongdigua/configs/main/kernel/README.org" -o org/kernel.org
curl "https://raw.githubusercontent.com/dongdigua/configs/main/.tmux.conf" -O
curl "https://raw.githubusercontent.com/dongdigua/configs/main/.tmux.conf" -o tmux.conf
- name: Build with Org
run: |
@ -48,7 +48,7 @@ jobs:
source: ./
destination: ./_site
- name: Patch HTML
- name: Patch HTML & Get Static File
run: |
cd _site && tree
sudo ./patches/icons.sh

52
gmi/cleanup_home.gmi Normal file
View File

@ -0,0 +1,52 @@
# Clean My Home Directory
Luke Smith's Video:
=> https://videos.lukesmith.xyz/w/t5WcCYv58zDur45LRC1KFE Spring Cleaning your Home! (~/, That is...)
After watching for 30secs, I'm shocked. `ls -a | wc -l` he: 18, me: 150+
It's a total mess! Last time when I'm backing up my old Manjaro, I found it's far more messy than this machine.
On that Manjaro, I remenbered that I installed at least KDE, Gnome, Mate, AwesomeWM, i3wm...
Each desktop environment have their own set of application and each of them will create mass of configuration file and even collide with each other (e.g default application in start menu). And I never wanted to clean them up.
I think the ultimate principle to avoid the mess is to only install and run the software I needed.
I have experimented a lot of different softwares on my three OS
* handmade Manjaro workstation
* Fedora laptop now I'm using
* OpenBSD on the same disk with Fedora
The Fedora machine should have been even more messy, but I broke the BIOS somehow with fw-update (that's why I NEVER use fw-update and gnome-software anymore). So it's returned to factory and resetted the whole disk, so I reinstalled Fedora, which is the Fedora I'm using now. It has 3000+ packages installed (last year it's around 2900), holy shit!
The OpenBSD machine only have less than 40 items in ~, because I seldom use it now (after a lot of experiment in [1]). But it's still a little messy, it's about software, because I tried many different software solution and don't know if I have deleted those unused ones, now it have around 150 packages. But still, better than my Fedora machine.
All the problem originates from one fact:
I WAS not a stable user from the beginning and always tried new things, and now I'm sort of a stable user, I need to clean the waste I made earlier.
Actually, in my early crazy days of trying Linux, I did a lot of installation on my old 2008 laptop (with Nvidia!), looking back then, I think I got some experience how to customize the installation, but after I become a stable user, I just don't do that anymore. I think I need to try more. And there's a list[3] of packages that fedora uses for installation (anaconda).
Luke, on the contrast, is a very stable/experienced user, have a clean installation, and know what package to have. (And seems Luke and DT these guys sometimes re-install the system known as distro-hopping)
I'm still on the road of becoming a experienced Linux user. What I need to do:
* REINSTALL THE SYSTEM
* have a minimal base system (like: OpenBSD, unlike: Fedora Workstation, Manjaro KDE)
* have a stable working environment and get rid of DE (I'm using SwayWM now and I think it is the solution, probably try out Hyprland when it is stable enough on Fedora)
* keep track of installed packages, delete all the related files after removal (the really hard part)
* the last one is clean up files regularly
but can I really get rid of DE like Gnome?
I sometimes need to use ibus to enter into some suspicious Chinese website that can't copy-and-paste from emacs pyim.
I sometimes need to use some old application that depends on X window system, such as the sunloginclient in China.
well, well, well, now first cleanup the home!
I struggled a few hours to reduce the amount from 150+ to 100, mostly using ls, stat, and rm -r.
Then the next morning, I found xdg-ninja[2] in ArchWiki. I ran it and found a big problem:
I didn't even set these $XDG_*_HOME variables!
After some cleaning-up, the number drops to around 80, it's fine now.
My workflow is indeed much more complex than Luke, I probably can never achieve his mimnimalist.
then the .config also need some cleaning, it have 175 items.
WAAAAAAAAAAAAAAAAAAAAAAAAA!
headache, do it later.
=> https://dongdigua.github.io/whatif_openbsd [1]
=> https://github.com/b3nj5m1n/xdg-ninja [2]
=> https://dongdigua.github.io/anaconda_kickstart [3]

View File

@ -113,7 +113,8 @@ CentOS-Stream 8 为例, 定义软件组的文件是 [[https://git.centos.org/cen
那里面的 =*-comps-*.xml==<environment>==<display_order>=
就正好是 1~4 和两个 99
=comps-AppStream.x86_64.xml=
@@html:<details>@@
@@html:<summary>comps-AppStream.x86_64.xml</summary>@@
#+BEGIN_SRC xml
<environment>
<id>graphical-server-environment</id>
@ -190,8 +191,10 @@ CentOS-Stream 8 为例, 定义软件组的文件是 [[https://git.centos.org/cen
<optionlist><!----></optionlist>
</environment>
#+END_SRC
@@html:</details>@@
=comps-BaseOS.x86_64.xml=
@@html:<details>@@
@@html:<summary>comps-BaseOS.x86_64.xml</summary>@@
#+BEGIN_SRC xml
<environment>
<id>custom-environment</id>
@ -228,6 +231,7 @@ CentOS-Stream 8 为例, 定义软件组的文件是 [[https://git.centos.org/cen
<optionlist><!----></optionlist>
</environment>
#+END_SRC
@@html:</details>@@
* Fedora
Fedora 分不同的变体, 常见的是 Server 和 Workstation
@ -260,6 +264,7 @@ Fedora 分不同的变体, 常见的是 Server 和 Workstation
<optionlist><!----></optionlist>
</environment>
#+END_SRC
** Server
=server-product-environment=
#+BEGIN_SRC xml
@ -278,3 +283,127 @@ Fedora 分不同的变体, 常见的是 Server 和 Workstation
<optionlist><!----></optionlist>
</environment>
#+END_SRC
** What I want
花了一阵从 comps.xml 里搜所有安装界面的选项, 只有几个我能全选, 别的就慢慢手动安吧
(emacs web-mode 和 ripgrep 是好帮手)
@@html:<details>@@
@@html:<summary>my choice</summary>@@
#+BEGIN_SRC xml
<group>
<id>standard</id>
<_name>Standard</_name>
<_description>Common set of utilities that extend the minimal installation.</_description>
<default>false</default>
<uservisible>false</uservisible>
<packagelist><!----></packagelist>
</group>
<group>
<id>c-development</id>
<_name>C Development Tools and Libraries</_name>
<_description>These tools include core development tools such as automake, gcc and debuggers.</_description>
<default>false</default>
<uservisible>true</uservisible>
<packagelist>
<packagereq type="mandatory">autoconf</packagereq>
<packagereq type="mandatory">automake</packagereq>
<packagereq type="mandatory">binutils</packagereq>
<packagereq type="mandatory">bison</packagereq>
<packagereq type="mandatory">flex</packagereq>
<packagereq basearchonly="true" type="mandatory">gcc</packagereq>
<packagereq basearchonly="true" type="mandatory">gcc-c++</packagereq>
<packagereq basearchonly="true" type="mandatory">gdb</packagereq>
<packagereq type="mandatory">glibc-devel</packagereq>
<packagereq type="mandatory">libtool</packagereq>
<packagereq type="mandatory">make</packagereq>
<packagereq type="mandatory">pkgconf</packagereq>
<packagereq type="mandatory">strace</packagereq>
<packagereq type="default">byacc</packagereq>
<packagereq type="default">ccache</packagereq>
<packagereq type="default">cscope</packagereq>
<packagereq type="default">ctags</packagereq>
<packagereq type="default">elfutils</packagereq>
<packagereq type="default">indent</packagereq>
<packagereq basearchonly="true" type="default">ltrace</packagereq>
<packagereq basearchonly="true" type="default">perf</packagereq>
<packagereq type="default">valgrind</packagereq>
<packagereq type="optional">astyle</packagereq>
<packagereq type="optional">cbmc</packagereq>
<packagereq type="optional">check</packagereq>
<packagereq type="optional">cmake</packagereq>
<packagereq type="optional">coan</packagereq>
<packagereq type="optional">cproto</packagereq>
<packagereq type="optional">ElectricFence</packagereq>
<packagereq type="optional">insight</packagereq>
<packagereq type="optional">nasm</packagereq>
<packagereq type="optional">pscan</packagereq>
<packagereq type="optional">python3-scons</packagereq>
<packagereq type="optional">remake</packagereq>
<packagereq type="optional">scorep</packagereq>
<packagereq type="optional">splint</packagereq>
<packagereq type="optional">yasm</packagereq>
<packagereq type="optional">zzuf</packagereq>
</packagelist>
</group>
<group>
<id>container-management</id>
<_name>Container Management</_name>
<_description>Tools for managing Linux containers</_description>
<default>false</default>
<uservisible>true</uservisible>
<packagelist>
<packagereq type="default">podman</packagereq>
<packagereq type="optional">buildah</packagereq>
<packagereq type="optional">flatpak</packagereq>
<packagereq type="optional">flatpak-builder</packagereq>
</packagelist>
</group>
<group>
<id>rpm-development-tools</id>
<_name>RPM Development Tools</_name>
<_description>These tools include core development tools such rpmbuild.</_description>
<default>false</default>
<uservisible>true</uservisible>
<packagelist>
<packagereq type="mandatory">redhat-rpm-config</packagereq>
<packagereq type="mandatory">rpm-build</packagereq>
<packagereq type="default">koji</packagereq>
<packagereq type="default">mock</packagereq>
<packagereq type="default">rpmdevtools</packagereq>
<packagereq type="optional">pungi</packagereq>
<packagereq type="optional">rpmlint</packagereq>
</packagelist>
</group>
<group>
<id>multimedia</id>
<_name>Multimedia</_name>
<_description>Audio/video framework common to desktops</_description>
<default>false</default>
<uservisible>false</uservisible>
<packagelist>
<packagereq>alsa-ucm</packagereq>
<packagereq>alsa-utils</packagereq>
<packagereq>gstreamer1-plugin-libav</packagereq>
<packagereq>gstreamer1-plugin-openh264</packagereq>
<packagereq>gstreamer1-plugins-bad-free</packagereq>
<packagereq>gstreamer1-plugins-good</packagereq>
<packagereq>gstreamer1-plugins-ugly-free</packagereq>
<packagereq>PackageKit-gstreamer-plugin</packagereq>
<packagereq>pipewire-alsa</packagereq>
<packagereq>pipewire-gstreamer</packagereq>
<packagereq>pipewire-pulseaudio</packagereq>
<packagereq>pipewire-utils</packagereq>
<packagereq>wireplumber</packagereq>
<packagereq type="conditional" requires="gstreamer">gstreamer-plugins-espeak</packagereq>
</packagelist>
</group>
#+END_SRC
@@html:</details>@@
剩下的不在选项里, 只能和某些环境捆绑的组:
- swaywm (没错, 因为 sway-desktop-environment 环境也有我不像要的包)
- multimedia
- fonts
- development-libs
当我越来越追求极简主义的时候, 我真的适合再接着用 Fedora 吗? 我可能就是需要一个机会尝试其他发行版了.
我剩下的牢骚在这: https://dongdigua.github.io/cleanup_home.gmi.txt

View File

@ -57,5 +57,10 @@ yes, deprecated, so I need to change it in my packages
** [[https://lwn.net/Articles/912202][LWN: Packaging Rust for Fedora]]
not mail, but interesting
* Review Request I'm interested in
It will be good if I can review for them...
** [[https://bugzilla.redhat.com/show_bug.cgi?id=2183700][Review Request: nim - A statically typed compiled systems programming language]]
** [[https://bugzilla.redhat.com/show_bug.cgi?id=2192986][Review Request: hyprland - Dynamic tiling Wayland compositor that doesn't sacrifice on its looks]]
* Footnotes
[fn:1] [[https://acyanbird.github.io/2022/10/15/向EPEL请求新的包][向EPEL请求新的包(群主写的)]]

View File

@ -153,7 +153,9 @@ Xe 也受不了 gpg 改用 age 加密了: [[https://xeiaso.net/blog/new-gpg-key-
当然, 我这里暂时先不公布 age 的公钥, 还是因为私钥在硬盘上, 这是对发送加密消息的对方的不负责.
如果之后公布的话, age 的公钥弄成 [[https://github.com/seaofmars/vanity-age][vanity]] 能更有趣, 因为{{{ruby(收件人,recipient)}}}能包含更多字母.
** pass
* pass
首先, 密码的准则: https://xkcd.com/936/
这种密码管理器直接用明文目录结构存储密码, 会泄漏元数据啊!
更糟糕的是如果放到 GitHub repo (比如 gopass), 就相当于告诉人家你都有什么账号以及什么时候更改了哪个账号的密码.
而我的想法是, 须要分文件存储而不是使用整个一个加密文件, 但文件名不能泄漏元数据.

View File

@ -1,10 +1,11 @@
## Table of Contents
### Posts (sorted by time)
- [Clean Up Home Directory](cleanup_home.gmi.txt)<br>
- [一位 PGP 进步青年的 Canokey 历程](pgp_canokey)<br>
- [Join Fedora and Maintain Package](fedora_contrib)<br>
- [Project that Annoys Me](annoying_project.gmi.txt)<br>
- [玩转邮件列表](mailinglist)<br>
- [我要不要试试 OpenBSD](whatif_openbsd)<br>
- [我要不要试试 OpenBSD 🐡](whatif_openbsd)<br>
- [一个乐子 commit](lol.diff.txt)<br>
- [一次大备份](backup_everything)<br>
- [2023 了, 试试 emacs 29](emacs29_2023)<br>