├── .dockerignore ├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── aur ├── 0-PKGDEST.sh ├── 1-PKGBUILD.sh ├── 2-prepare.sh ├── 3-build.sh ├── 4-repoadd.sh ├── 9-deps.sh └── full-update.sh ├── dockerin.sh ├── dockerup.sh ├── docs-old ├── Installation_hint.md └── github.css ├── docs ├── .gitignore ├── README.md ├── astro.config.mjs ├── package-lock.json ├── package.json ├── public │ ├── BingSiteAuth.xml │ ├── favicon.ico │ ├── robots.txt │ └── screenshot.png ├── src │ ├── assets │ │ └── 404.webp │ ├── content │ │ ├── config.ts │ │ └── docs │ │ │ ├── 404.mdx │ │ │ ├── about │ │ │ ├── clarify.md │ │ │ ├── readme.md │ │ │ ├── reason.md │ │ │ └── similar-projects.md │ │ │ ├── design │ │ │ ├── feature.md │ │ │ ├── howhard.md │ │ │ └── idea.md │ │ │ ├── dev │ │ │ ├── BUILD.md │ │ │ ├── BUILDinDocker.md │ │ │ ├── custom.md │ │ │ ├── howtoPR.md │ │ │ └── maintaining.md │ │ │ ├── en │ │ │ └── index.mdx │ │ │ ├── index.mdx │ │ │ └── using │ │ │ ├── obtain.md │ │ │ ├── run.md │ │ │ └── usage.md │ ├── env.d.ts │ ├── layouts │ │ └── autonum.astro │ └── styles │ │ └── custom.css └── tsconfig.json ├── efiboot └── loader │ ├── entries │ ├── 01-archiso-x86_64-linux.conf │ ├── 02-archiso-x86_64-linux-swapctrl.conf │ ├── 03-archiso-x86_64-linux-verbose.conf │ ├── 04-archiso-x86_64-linux-verbose-swapctrl.conf │ └── 05-archiso-x86_64-memtest86+.conf │ └── loader.conf ├── getiso ├── grub ├── grub.cfg └── loopback.cfg ├── layer-home ├── note.txt ├── prepareemacs.sh ├── preparefirefox.sh ├── public │ ├── .config │ │ ├── Kvantum │ │ │ ├── Sweet-transparent-toolbar# │ │ │ │ └── Sweet-transparent-toolbar#.kvconfig │ │ │ └── kvantum.kvconfig │ │ ├── fontconfig │ │ │ └── fonts.conf │ │ ├── gtk-3.0 │ │ │ └── settings.ini │ │ ├── kdeglobals │ │ ├── nvim │ │ │ ├── autoload │ │ │ │ ├── airline │ │ │ │ │ └── themes │ │ │ │ │ │ └── everforest.vim │ │ │ │ ├── everforest.vim │ │ │ │ └── lightline │ │ │ │ │ └── colorscheme │ │ │ │ │ └── everforest.vim │ │ │ ├── colors │ │ │ │ └── everforest.vim │ │ │ ├── doc │ │ │ │ └── everforest.txt │ │ │ └── init.vim │ │ ├── qt5ct │ │ │ └── qt5ct.conf │ │ ├── qt6ct │ │ │ └── qt6ct.conf │ │ ├── vifm │ │ │ ├── bookmark.vim │ │ │ ├── colors │ │ │ │ ├── Default-256.vifm │ │ │ │ ├── Default.vifm │ │ │ │ ├── dracula.vifm │ │ │ │ └── nord.vifm │ │ │ └── vifmrc │ │ └── xsettingsd │ │ │ └── xsettingsd.conf │ ├── .emacs.d │ │ ├── .gitignore │ │ ├── init.0.org │ │ ├── init.el │ │ └── locext │ │ │ ├── ftable │ │ │ ├── README.org │ │ │ ├── ftable.el │ │ │ └── ftable.gif │ │ │ ├── good-scroll.el │ │ │ ├── .dir-locals.el │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── demo.gif │ │ │ ├── good-scroll-bezier.el │ │ │ ├── good-scroll-linear.el │ │ │ ├── good-scroll-test.el │ │ │ └── good-scroll.el │ │ │ ├── iscroll │ │ │ ├── LICENSE │ │ │ ├── README.org │ │ │ └── iscroll.el │ │ │ ├── isearch-mb │ │ │ ├── README.org │ │ │ └── isearch-mb.el │ │ │ ├── org-modern │ │ │ ├── .gitignore │ │ │ ├── CHANGELOG.org │ │ │ ├── LICENSE │ │ │ ├── README.org │ │ │ ├── example.org │ │ │ └── org-modern.el │ │ │ └── valign │ │ │ ├── .elpaignore │ │ │ ├── Makefile │ │ │ ├── README-CN.org │ │ │ ├── README.org │ │ │ ├── default.png │ │ │ ├── fancy-bar.png │ │ │ ├── single-column.png │ │ │ ├── table.el.png │ │ │ ├── test.org │ │ │ └── valign.el │ ├── .gtkrc-2.0 │ └── .xmodmap ├── root │ ├── .p10k-tty.zsh │ ├── .p10k.zsh │ └── .zshrc └── skel │ ├── .cache │ └── keepassxc │ │ └── keepassxc.ini │ ├── .config │ ├── QQ │ │ └── crash_files │ ├── Tilix.dconf │ ├── autostart │ │ ├── originalterminal.desktop │ │ ├── sufirefoxd.desktop │ │ └── vmware-user.desktop │ ├── fcitx5 │ │ ├── conf │ │ │ ├── cached_layouts │ │ │ ├── chttrans.conf │ │ │ ├── classicui.conf │ │ │ ├── notifications.conf │ │ │ ├── pinyin.conf │ │ │ └── punctuation.conf │ │ └── profile │ ├── keepassxc │ │ └── keepassxc.ini │ ├── mimeapps.list │ ├── peazip │ │ ├── conf-lastgood.txt │ │ └── conf.txt │ ├── xfce4 │ │ ├── desktop │ │ │ ├── accels.scm │ │ │ └── icons.screen0.yaml │ │ ├── helpers.rc │ │ ├── panel │ │ │ ├── battery-39.rc │ │ │ ├── launcher-11 │ │ │ │ └── 168402303610.desktop │ │ │ ├── launcher-17 │ │ │ │ └── 16839478791.desktop │ │ │ ├── launcher-18 │ │ │ │ └── 16839478792.desktop │ │ │ ├── launcher-20 │ │ │ │ └── 16839478794.desktop │ │ │ ├── launcher-8 │ │ │ │ └── 16840217039.desktop │ │ │ └── screenshooter-14.rc │ │ └── xfconf │ │ │ └── xfce-perchannel-xml │ │ │ ├── displays.xml │ │ │ ├── keyboards.xml │ │ │ ├── thunar.xml │ │ │ ├── xfce4-appfinder.xml │ │ │ ├── xfce4-desktop.xml │ │ │ ├── xfce4-keyboard-shortcuts.xml │ │ │ ├── xfce4-notifyd.xml │ │ │ ├── xfce4-panel.xml │ │ │ ├── xfce4-power-manager.xml │ │ │ ├── xfce4-screensaver.xml │ │ │ ├── xfce4-settings-manager.xml │ │ │ ├── xfwm4.xml │ │ │ └── xsettings.xml │ └── zathura │ │ └── zathurarc │ ├── .local │ └── share │ │ ├── fcitx5 │ │ └── rime │ │ │ └── build │ │ │ ├── bopomofo.prism.bin │ │ │ ├── bopomofo.schema.yaml │ │ │ ├── bopomofo_tw.prism.bin │ │ │ ├── bopomofo_tw.schema.yaml │ │ │ ├── cangjie5.prism.bin │ │ │ ├── cangjie5.reverse.bin │ │ │ ├── cangjie5.schema.yaml │ │ │ ├── cangjie5.table.bin │ │ │ ├── default.yaml │ │ │ ├── fcitx5.yaml │ │ │ └── luna_pinyin.prism.bin │ │ ├── nwg-look │ │ └── gsettings │ │ └── xfce4 │ │ └── helpers │ │ ├── custom-FileManager.desktop │ │ └── custom-TerminalEmulator.desktop │ ├── .mozilla │ └── firefox │ │ ├── Crash Reports │ │ └── InstallTime20240625011508 │ │ ├── fawis2kz.default-release │ │ ├── .parentlock │ │ ├── ExperimentStoreData.json │ │ ├── activity-stream.weather_feed.json │ │ ├── addonStartup.json.lz4 │ │ ├── addons.json │ │ ├── bounce-tracking-protection.sqlite │ │ ├── broadcast-listeners.json │ │ ├── cert9.db │ │ ├── chrome │ │ │ └── userChrome.css │ │ ├── compatibility.ini │ │ ├── containers.json │ │ ├── domain_to_categories.sqlite-journal │ │ ├── enumerate_devices.txt │ │ ├── extension-preferences.json │ │ ├── extension-settings.json │ │ ├── extensions.json │ │ ├── extensions │ │ │ ├── ArchAur@archlinux.org.xpi │ │ │ ├── ArchForumK@archlinux.org.xpi │ │ │ ├── ArchPkgs@archlinux.org.xpi │ │ │ ├── addon@darkreader.org.xpi │ │ │ ├── cliget@zaidabdulla.com.xpi │ │ │ ├── headereditor-amo@addon.firefoxcn.net.xpi │ │ │ ├── langpack-zh-CN@firefox.mozilla.org.xpi │ │ │ ├── offline-qr-code@rugk.github.io.xpi │ │ │ ├── vimium-c@gdh1995.cn.xpi │ │ │ ├── {02503e58-2fea-4dc4-893b-d35e36b92437}.xpi │ │ │ ├── {3c078156-979c-498b-8990-85f7987dd929}.xpi │ │ │ ├── {4853d046-c5a3-436b-bc36-220fd935ee1d}.xpi │ │ │ ├── {531906d3-e22f-4a6c-a102-8057b88a1a63}.xpi │ │ │ ├── {87578d5d-3527-4431-879d-12c33f7d2bbc}.xpi │ │ │ ├── {9fd56529-f621-4820-8128-f0bbbdbd8a73}.xpi │ │ │ ├── {aecec67f-0d10-4fa7-b7c7-609a2db280cf}.xpi │ │ │ ├── {af37054b-3ace-46a2-ac59-709e4412bec6}.xpi │ │ │ ├── {bc21b9a1-3ad6-4b00-bca4-ef5b7e21253b}.xpi │ │ │ └── {c6bfcebc-2a5f-47eb-9c55-9b36ee4a38db}.xpi │ │ ├── favicons.sqlite │ │ ├── gmp-gmpopenh264 │ │ │ └── 2.3.2 │ │ │ │ ├── gmpopenh264.info │ │ │ │ └── libgmpopenh264.so │ │ ├── handlers.json │ │ ├── lock │ │ ├── pkcs11.txt │ │ ├── places.sqlite │ │ ├── places.sqlite-wal │ │ ├── prefs.js │ │ ├── protections.sqlite │ │ ├── search.json.mozlz4 │ │ ├── security_state │ │ │ └── data.safe.bin │ │ ├── serviceworker.txt │ │ ├── sessionCheckpoints.json │ │ ├── settings │ │ │ ├── data.safe.bin │ │ │ └── main │ │ │ │ └── ms-language-packs │ │ │ │ └── browser │ │ │ │ └── newtab │ │ │ │ └── asrouter.ftl │ │ ├── shield-preference-experiments.json │ │ ├── storage-sync-v2.sqlite │ │ ├── storage-sync-v2.sqlite-wal │ │ ├── storage.sqlite │ │ ├── times.json │ │ └── xulstore.json │ │ ├── installs.ini │ │ └── profiles.ini │ ├── .p10k-tty.zsh │ ├── .p10k.zsh │ └── .zshrc ├── layer-rootfs ├── fork-sync.sh ├── full-prepare.sh ├── note.txt ├── prepare-icon-git.sh ├── prepare-icon-svn.sh ├── prepare-sweet.sh └── stored │ ├── etc │ ├── X11 │ │ └── xorg.conf.d │ │ │ └── 10-keyboard.conf │ ├── environment │ ├── group │ ├── gshadow │ ├── hostname │ ├── hosts │ ├── locale.conf │ ├── locale.gen │ ├── localtime │ ├── mkinitcpio.conf.d │ │ └── archiso.conf │ ├── motd │ ├── motd-zh_CN │ ├── pacman.conf │ ├── pacman.d │ │ ├── archlinuxcn-mirrorlist │ │ └── mirrorlist │ ├── paru.conf │ ├── passwd │ ├── shadow │ ├── ssh │ │ └── sshd_config.d │ │ │ └── 11-arCNiso.conf │ ├── sudoers │ ├── systemd │ │ └── system │ │ │ ├── arCNiso-prepare.service │ │ │ ├── bluetooth.target.wants │ │ │ └── bluetooth.service │ │ │ ├── dbus-org.bluez.service │ │ │ ├── dbus-org.freedesktop.nm-dispatch.service │ │ │ ├── etc-pacman.d-gnupg.mount │ │ │ ├── getty@tty1.service.d │ │ │ └── autologin.conf │ │ │ ├── multi-user.target.wants │ │ │ ├── NetworkManager.service │ │ │ └── arCNiso-prepare.service │ │ │ ├── network-online.target.wants │ │ │ └── NetworkManager-wait-online.service │ │ │ └── sysinit.target.wants │ │ │ └── rngd.service │ ├── vconsole.conf │ └── xdg │ │ └── reflector │ │ └── reflector.conf │ └── usr │ ├── local │ ├── arCNiso │ │ └── prepare.sh │ ├── bin │ │ ├── Installation_guide │ │ ├── README │ │ ├── aaa │ │ ├── arCNiso-expac │ │ ├── arCNiso-xfce4 │ │ ├── arcnadd-cn │ │ ├── arcnguide │ │ ├── arcnlogout │ │ ├── arcnot │ │ ├── efibooteditor-launcher │ │ ├── emacsnw │ │ ├── emacstutor │ │ ├── eviltutor │ │ ├── iwctl │ │ ├── loadkeys │ │ ├── lynx │ │ ├── modifyrootspace │ │ ├── pacman │ │ ├── pacman-reinit │ │ ├── paru │ │ ├── parui │ │ ├── setfont │ │ ├── setupparu │ │ ├── sufirefox │ │ ├── sufirefoxd │ │ ├── tilix-dconf │ │ ├── vi │ │ └── vim │ └── share │ │ └── applications │ │ └── EFIBootEditor.desktop │ └── share │ ├── backgrounds │ └── bg.jpg │ ├── kbd │ └── keymaps │ │ └── i386 │ │ └── qwerty │ │ └── us-Caps2Ctrl.map.gz │ └── xsessions │ └── arCNiso-xfce4.desktop ├── makeiso ├── makeiso-afs.sh ├── package-lock.json ├── packages.x86_64 ├── pacman.conf ├── pacman.d └── archlinuxcn-mirrorlist ├── patchedmkarchiso ├── DIFF.sh ├── PATCH.sh ├── deps.sh ├── genkey.sh └── mkarchiso.patch ├── profiledef.sh ├── publishiso ├── publishiso-1-release.sh ├── publishiso-2-bt.sh ├── publishiso-3-alist.sh ├── publishiso-4-gh.sh ├── publishiso-5-local.sh ├── screenshot.png ├── syslinux ├── archiso_head.cfg ├── archiso_pxe-linux.cfg ├── archiso_pxe.cfg ├── archiso_sys-linux.cfg ├── archiso_sys.cfg ├── archiso_tail.cfg ├── splash.png └── syslinux.cfg └── testiso /.dockerignore: -------------------------------------------------------------------------------- 1 | /TMP 2 | /OUT 3 | /TEST 4 | /aur/pkgs 5 | /aur/cache 6 | /aur/custom/origin-PKGBUILD 7 | /release 8 | /bt 9 | /ignoredinfo 10 | /ignored 11 | /result.log 12 | /result.md 13 | /publishiso-version 14 | /publishiso-filename 15 | /airootfs 16 | #/efiboot 17 | #/syslinux 18 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | on: 4 | # Trigger the workflow every time you push to the `main` branch 5 | # Using a different branch name? Replace `main` with your branch’s name 6 | push: 7 | branches: [ main ] 8 | paths: [ docs/** ] 9 | # Allows you to run this workflow manually from the Actions tab on GitHub. 10 | workflow_dispatch: 11 | 12 | # Allow this job to clone the repo and create a page deployment 13 | permissions: 14 | contents: read 15 | pages: write 16 | id-token: write 17 | 18 | jobs: 19 | build: 20 | runs-on: ubuntu-latest 21 | steps: 22 | - name: Checkout your repository using git 23 | uses: actions/checkout@v4 24 | - name: Install, build, and upload your site 25 | uses: withastro/action@v3 26 | with: 27 | path: docs # The root location of your Astro project inside the repository. (optional) 28 | # node-version: 18 # The specific version of Node that should be used to build your site. Defaults to 18. (optional) 29 | # package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional) 30 | 31 | deploy: 32 | needs: build 33 | runs-on: ubuntu-latest 34 | environment: 35 | name: github-pages 36 | url: ${{ steps.deployment.outputs.page_url }} 37 | steps: 38 | - name: Deploy to GitHub Pages 39 | id: deployment 40 | uses: actions/deploy-pages@v4 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /layer-rootfs/cache 2 | /patchedmkarchiso/* 3 | !/patchedmkarchiso/mkarchiso.patch 4 | !/patchedmkarchiso/PATCH.sh 5 | !/patchedmkarchiso/DIFF.sh 6 | !/patchedmkarchiso/genkey.sh 7 | !/patchedmkarchiso/deps.sh 8 | /TMP 9 | /OUT 10 | /TEST 11 | /aur/pkgs 12 | /aur/cache 13 | /aur/custom/origin-PKGBUILD 14 | /release 15 | /bt 16 | /layer-home/public/.emacs.d/eln-cache 17 | /layer-home/public/.emacs.d/elpa 18 | /layer-home/public/.emacs.d/quelpa 19 | /ignoredinfo 20 | /ignored/* 21 | /result.log 22 | /result.md 23 | /publishiso-version 24 | /publishiso-filename 25 | *~ 26 | *.gitignored 27 | gitignored- 28 | # releng 29 | /airootfs 30 | #/efiboot 31 | #/syslinux 32 | /grub/loopback.cfg 33 | /bootstrap_packages.x86_64 34 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM quay.io/archlinux/archlinux:latest 2 | LABEL maintainer="Celestial.y " \ 3 | description="Environment for building arCNiso." 4 | RUN function aaa { while true;do if "$@";then break;else echo "[aaa] Retrying \"$@\"";sleep 1;fi;done; } && \ 5 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ 6 | echo 'Server = https://mirrors.cernet.edu.cn/archlinux/$repo/os/$arch' >/etc/pacman.d/mirrorlist && \ 7 | aaa pacman-key --init && \ 8 | aaa pacman -Sy --noconfirm archlinux-keyring && \ 9 | aaa pacman -Su --noconfirm && \ 10 | aaa pacman -S --noconfirm --needed archiso git rsync pandoc base-devel fd cmake less sudo && \ 11 | useradd -m archer && \ 12 | echo "archer ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/archer 13 | USER archer:archer 14 | RUN function aaa { while true;do if "$@";then break;else echo "[aaa] Retrying \"$@\"";sleep 1;fi;done; } && \ 15 | mkdir /home/archer/arCNiso && \ 16 | aaa git clone --depth=1 https://aur.archlinux.org/paru-bin.git /tmp/paru-bin && \ 17 | cd /tmp/paru-bin && \ 18 | aaa makepkg -si --noconfirm && \ 19 | cd /tmp && \ 20 | rm -rf /tmp/paru-bin 21 | WORKDIR /home/archer/arCNiso 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Screenshot of arCNiso v2.3.2](https://github.com/clsty/arCNiso/raw/main/docs/public/screenshot.png) 2 | 3 | **To non-Chinese users** 4 | 5 | This is an **unofficial** project which builds customised archiso with GUI(xfce4) for Arch Linux users in China. 6 | 7 | **Currently the project has no plan for other regions**. 8 | However, **feel free to fork** this project and modify to make your own (of course, under GNU GPL 3.0 License). 9 | 10 | # 简介 11 | 12 | [arCNiso™](https://github.com/clsty/arCNiso)(简称 arCN™)是一个自由开源的 archiso 镜像。 13 | 14 | 其保留了官方原版 archiso 镜像的所有功能,并面向简体中文的中国用户,就安装系统、维护系统与临时使用这三种用途进行了加强定制。 15 | 16 | - arCNiso 不仅面向新手,也面向熟手,比如: 17 | - oh-my-zsh 与 p10k 总比裸 grml-zsh 好用; 18 | - 需要 timeshift 等常用工具时,自带总比从 AUR 安装更省事; 19 | - 使用平板电脑时,若没有 USB 无线或有线键盘,可用蓝牙管理器连接蓝牙键盘,或使用屏幕键盘,而不是束手无策; 20 | - xfce4 桌面环境总比裸 tty 看起来美观,也更护眼; 21 | - …… 22 | 23 | > arCNiso 不是什么: 24 | > 25 | > - 它 **不是** Arch Linux 的图形化安装器,如含有 Calamares 的 [alci-iso](https://github.com/arch-linux-calamares-installer/alci-iso)。 26 | > - 因为它 **并不** 额外提供任何形如“黑箱”(指将正常的安装流程包装隐藏起来)的系统安装途径(官方 archiso 所提供的 archinstall 除外)。 27 | > - 它也 **不是** Arch Linux 的衍生发行版,如 EndeavourOS、CachyOS 等。 28 | > - 因为它 **并不** 提供这类发行版所独有的软件仓库。 29 | > - 同原版 archiso 一样,它也 **不** 支持离线安装 Arch Linux。 30 | > 31 | > 总之,arCNiso 本质上仍是 archiso,只是体积更大(例如 v1.2.1 的镜像文件大小为 1.56 GB,差不多比同时期的官方 archiso 的 0.81 GB 大一倍不到)且更好用。 32 | 33 | arCNiso 历经较为充分的打磨,并且仍在[维护更新](https://github.com/clsty/arCNiso/blob/main/docs/update.md)中(目前暂定大约每月更新一次),可放心使用,真心希望你能喜欢。 34 | 35 | - 欢迎给[本项目](https://github.com/clsty/arCNiso)点 star 来表达你的支持或认可 `>v0` 。 36 | - 有任何看法或建议,欢迎在 [Issues](https://github.com/clsty/arCNiso/issues) 中反馈,或在 [Discussions](https://github.com/clsty/arCNiso/discussions) 中吐槽,也可直接[提交 PR](https://arcn.clsty.link/dev/howtopr/)。 37 | 38 | 祝你使用愉快! 39 | 40 | > - **下载镜像文件:见 [arCNiso 指南](https://arcn.clsty.link/using/obtain/)。** 41 | > - 使用指南:见 [arCNiso 指南](https://arcn.clsty.link/using/usage/)。 42 | 43 | # 商标声明 44 | 45 | - arCNiso™ 与 arCN™ 是本项目的未注册商标,本项目对此保留所有权利。 46 | - Arch Linux™ 是 [Arch Linux](https://archlinux.org) 的未注册商标。 47 | - 本项目 **不是** Arch Linux™ 官方发布的,与 Arch Linux™ 官方亦 **无** 任何关联。 48 | - Linux® 是 [Linux Foundation](https://www.linuxfoundation.org) 的注册商标。 49 | 50 | # 许可 51 | 52 | - 本项目以 GNU GPL 3.0 License 发布。 53 | - 项目文件中所包含的其他软件项目的部分,均维持其原有 License。 54 | 55 | --- 56 | 57 | # Star 曲线 58 | [![Star 曲线](https://starchart.cc/clsty/arCNiso.svg?variant=adaptive)](https://starchart.cc/clsty/arCNiso) 59 | -------------------------------------------------------------------------------- /aur/0-PKGDEST.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso aur-builder: auto build aur packages to local repo. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | # 若需要手动 makepkg ,可以 source 此脚本以确保所打的包输出到正确位置。 7 | 8 | cd $(dirname $0) && base=$(pwd) 9 | export PKGDEST="$base/pkgs" 10 | -------------------------------------------------------------------------------- /aur/1-PKGBUILD.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso aur-builder: auto build aur packages to local repo. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 7 | while getopts "hf" opt;do 8 | case $opt in 9 | "h") help=h;; 10 | "f") force=f;; 11 | "?") help=h;; 12 | esac 13 | done 14 | if [[ "$help" = h ]]; then 15 | echo " 16 | 这是用于对 ../../packages.x86_64 中的 AUR 包自动下载 PKGBUILD 的脚本。 17 | -f 不询问,对所有 AUR 包下载 PKGBUILD。 18 | -h 显示此帮助。 19 | ";exit 0; fi 20 | cd $(dirname $0) && base=$(pwd) 21 | 22 | pkgbeg=$(awk '/# ---- BEGINof AUR ---- #/{print NR}' ../packages.x86_64) 23 | pkgbeg=$(($pkgbeg+1)) 24 | pkgend=$(awk '/# ---- ENDof AUR ---- #/{print NR}' ../packages.x86_64) 25 | pkgend=$(($pkgend-1)) 26 | 27 | mkdir -p $base/cache; mkdir -p $base/pkgs; cd $base/cache 28 | for i in $(sed -n "$pkgbeg , ${pkgend}p" ../../packages.x86_64) ; 29 | do 30 | get=true 31 | echo "当前目标:$i" 32 | if [[ "${force}" != f ]]; then read -r -p "是否从 AUR 下载 PKGBUILD?[a(余下全是)/y(是)/N(否)]" pp;case $pp in 33 | [yY]) echo 好的,开始 prepare... ;; 34 | [aA]) force=f ;; 35 | *) get=false ;;esac; 36 | fi 37 | if $get;then aaa paru -G --noredownload $i;fi 38 | done 39 | -------------------------------------------------------------------------------- /aur/2-prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso aur-builder: auto build aur packages to local repo. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 7 | while getopts "hf" opt;do 8 | case $opt in 9 | "h") help=h;; 10 | "f") force=f;; 11 | "?") help=h;; 12 | esac 13 | done 14 | if [[ "$help" = h ]]; then 15 | echo " 16 | 这是用于对 cache 下的各目录自动进行 prepare 的脚本。 17 | 此脚本每次进入一个目录,会显示其内容,并询问是否需要 prepare。 18 | -f 不询问,对所有目录进行 prepare。 19 | -h 显示此帮助。 20 | ";exit 0; fi 21 | cd $(dirname $0) && base=$(pwd) 22 | cd $base/cache 23 | t=(*) 24 | for i in "${t[@]}";do 25 | cd "$base/cache/$i" 26 | echo "========进入 $i"; ls; pp=n 27 | if [[ "${force}" != f ]]; then read -r -p "以上是 $i 目录的情况。是否 prepare?[a(余下全是)/y(是)/N(否)]" pp;case $pp in 28 | [yY]) echo 好的,开始 prepare... ;; 29 | [aA]) force=f ;; 30 | *) continue ;;esac;fi 31 | aaa makepkg -o --nodeps 32 | done 33 | -------------------------------------------------------------------------------- /aur/3-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso aur-builder: auto build aur packages to local repo. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 7 | while getopts "hf" opt;do 8 | case $opt in 9 | "h") help=h;; 10 | "f") force=f;; 11 | "?") help=h;; 12 | esac 13 | done 14 | if [[ "$help" = h ]]; then 15 | echo " 16 | 这是用于对 cache 下的各目录自动进行 build 的脚本。 17 | 此脚本每次进入一个目录,会显示 PKGDEST 的内容,并询问是否需要 build。 18 | -f 不询问,对所有目录进行 build。 19 | -h 显示此帮助。 20 | ";exit 0; fi 21 | cd $(dirname $0) && base=$(pwd) 22 | cd $base/cache 23 | 24 | export PKGDEST="$base/pkgs" 25 | t=(*) 26 | for i in "${t[@]}";do 27 | cd "$base/cache/$i" 28 | echo "========进入 $i"; ls "$PKGDEST"; pp=n 29 | if [[ "${force}" != f ]]; then read -r -p "以上是 PKGDEST 目录的情况。是否 build $i ?[a(余下全是)/y(是)/N(否)]" pp;case $pp in 30 | [yY]) echo 好的,开始 build... ;; 31 | [aA]) force=f ;; 32 | *) continue ;;esac;fi 33 | aaa makepkg -sdef 34 | done 35 | -------------------------------------------------------------------------------- /aur/4-repoadd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso aur-builder: auto build aur packages to local repo. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | cd $(dirname $0) 7 | repo-add pkgs/aur.db.tar.gz pkgs/*.pkg.tar.zst 8 | -------------------------------------------------------------------------------- /aur/9-deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 此脚本的作用是解决某些 PKGBUILD 少给 make 依赖(可能是因为它们是运行所要求的依赖,但实际上 make 也需要?)导致编译不过的问题。 3 | 4 | # btrfs-assistant: qt5-tools btrfs-progs 5 | # efibooteditor: qt6-tools efivar 6 | # zsh-theme-powerlevel10k-git: wget 7 | 8 | sudo pacman -S --noconfirm --needed qt5-tools qt6-tools btrfs-progs efivar wget patchelf 9 | -------------------------------------------------------------------------------- /aur/full-update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso aur-builder: auto build aur packages to local repo. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | while getopts "hf" opt; do 7 | case $opt in 8 | "h") help=h ;; 9 | "f") force=f ;; 10 | "?") help=h ;; 11 | esac 12 | done 13 | if [[ "$help" = h ]]; then 14 | echo " 15 | 这是用于对 cache 下的各目录自动进行下载 PKGBUILD、prepare 和 build 的脚本。 16 | -f 在 prepare 和 build 时不依次询问是否进行。 17 | -h 显示此帮助。 18 | " 19 | exit 0 20 | fi 21 | cd $(dirname $0) && base=$(pwd) 22 | cd $base 23 | 24 | echo "Checking if every needed command is available..." 25 | checkexist() { 26 | if command -v $1 >/dev/null 2>&1; then 27 | echo "Command $1 found." 28 | else 29 | echo "Error: Command $1 not found, aborting..." 30 | exit 1 31 | fi 32 | } 33 | 34 | for i in cmake git awk paru makepkg getopts repo-add; do 35 | checkexist $i 36 | done 37 | echo "Great, every needed command is available." 38 | 39 | bash 9-deps.sh 40 | if [[ "${force}" != f ]]; then 41 | bash 1-PKGBUILD.sh 42 | bash 2-prepare.sh 43 | bash 3-build.sh 44 | bash 4-repoadd.sh 45 | else 46 | bash 1-PKGBUILD.sh -f 47 | bash 2-prepare.sh -f 48 | bash 3-build.sh -f 49 | bash 4-repoadd.sh 50 | fi 51 | -------------------------------------------------------------------------------- /dockerin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ -z "$1" ];then 3 | docker exec -it arCNiso /bin/bash 4 | else 5 | docker exec -it arCNiso "$@" 6 | fi 7 | -------------------------------------------------------------------------------- /dockerup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd $(dirname $0) 3 | set -e 4 | #docker pull quay.io/archlinux/archlinux 5 | docker build -t clsty/arcniso . 6 | set +e 7 | docker run -dt --restart=unless-stopped --privileged -v .:/home/archer/arCNiso --name arCNiso clsty/arcniso 8 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | # generated types 4 | .astro/ 5 | 6 | # dependencies 7 | node_modules/ 8 | 9 | # logs 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 开发 4 | 5 | 当前,此文档系统基于 Starlight,而它又基于前端框架 Astro。 6 | 7 | ## 本地运行 8 | 9 | | 命令 | 作用 | 10 | | :------------------------ | :----------------------------------------------- | 11 | | `npm install` | Installs dependencies | 12 | | `npm run dev` | Starts local dev server at `localhost:4321` | 13 | | `npm run build` | Build your production site to `./dist/` | 14 | | `npm run preview` | Preview your build locally, before deploying | 15 | | `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | 16 | | `npm run astro -- --help` | Get help using the Astro CLI | 17 | 18 | > [!NOTE] 19 | > 若报错 `vips/vips8: no such file or directory`,可以手动安装 `libvips`,比如对于 Arch Linux:`sudo pacman -S libvips` 20 | 21 | > [!IMPORTANT] 22 | > 在本地运行时,部分相对链接似乎不能被很好地处理,而它们在 GitHub Pages 上运行正常。因此,在本地出现 404 时,不可轻易地“修复”相对链接,否则可能反而导致此相对链接在 GitHub Pages 上 404。总之,一切以在线站点为准。 23 | 24 | ## 编辑方法 25 | - 编辑页面:编辑 `src/content/docs/` 里的文件([参考](https://starlight.astro.build/guides/authoring-content))。 26 | 27 | > HTML 文件可放在 `src/pages`。 28 | 29 | - 编辑侧边栏:可编辑 `astro.config.mjs` 30 | 31 | - 编辑主题:编辑 `src/styles/custom.css`([参考](https://starlight.astro.build/guides/css-and-tailwind/))。 32 | 33 | > [!IMPORTANT] 34 | > 在生成链接路径时,markdown 文件名中的大写字母会被统一为小写字母,且 `.` 会被去除,此时若仍使用原文件名作为链接路径则可能导致 404。 35 | 36 | ## 更多参考 37 | - 前端框架:[Astro documentation](https://docs.astro.build) 38 | - 基于 Astro 的文档生成器:[Starlight’s docs](https://starlight.astro.build/) 39 | - Starlight 自带的代码块编辑器:[Expressive-code](https://expressive-code.com/key-features/text-markers/) 40 | -------------------------------------------------------------------------------- /docs/astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config'; 2 | import starlight from '@astrojs/starlight'; 3 | 4 | // https://starlight.astro.build/reference/configuration 5 | export default defineConfig({ 6 | site: 'https://arcn.clsty.link', 7 | base: '/', 8 | // build: { 9 | // format: 'directory', 10 | // }, 11 | integrations: [ 12 | starlight({ 13 | title: 'arCNiso 指南', 14 | social: { 15 | github: 'https://github.com/clsty/arCNiso', 16 | }, 17 | editLink: { 18 | baseUrl: 'https://github.com/clsty/arCNiso/tree/main/docs', 19 | }, 20 | customCss: ['./src/styles/custom.css'], 21 | favicon: '/favicon.ico', 22 | defaultLocale: 'root', 23 | tableOfContents: { minHeadingLevel: 1, maxHeadingLevel: 2, }, 24 | lastUpdated: true, 25 | locales: { 26 | 'root': { 27 | label: '简体中文', 28 | lang: 'zh-CN', 29 | }, 30 | // English docs in `src/content/docs/en/` 31 | en: { 32 | label: 'English', 33 | lang: 'en', 34 | }, 35 | }, 36 | sidebar: [ 37 | { 38 | label: '关于', 39 | collapsed: false, 40 | autogenerate: { directory: 'about' }, 41 | }, 42 | { 43 | label: '获取与使用', 44 | collapsed: false, 45 | autogenerate: { directory: 'using' }, 46 | }, 47 | { 48 | label: '设计与理念', 49 | collapsed: false, 50 | autogenerate: { directory: 'design' }, 51 | }, 52 | { 53 | label: '构建与开发', 54 | collapsed: true, 55 | badge: { text: 'Dev' }, 56 | autogenerate: { directory: 'dev' }, 57 | }, 58 | ], 59 | }), 60 | ], 61 | }); 62 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "arcniso-docs", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "start": "astro dev", 8 | "build": "astro check && astro build", 9 | "preview": "astro preview", 10 | "astro": "astro" 11 | }, 12 | "dependencies": { 13 | "@astrojs/starlight": "^0.17.3", 14 | "astro": "^4.2.1", 15 | "sharp": "^0.32.5", 16 | "@astrojs/check": "^0.4.1", 17 | "typescript": "^5.3.3" 18 | } 19 | } -------------------------------------------------------------------------------- /docs/public/BingSiteAuth.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | DFE527B5DF5134C984C72AD7CD9CAFE3 4 | -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Sitemap: https://arcn.clsty.link/sitemap-index.xml 3 | -------------------------------------------------------------------------------- /docs/public/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/docs/public/screenshot.png -------------------------------------------------------------------------------- /docs/src/assets/404.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/docs/src/assets/404.webp -------------------------------------------------------------------------------- /docs/src/content/config.ts: -------------------------------------------------------------------------------- 1 | import { defineCollection } from 'astro:content'; 2 | import { docsSchema } from '@astrojs/starlight/schema'; 3 | 4 | export const collections = { 5 | docs: defineCollection({ schema: docsSchema() }), 6 | }; 7 | -------------------------------------------------------------------------------- /docs/src/content/docs/404.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: '404' 3 | editUrl: false 4 | lastUpdated: false 5 | hero: 6 | title: '404' 7 | image: 8 | file: ../../assets/404.webp 9 | tagline: 404 - 页面未找到。请检查网址,或使用侧边栏、搜索栏导航。 10 | --- 11 | -------------------------------------------------------------------------------- /docs/src/content/docs/about/clarify.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 声明 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 声明 6 | order: 30 7 | --- 8 | 9 | # 商标 10 | 11 | - arCNiso™ 与 arCN™ 是本项目的未注册商标,本项目对此保留所有权利。 12 | - Arch Linux™ 是 [Arch Linux](https://archlinux.org) 的未注册商标。 13 | - 本项目 **不是** Arch Linux™ 官方发布的,与 Arch Linux™ 官方亦 **无** 任何关联。 14 | - Linux® 是 [Linux Foundation](https://www.linuxfoundation.org) 的注册商标。 15 | 16 | :::note[更名历史] 17 | 此项目原名为 archisoCN,但是注意到 [ALG 的前车之鉴](https://distrowiki.miraheze.org/wiki/Arch_Linux_GUI),以及 [Arch Linux 那模棱两可的 policy](https://wiki.archlinux.org/title/DeveloperWiki:TrademarkPolicy),还是改名了,并加上 README 里面的那么一大堆声明——明明只是自由开源项目,商标法真是有够烦人的。 18 | ::: 19 | 20 | # 许可 21 | 22 | - 本项目以 GNU GPL 3.0 License 发布。 23 | - 项目文件中所包含的其他软件项目的部分,均维持其原有 License。 24 | 25 | 26 | # 致谢 27 | 28 | 在此感谢本项目所用到或参考到的各项目的作者、开发者与维护者。 29 | 30 | 以下列举部分项目。 31 | 32 | > **声明:除非明确说明关联,否则以下项目的官方默认均与本项目无关。** 33 | 34 | - [archiso](https://github.com/archlinux/archiso):本项目的直接基础,来自 Arch Linux 官方。 35 | - [Sweet Themes](https://github.com/EliverLara/Sweet):本项目图形环境中 xfce4 等的主题。 36 | - [Papirus icon](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme):本项目所使用的图标主题。 37 | - [Tilix](https://github.com/gnunn1/tilix):本项目所使用的终端模拟器。 38 | - [Ventoy](https://www.ventoy.net):本项目所含工具,以及推荐使用的运行方案。 39 | - [Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh):本项目采用的 zsh 配置框架。 40 | - [Powerlevel10k](https://github.com/romkatv/powerlevel10k):本项目采用的 zsh 主题。 41 | - [neovim](https://github.com/neovim/neovim):本项目所采用的编辑器之一。 42 | - [Everforest](https://github.com/sainnhe/everforest):本项目采用的 neovim 主题。 43 | - [霞鹜文楷](https://github.com/lxgw/WenKai):本项目所采用的字体。 44 | - [GNU Emacs](https://www.gnu.org/software/emacs):本项目所采用的编辑器之一。 45 | - [Emacs Evil](https://github.com/emacs-evil):本项目所使用的 Emacs 插件。 46 | - [evil-tutor-sc](https://github.com/clsty/evil-tutor-sc):本项目所使用的 Emacs 插件(作者也是 clsty `>v0` )。 47 | - [otsaloma's markdown-css](https://github.com/otsaloma/markdown-css):本项目的部分文档转为 html 所采用的 pandoc css 文件 `github.css` 。 48 | - [high-rise buildings during nighttime](https://unsplash.com/photos/lmvGn9rTGvY):本项目所使用的壁纸。 49 | - [archiso-sb-shim](https://github.com/solsticedhiver/archiso-sb-shim):本项目实现安全启动所采用的方案来源。 50 | - [archlinuxcn](https://www.archlinuxcn.org):本项目引用的 ArchWiki 中文版页面的发布站点以及 archlinuxcn 软件源的提供者。 51 | -------------------------------------------------------------------------------- /docs/src/content/docs/about/readme.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 简介 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 简介 6 | order: 10 7 | --- 8 | 9 | ![Screenshot of arCNiso v2.3.2](/screenshot.png) 10 | 11 | arCNiso™(简称 arCN™)是一个自由开源的 archiso 镜像。 12 | 13 | 其保留了官方原版 archiso 镜像的所有功能,并面向简体中文的中国用户,就安装系统、维护系统与临时使用这三种用途进行了加强定制。 14 | 15 | - arCNiso 不仅面向新手,也面向熟手,比如: 16 | - oh-my-zsh 与 p10k 总比裸 grml-zsh 好用; 17 | - 需要 timeshift 等常用工具时,自带总比从 AUR 安装更省事; 18 | - 使用平板电脑时,若没有 USB 无线或有线键盘,可用蓝牙管理器连接蓝牙键盘,或使用屏幕键盘,而不是束手无策; 19 | - …… 20 | 21 | > arCNiso 不是什么: 22 | > 23 | > - 它 **不是** Arch Linux 的图形化安装器,如含有 Calamares 的 [alci-iso](https://github.com/arch-linux-calamares-installer/alci-iso)。 24 | > - 因为它 **并不** 额外提供任何形如“黑箱”(指将正常的安装流程包装隐藏起来)的系统安装途径(官方 archiso 所提供的 archinstall 除外)。 25 | > - 它也 **不是** Arch Linux 的衍生发行版,如 EndeavourOS、CachyOS 等。 26 | > - 因为它 **并不** 提供这类发行版所独有的软件仓库。 27 | > - 同原版 archiso 一样,它也 **不** 支持离线安装 Arch Linux。 28 | > 29 | > 总之,arCNiso 本质上仍是 archiso,只是体积更大(例如 v1.2.1 的镜像文件大小为 1.56 GB,差不多比同时期的官方 archiso 的 0.81 GB 大一倍不到)且更好用。 30 | 31 | arCNiso 历经较为充分的打磨,并且仍在维护更新中(目前暂定大约每月更新一次),可放心使用,真心希望你能喜欢。 32 | 33 | - 欢迎给[本项目](https://github.com/clsty/arCNiso)点 star 来表达你的支持或认可 `>v0` 。 34 | - 有任何看法或建议,欢迎在 [Issues](https://github.com/clsty/arCNiso/issues) 中反馈,或在 [Discussions](https://github.com/clsty/arCNiso/discussions) 中吐槽,也可直接[提交 PR](/dev/howtopr)。 35 | 36 | 祝你使用愉快! 37 | -------------------------------------------------------------------------------- /docs/src/content/docs/about/reason.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 初心 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 初心 6 | order: 20 7 | --- 8 | 9 | 要说明为什么有 arCNiso,就要从官方 archiso 说起。 10 | 11 | 12 | # 猫猫、李华与官方 archiso 13 | 14 | (以下纯属虚构) 15 | 16 | 那是一个月黑风高的夜晚…… 17 | 18 | 李华在折腾 kde 的时候,顺便尝试了朋友分享的一个猫猫的 sddm 主题。 19 | 耐何水平不足,配置时一个用力过猛,竟把系统玩坏掉了。 20 | 21 | 望着再起不能的 Arch Linux,李华只好从急救药箱里翻出 U 盘, 22 | 23 | “archiso,启动!” 24 | 25 | 黑漆漆的屏幕上滚满着阴白的字符,心生一丝恐惧的李华仍然只能硬着头皮,在网上搜索着命令,一个个地敲下去。 26 | 一步,再一步,setfont,lsblk,mount,arch-chroot,dmesg,journalctl…… 27 | 28 | 在点阵字体与焦虑心境的双重折磨下,李华终于把问题定位到了那个主题文件夹, 29 | 里面赫然躺着一个文件:README.md。 30 | 激动万分的李华当即用 nano 打开看看——屏幕上却出现了一堆白方块。 31 | 这,分明是 archiso 的 tty 所不能显示的中文!李华脑海中浮现出朋友嘲讽的脸:“谁让你不先看说明来着喵~” 32 | 33 | 李华终于无法再继续忍受这一切,像是要毁灭一切地敲下 `rm -rf . /*` , 34 | “这破主题,不用也罢!” 35 | 36 | 啪一声回车,电光石火之间,李华忽然意识到了好像有什么不对。 37 | ```bash 38 | /bin/ls: no such file or directory 39 | ``` 40 | …… 41 | 42 | “昨天回去试了我做的主题了喵~?感觉怎么样喵喵~?” 43 | 44 | “别提了,花了几个小时在 archiso 里用 lynx 查资料,最后手抖了一下,又重装了一次 Arch。” 45 | 46 | “谁让你不先看——诶诶有话好好说别打人喵——” 47 | …… 48 | 49 | 李华的朋友是喵星人,它的星际翻译器被李华打坏了,在维修之前暂时只能理解英文。 50 | 51 | 请用英语代李华向朋友写一封道歉信,不少于 300 词。(25 分) 52 | 53 | (完) 54 | 55 | 56 | # 官方 archiso 57 | 58 | archiso 是 Arch Linux 提供的 Live CD。 59 | 60 | > 大部分的 Linux 发行版都会提供一个或若干个 Live CD。 61 | > 其中包含的 Live 环境,是一个临时性的系统,具有一些特殊的重要作用,但一般不适合作为日常系统来使用。 62 | > 63 | > 一般地,Live CD 的主要功能有 64 | > 65 | > - 安装对应的发行版(此处即 Arch Linux)。 66 | > - 维护系统(对象可以是别的发行版,甚至是别的系统;但最好是对应的发行版)。 67 | > - 临时性地使用,例如应急使用等。 68 | 69 | 作为 Live CD,archiso 是比较精巧的,这符合 Arch 的哲学,并且也提供了安装与维护系统的基本功能。 70 | 71 | 但是,它在某些方面,并不是很方便使用。包括但不限于: 72 | 73 | - 仅提供 tty 界面,色彩简陋。 74 | - 不方便复制粘贴。 75 | - 不支持中文显示。 76 | - 不支持安全启动。 77 | - 不支持中文输入法。 78 | - 仅能使用简陋的终端字体(默认字体还超小)。 79 | - 在联网时,由于不具备图形界面,它很可能无法完成网页认证。 80 | - 它默认配置的 reflector 经常会把对中国用户网络不友好的镜像源放在前面。 81 | - 它不含 btrfs-assistant、timeshift、ventoy 等工具,不方便维护系统。 82 | - …… 83 | 84 | > 以上这些问题的一部分,是存在解决或变通方法的。 85 | > 86 | > 例如,觉得 tty 界面不够美观的,可以在别的设备上用 SSH 远程连接进行操作; 87 | > 可以直接关掉 reflector 并自己手动换源; 88 | > 联网可以用手机 USB 共享网络的方法进行,等等。 89 | > 90 | > 但多出这么亿些步骤,确实不够方便,在紧急情况下也很让人烦躁。 91 | 92 | 于是,不仅很多新手觉得 archiso 难用从而被劝退(还因此留下了“Arch Linux 难安装”的江湖传说); 93 | 就连一些熟手,在需要 archiso 的时候,也同样觉得不好用,只是用到的频率又少,就懒得自己定制一个了。 94 | 95 | 96 | # arCNiso 97 | 98 | 以上,就是 arCNiso 出现的原因了。 99 | 100 | 总之,相比 archiso,用 arCNiso 来安装、维护或临时使用 Arch Linux 时, 101 | 你的心情能够更加愉悦、效率能够超级加倍,也使得你在把 Arch Linux 安利出去时能够更有底气。 102 | -------------------------------------------------------------------------------- /docs/src/content/docs/design/howhard.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 难与不难 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 难度设计 6 | order: 03 7 | --- 8 | 9 | 难或不难,这是一个问题。 10 | 11 | # arCNiso 希望为你保留有意义的“难度” 12 | 13 | arCNiso 本质上仍然是 archiso。 14 | 15 | 以安装 Arch Linux 为例,它几乎没有降低“最终完成”的那个时刻的难度。 16 | 17 | - 你仍需经历各个步骤(初步检查、联网更新、设置文件系统、pacstrap、chroot 等),且其中的一部分即使在 arCNiso 中也是必须用终端(模拟器)完成的。 18 | - 你所遵照的指南与教程,大概率也会让你全程使用终端;反而是仅当你对原理比较理解时,你才能自如地利用上 arCNiso 所提供的各种 GUI 工具。 19 | 20 | 21 | # arCNiso 希望为你降低无意义的“难度” 22 | 23 | 24 | ## 舒适 25 | 26 | 相比原版 archiso,使用 arCNiso 是舒适的,部分对比见下表: 27 | 28 | | |archiso|arCNiso| 29 | |-|-|-| 30 | |基本界面|tty|xfce4| 31 | |字体显示|终端点阵|图形环境| 32 | |语言环境|仅英文|默认中文界面、中文输入法| 33 | |终端|tty|Tilix 及 pty| 34 | |shell|grml-zsh|oh-my-zsh、p10k| 35 | |浏览器|lynx|Firefox 及其插件| 36 | |WiFi|iwctl|nmtui| 37 | |指针输入|无|鼠标、触摸屏、触控板| 38 | |安全启动|无|支持| 39 | 40 | ## 引导 41 | 42 | 相比原版 archiso,使用 arCNiso 更容易上手。 43 | 44 | 核心部分是在图形环境启动时,显示中文欢迎界面进行简洁而又充分的引导。其中最重要的是: 45 | 46 | - 命令 README 会展示自述文档。 47 | - 命令 `arcnguide` 会打开中文版的官方安装指南,以及[对照式安装帮助](https://github.com/clsty/arCNiso/blob/main/docs/Installation_hint.md);后者又将引导至[入门与进阶帮助](https://github.com/clsty/arCNiso/blob/main/docs/learn.md)。 48 | 49 | 这有助于新手快速找到探索方向,并进入合理的学习路线。 50 | 51 | 此外,还有一些细节上的设计: 52 | 53 | - 命令 eviltutor 可供学习 Vim 式编辑器的基本操作; 54 | - 命令 paru 与 parui 会自动先更新 pacman 数据库并安装 base-devel; 55 | - 命令 modifyrootspace 可修改根分区容量大小; 56 | - …… 57 | 58 | 59 | # 难乎哉?不难也 60 | 61 | 综上: 62 | 63 | 如果你只是想单纯地试用 arCNiso: 64 | 65 | - 几乎没有什么难度。 66 | 67 | 如果你的目标是安装(或维护)Arch Linux: 68 | 69 | - arCNiso 不会降低最终难度,但会通过一系列设计,帮你优化学习路线,从而降低上手难度。 70 | - arCNiso 提升了使用的舒适性,从而降低了心理负担。 71 | - 当你最终完成 Arch Linux 的安装(或熟练进行维护)时,你的收获实际上与使用官方 archiso 是一致的。 72 | 73 | -------------------------------------------------------------------------------- /docs/src/content/docs/design/idea.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 设计说明 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 设计说明 6 | order: 02 7 | --- 8 | 9 | 以下给出部分设计的背景原因与考量。 10 | 11 | # pacman 防呆 12 | 为 `pacman` 添加防呆设计,以检查 `pacman-init.service` 的执行情况。 13 | - 原因:已发现在添加 archlinuxcn 社区仓库源密钥时,pacman-init.service 中的 `Exec=pacman-key --populate` 总是会在“Locally signing trusted keys in keyring...”卡住,并持续近 7 分钟(注:目前已为 arCNiso 启用 rngd,在物理机中可缩短至 1 分钟),且此时若使用 `pacman -Sy ` 安装任意包,都会导致 `pacman-init.service` 失败,表现为使用 pacman 时会出现各种 PGP 密钥问题。添加此防呆设计之后,只有当 `pacman-init.service` 执行完毕,才允许运行 pacman。详见 [#16](https://github.com/clsty/arCNiso/issues/16)。 14 | - 当前,arCNiso 已经不再内置 archlinuxcn 社区仓库源密钥,但此防呆设计仍保留了下来。 15 | 16 | # 弃用 Firefox 的动态主题 17 | - 减少卡死几率。 18 | 19 | # squashfs 使用 zstd 压缩算法 20 | 对 squashfs 使用 zstd 而非 xz 的压缩算法参数。 21 | - 涉及到的文件: `/etc/mkinitcpio.conf.d/archiso.conf` 和 `profiledef.sh` 。 22 | - 以较小的尺寸增幅为代价,zstd 相较于 xz 生成镜像,无论是编译速度还是启动速度、运行速度都快很多。 23 | - 以相应的 commit 之前(以下称为 A)与之后(以下称为 B)的两个版本的对比为例(测试环境相同,均为 VirtualBox 虚拟机,从宿主机具有的超低压 CPU 分配了两个线程,分配 3GB 内存): 24 | - A:采用 releng 默认的 `xz -Xbcj x86 -Xdict-size 1M` 作为 squashfs 参数。 25 | - 体积:1572MB 26 | - 秒表计时的启动测试: 27 | - 启动:00:00 28 | - GRUB 出现:00:06 29 | - tty 自动登录:01:12 30 | - 黑屏开始:01:28 31 | - 黑屏结束:02:00 32 | - Konsole 弹出,zsh 提示符可用:02:36 33 | - B:改用 `zstd -Xcompression-level 15` 作为 squashfs 参数。 34 | - 体积:1753MB 35 | - 秒表计时的启动测试: 36 | - 启动:00:00 37 | - GRUB 出现:00:07 38 | - tty 自动登录:00:47 39 | - 黑屏开始:00:53 40 | - 黑屏结束:01:02 41 | - Konsole 弹出,zsh 提示符可用:01:15 42 | 43 | # 弃用 xfce4 自动挂载插件 44 | - 自动挂载不是官方 archiso 的默认行为,从而使情况出乎用户预料之外。 45 | 46 | # xfce4 47 | 采用 xfce4 作为图形环境,而不是某个 DE/WM。 48 | - 详见 [#23](https://github.com/clsty/arCNiso/discussions/23)。 49 | 50 | # linux 主线内核 51 | 采用 linux 主线内核,而不是 linux-zen。 52 | - 综合来看,使用 linux-zen 比 linux 主线内核新增的占用空间太大,比如 virtual-box-guest-utils 依赖 linux。 53 | - 如果强行用 linux-zen 那么就要改用 virtual-box-guest-dkms-vmsvga,而这就需要 dkms 和 linux-zen-headers 了。 54 | 55 | # `wpa_supplicant` 56 | 用 `wpa_supplicant` 而不是 `iwd` 作为 NetworkManager 后端。 57 | - 关键原因: 58 | - iwd 据说不支持少数网络认证,而本镜像的特色功能之一就是提供 Firefox 浏览器以便连接到校园网等需要认证的网络。 59 | - 详细说明: 60 | - 官方 archiso 自带的 wifi 联网工具是 iwd(对应的命令行交互入口是 iwctl)。 61 | - 本镜像采用的则是 NetworkManager,这是一套集大成的网络连接解决方案(包括有线与无线网),默认采用 `wpa_supplicant` 作为无线后端,也可使用 iwd 作为后端;但两者冲突,只能二选一。 62 | - `wpa_supplicant` 较老,iwd 更新一些,但是 iwd 据说存在一些 802.1X 认证的问题,见 [nixpkgs#105560](https://github.com/NixOS/nixpkgs/issues/105560)。 63 | 64 | # 移除 vim 并将其指向 nvim(neovim) 65 | - nvim 位于 vi 系软件中的最前沿,且已足够成熟。 66 | - 之所以不使用 Emacs evil 替代之,是因为目前尚无法使得 emacs 具有 vim 那样的启动速度。 67 | - 之所以也保留 Emacs,一方面是为了采用 evil-tutor-sc 这个插件提供的 Vi 系键位的学习路径,另一方面则是对 Emacs 进行一定程度上的宣传。 68 | 69 | # sufirefoxd 70 | - 在 xfce4 启动时,运行一个 sufirefoxd,以支持从 root 用户命令 archer 用户的 Firefox 打开网页。 71 | - 之所以不使用 `nohup su archer -c "firefox foo.foo" &` ,是因为实验发现这种做法有重大缺陷: 72 | - 这样打开的 Firefox 是不支持输入法的。 73 | - 若已经有同一个 profile 的 Firefox 运行,则这样做会报错“Firefox 已经运行但无响应”。 74 | -------------------------------------------------------------------------------- /docs/src/content/docs/dev/BUILDinDocker.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 构建说明(docker 版) 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 于 Docker 中构建 6 | order: 02 7 | --- 8 | 9 | 这里说明如何从一个 Arch Linux 的 Docker 容器内构建本项目文件。 10 | 11 | # 环境要求 12 | 13 | - 一个可联网的、AMD64 架构的操作系统。 14 | - 已经加入了 docker 组的普通用户。 15 | - 已经安装 Docker。 16 | - 或者 podman,但以下仅以 docker 为例。 17 | - 启用了 Docker 相关服务,比如 `systemctl enable docker --now`。 18 | - 磁盘空间:视具体情况而定,某次实测约占用宿主机共计不到 8GiB 的空间。 19 | 20 | # 步骤说明 21 | 22 | 克隆本仓库,为此在 bash 或 zsh 中运行: 23 | ```bash 24 | # arCNiso 项目目录,路径可据实际情况设置 25 | # 若于 docker 容器内构建,请确保它与之前 docker run 的 -v 参数映射到的容器目录路径一致,默认不需要改动 26 | ARCN_DIR=$HOME/arCNiso 27 | git clone --filter=blob:none https://github.com/clsty/arCNiso $ARCN_DIR && cd $ARCN_DIR 28 | ``` 29 | 其中 `--filter=blob:none` 是为了仅下载所需的对象,而忽略多余的 blob,以便加快速度。 30 | 31 | 如果注重稳定性,建议切换到最新的 tag: 32 | ```bash 33 | git checkout $(git describe --tags `git rev-list --tags --max-count=1`) 34 | ``` 35 | 36 | 再运行项目目录下的 `./dockerup.sh` 。它会自动完成: 37 | - 据 `./Dockerfile` 构建名为 `clsty/arcniso` 的镜像, 38 | - 注:在 `Dockerfile` 中可以看到,此构建基于 Arch Linux 官方的 [archlinux/archlinux-docker](https://gitlab.archlinux.org/archlinux/archlinux-docker) 的 base 版本镜像,其提供了多个镜像地址,可根据网络情况自行修改为较快的地址。 39 | - 运行一个名为 `arCNiso` 的容器,并将项目目录映射到容器内部的 `/home/archer/arCNiso` (这也是镜像默认的工作目录)。 40 | 41 | :::caution[提示] 42 | 重复使用 `docker run` 可能会因容器重名而报错,此时可先将重名容器停止并删除。 43 | 参见文档末尾附录。 44 | 45 | 此外,命令 `docker images/rmi` 可以列出/删除镜像。 46 | ::: 47 | 48 | 然后,请运行 `./dockerin.sh` 来进入容器内部,余下步骤**请接着在这个容器内部**完成(注:你需要先运行一下 `sudo chown -R archer:archer .` 来确保容器内的属主正确,否则后面可能报错 `Permission denied`。),参见[构建说明](/dev/build)(一直到“获取本项目”的部分都要跳过)。 49 | 50 | # 附:一些常用的 docker 命令 51 | 获取信息 52 | ```bash 53 | # 列出正在运行的容器 54 | #(加 -a 列出所有容器,加 --no-trunc 关闭缩略显示) 55 | docker ps 56 | 57 | # 实时显示正在运行的容器的资源占用情况 58 | docker stats 59 | 60 | # 查看 docker 各种类型的磁盘占用 61 | docker system df -v 62 | 63 | # 查看容器信息 64 | docker inspect <容器名或id> 65 | ``` 66 | 67 | 管理容器 68 | ```bash 69 | # 启动 70 | docker container start <容器名或id> 71 | # 重启 72 | docker container restart <容器名或id> 73 | # 停止 74 | docker container stop <容器名或id> 75 | # 移除 76 | docker container rm <容器名或id> 77 | ``` 78 | 79 | 在宿主与容器之间复制文件,其中容器路径以 `<容器名或id>:`开头(例如 `arCNiso:/home/archer/`) 80 | ```bash 81 | docker cp <源路径> <目标路径> 82 | ``` 83 | -------------------------------------------------------------------------------- /docs/src/content/docs/dev/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 如何定制 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 如何定制 6 | order: 03 7 | --- 8 | 9 | 简单的文件修改是可以直接进行的,例如你想修改欢迎界面,可直接修改 `motd-zh_CN` ,然后用 `./makeiso` 再次构建即可。 10 | 11 | 而如果你想做一些深层次的定制,比如添加、删除一些包或 systemd 服务等,你就需要了解项目内各个文件与目录结构的作用了。 12 | 13 | - 为此,请先知晓:本项目(除去一些其他文件以外)在最终构建时相当于 mkarchiso 的一个 config,原本基于官方 archiso 的 releng。 14 | 因此,你所需要的正是 [ArchWiki 的 archiso 条目](https://wiki.archlinux.org/title/Archiso)。 15 | - 注意,从 Git 仓库的角度来说,arCNiso 不包含 releng 本体,在某种意义上可视为对 releng 的一个补丁。 16 | - 其次,你可以看看[特性列表](/design/feature/)与[设计说明](/design/idea/),它能告诉你 arCNiso 的诸多设计细节。 17 | 18 | **此外,你还应当了解以下信息:** 19 | 20 | - 由于 arCNiso 不包含 releng 本体,直接编辑 airootfs、efiboot、syslinux 等是无效的。正确做法是编辑 arCNiso 用以生成 airootfs 所用到的脚本 `makeiso-afs.sh` 及相关文件(夹)。 21 | - 你可以使用 `arCNiso-expac` 来查看按“实际占用空间”(包括依赖等)排序的软件包列表。 22 | - 从 tty 可以手动启动图形环境,可运行 `arCNiso-xfce4` 。 23 | - `/usr/local/bin` 存放了大量 arCNiso 的脚本,其中以 `arcn` 开头的主要面向使用者,`arCNiso-` 开头的主要面向开发者。 24 | - 留心 `.gitignore` 中的每一行。 25 | - 由 `.gitignore` 忽略的文件(夹)不会被包含在 Git 仓库中,通常是临时性或者外部性的,在构建前准备好,或在构建中生成。 26 | - 合理的 `.gitignore` 可以保护 Git 仓库免受临时性文件的拖累。 27 | - `profiledef.sh` 中的 `airootfs_image_tool_options` 设定了压缩算法参数,它会影响到构建时长、镜像体积和镜像启动时长等。 28 | - 推荐在测试构建时使用 gzip 1 级,这样能构大大加快构建速度。 29 | - 构建成品时则推荐使用 zstd 18 级,在压缩率尚可的同时比 xz 具有快得多的启动速度。 30 | -------------------------------------------------------------------------------- /docs/src/content/docs/dev/howtoPR.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 提交 Pull Request 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 提交 PR 6 | order: 05 7 | --- 8 | 9 | 非常感谢你来到这里! 10 | 11 | 在提交 [Pull Request](https://github.com/clsty/arCNiso/pulls) 之前,请注意以下几点: 12 | 13 | 1. 不要引入与本项目的许可(GPLv3)不兼容的代码或文件等。 14 | 2. 请自己至少测试成功过一次再来提交(如果只是不成熟的建议,请使用 issue)。 15 | 3. 请确认你提交的 PR 没有被[设计说明](/design/idea)涉及(比如你想把 linux 主线内核改成 linux-zen)。 16 | - 若已有涉及,则请先看下对应的原因(比如 linux-zen 会占用更多空间),并确保你认为你的 PR 确实有更好的理由;或者先提交 issue 与作者沟通讨论。 17 | 18 | 在此之外的一切总体上有益处的 PR,一般都是被欢迎的,包括但不限于: 19 | 20 | - 修复各种错误(包括错别字)或 bug 21 | - 完善或添加文档 22 | - 改良各种流程、结构或细节 23 | - 在性价比尚可的前提下添加或修改功能(价:代价,包括降低速度、提升尺寸等;性:目标功能的所具备的价值与意义) 24 | - 在不严重影响功能性尤其是原版 archiso 所具有的功能的前提下减小尺寸或优化性能 25 | - 解决(尤其是标记为 `help wanted` 的)[issue](https://github.com/clsty/arCNiso/issues) 26 | - …… 27 | 28 | 让我们一起把 arCNiso 变得更好! 29 | 30 | -------------------------------------------------------------------------------- /docs/src/content/docs/dev/maintaining.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 长期维护 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 长期维护 6 | order: 04 7 | --- 8 | 9 | :::note 10 | 本项目的维护工作目前由 clsty 执行,这里仅作为记录与参考,并不是指构建或使用本项目须参与维护。 11 | 12 | 当然,假如本项目最后一次发布镜像的时间距现在超过两个月,使用者就可能要参考本节内容来构建最新镜像了。 13 | ::: 14 | 15 | 维护工作包括若干方面。 16 | 17 | # 追踪更新 18 | 追踪更新是其中最基本的(即使不是工作量最大的),这里对其进行简要说明。 19 | 20 | ## mkarchiso 21 | 首先要更新系统,确保使用了最新的 `archiso` 包。 22 | 23 | 然后,根据特定场景实行相应的步骤。 24 | 25 | - 场景:源文件 `mkarchiso-original`(由 `/usr/bin/mkarchiso` 复制而来,Arch Linux 官方提供)可能有更新。 26 | 1. 使用 `PATCH.sh`,将 mkarchiso 打补丁到位(若源文件的更新超过了补丁的容错范围,补丁可能会应用失败,这时需要手动操作)。 27 | 2. 使用 `DIFF.sh`,根据官方 mkarchiso 与刚刚处理好的补丁版 mkarchiso 进行对比,来更新补丁。 28 | 29 | - 场景:想要对补丁版 mkarchiso 进行修改。 30 | 1. 利用 `DIFF.sh` 判断 `mkarchiso.patch` 是否精确反映了差异;若否,先按源文件有更新来处理。 31 | 2. 按需修改补丁版 mkarchiso。 32 | 3. 使用 `DIFF.sh`,根据官方 mkarchiso 与刚刚修改好的补丁版 mkarchiso 进行对比,来更新补丁。 33 | 34 | - 场景:想要对 diff 的参数进行修改,例如 `diff -u` 变成 `diff -U5`。 35 | 1. 利用 `DIFF.sh` 判断 `mkarchiso.patch` 是否精确反映了差异;若否,先按源文件有更新来处理。 36 | 2. 按需修改 `DIFF.sh` 中的所有 diff 命令。 37 | 3. 删除 `mkarchiso.patch`,再使用 `DIFF.sh` 创建新补丁。 38 | 39 | ## Firefox 40 | 主要是对 Firefox 插件的更新,以及对书签作适当调整。 41 | ```bash 42 | ./layer-home/preparefirefox.sh 43 | ``` 44 | 按照指示操作即可。 45 | 46 | ## layer-rootfs 47 | 主要是将 `layer-rootfs` 目录所引用的几个仓库与上游进行同步: 48 | - 49 | - 50 | 51 | ## releng 52 | 53 | ### 必要性 54 | 55 | 本项目是基于 releng 的,而 releng 本身与 archiso 工具又是不断更新的。 56 | 这就会导致一个问题:如果本项目从旧 releng 拿来的基础部分不变,却与新 releng 偏离过大,则可能无法用最新的 archiso 及配套工具来成功构建本项目的 arCNiso 镜像(或者即使得到了镜像也无法正常运行)。 57 | 58 | ### 方法论 59 | 60 | - 基本要求:避免启用会自动整理代码风格的功能(比如 Lazyvim 默认开启的某个插件),否则可能会给逐行比对(diff)带来巨大麻烦。 61 | - 关注 GitLab 上 releng 的最新变化,如 62 | - [archiso 中 releng 的 commits](https://gitlab.archlinux.org/archlinux/archiso/-/commits/master/configs/releng?ref_type=heads) 63 | - [releng 的 commits](https://gitlab.archlinux.org/archlinux/releng/-/commits/master/?ref_type=HEADS) 64 | - 使用 diff 类工具(除 diff 本身以外还有多种 TUI/GUI 前端可选)对比本项目目录与 archiso 所提供的 `/usr/share/archiso/configs/releng` 目录。 65 | 66 | 67 | # 其他 68 | - `./getiso`:适用于在另一台机器上构建镜像的场景。 69 | 70 | - `./testiso`:用于利用 VirtualBox 对镜像进行测试运行。 71 | - 使用前可能需要手动配置 VirtualBox 虚拟机(参见[环境要求](/using/run/#%E7%8E%AF%E5%A2%83%E8%A6%81%E6%B1%82)),并使虚拟机名为 arCNiso。 72 | - 推荐将 `ignored/path` 设置为共享目录,自动挂载到虚拟机内,以便在宿主机与虚拟机之间传输文件(但是 symlink 类的无法直接这样传输,可以先用 tar 打包,或换用 ssh 的 scp 传文件)。 73 | 74 | - `./publishiso` 等系列脚本:用于自动发布。 75 | -------------------------------------------------------------------------------- /docs/src/content/docs/en/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: arCNiso 3 | --- 4 | 5 | **To non-Chinese users** 6 | 7 | This is an **unofficial** project which builds customised archiso with GUI(xfce4) for Arch Linux users in China. 8 | 9 | **Currently the project has no plan for other regions**. 10 | However, **feel free to fork** this project and modify to make your own (of course, under GNU GPL 3.0 License). 11 | 12 | ![Screenshot of arCNiso v2.3.2](/screenshot.png) 13 | -------------------------------------------------------------------------------- /docs/src/content/docs/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: arCNiso 3 | description: 中国用户友好型 archiso 4 | template: splash 5 | lastUpdated: false 6 | hero: 7 | title: | 8 |

9 | 中国用户
友好型
10 |

11 |

✨archiso✨

12 | tagline: 本质上,仍然是 archiso。 13 | image: 14 | html: "A screenshot." 15 | actions: 16 | - text: 下载 arCNiso 17 | link: /using/obtain 18 | icon: right-arrow 19 | variant: primary 20 | - text: 阅读文档 21 | link: /about/readme 22 | icon: open-book 23 | variant: primary 24 | - text: GitHub 仓库 25 | link: https://github.com/clsty/arCNiso/ 26 | icon: external 27 | --- 28 | import { Card, CardGrid } from '@astrojs/starlight/components'; 29 | 30 | ## 特性 31 | 32 | 33 | 34 | XFCE4 桌面 | 暗黑主题全覆盖 35 | 36 | 37 | 中文界面 | Fcitx5 输入法 | 默认国内镜像源 38 | 39 | 40 | 集成 Oh My Zsh 与 Powerlevel10k 41 | 42 | 43 | GPLv3 协议 44 | 45 | 46 | 触屏支持、安全启动等,见[特性](/design/feature) 47 | 48 | 49 | -------------------------------------------------------------------------------- /docs/src/content/docs/using/obtain.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 如何获取镜像文件 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 获取 6 | order: 10 7 | --- 8 | 9 | # 直接下载镜像文件 10 | 目前提供两个地址,择一即可: 11 | - [GitHub Releases](https://github.com/clsty/arCNiso/releases/latest) 12 | - [Celestial.y 的存储分享](https://alist.clsty.link/arCNiso) 13 | - 不需要登录,但是有密码:`clsty` 14 | 15 | :::tip 16 | - 国内用户与 GitHub Releases 的连接很可能不稳定,宜使用 Celestial.y 的存储分享。 17 | - 正如通过 http 方式下载官方 archiso 镜像之后需要验证签名,(无论哪种方式)在下载完成之后,都建议手动验证版本对应的 [sha256sum](https://github.com/clsty/arCNiso/releases)。 18 | ::: 19 | 20 | > - 备用方法:从 [GitHub Releases](https://github.com/clsty/arCNiso/releases/latest/download/arCNiso.latest.torrent) 下载最新的 torrent 种子文件,再使用 qbittorrent(或其他任一 BT 客户端)打开它,以下载 iso 镜像文件。 21 | > - 理论上来说,这也是不错的方法,但目前的做种时间较短(换句话说,时间不巧的话可能完全无法下载)。 22 | > - 如果你没有 BT 客户端,安装一个即可(这很简单),例如你可以从[这里](https://www.qbittorrent.org/download)下载 qbittorrent。安卓上也有 BT 客户端,例如 LibreTorrent(可从 F-Droid 下载)。 23 | > - 题外话,若想长期使用 BT 客户端,则更推荐 [qbittorrent 增强版](https://github.com/c0re100/qBittorrent-Enhanced-Edition)。 24 | > - 不需要手动验证 sha256sum(BT 客户端会自动验证)。 25 | 26 | # 通过构建得到镜像文件 27 | 参见[构建说明](/dev/build)。 28 | -------------------------------------------------------------------------------- /docs/src/content/docs/using/run.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 怎样运行(即制作启动盘) 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 运行 6 | order: 20 7 | --- 8 | # 环境要求 9 | - CPU:`amd64` 架构(即 `x86_64` 架构;未来可能支持其他架构)。 10 | - 显存:最低 128 MB。 11 | - 内存:最低 3 GiB(此时使用 Firefox 仍有崩溃风险),推荐 4 GiB 及以上。 12 | 13 | # 方法 14 | - Q:我已经获得了 iso 镜像文件,现在我要怎么运行它呢?像官方 archiso 那样吗? 15 | - A:是的,和官方 archiso(以及其他各种 Live 或 PE 镜像)一样。 16 | - 推荐使用 Ventoy,参见 [Ventoy 使用说明](https://ventoy.net/cn/doc_start.html),其中“拷贝镜像文件”中的“ISO 文件”对应于本项目所提供的 iso 镜像文件。 17 | - 也可以将镜像文件通过 dd 或 Rufus 等工具写入到 U 盘中,但这远不如 Ventoy 灵活。 18 | - Q:其实——我的电脑系统全挂掉了(或出厂不含系统),也暂时无法借用他人电脑,这样也能制作 arCNiso 启动盘吗? 19 | - A:( `>v>` 没想到吧.png)就算这样也还是有办法的——你可以使用安卓设备(手机、平板等)来做这件事。 20 | - 安装 EtchDroid USB writer,它可从[项目主页的 Releases](https://github.com/Depau/EtchDroid/releases) 或 [F-Droid](https://f-droid.org/packages/eu.depau.etchdroid) 下载(这里也提供 [Celestial.y 的存储分享](https://alist.clsty.link/android),密码 `clsty`;但更新未必及时)。 21 | - 将 U 盘插到安卓设备上,使用刚才安装的 EtchDroid 将前面获取到的 arCNiso 镜像文件写入到 U 盘中。 22 | 23 | > 当你的电脑(通过 ventoy 或其他途径)启动本镜像之后,会自动进入启动流程。 24 | > 25 | > - 首先会进入引导器界面,若干秒后自动选择第一项。 26 | > - 执行 Linux 启动阶段,并由控制台展示(左侧给出每个单项的彩色状态指示)。 27 | > - 进入 tty 界面,展示 motd(即 Arch Linux 图标)并自动登录到 archer 用户(其具有 sudo 权限)。 28 | > - 图形环境(xfce4)启动,弹出欢迎界面(`/etc/motd-zh_CN`)。 29 | -------------------------------------------------------------------------------- /docs/src/content/docs/using/usage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 使用指南 3 | layout: /src/layouts/autonum.astro 4 | sidebar: 5 | label: 使用 6 | order: 30 7 | --- 8 | 9 | :::tip 10 | 开机弹出的欢迎界面中已经给出了最关键的“注意事项”,**读完这个就可以直接开始使用了。** 11 | 12 | 以下则是没那么重要的“技巧提示”及“问题与应对”。 13 | ::: 14 | 15 | 16 | # 技巧提示(知道了会更好) 17 | 18 | 19 | ## 推荐 20 | 21 | 先学会 vim 式编辑器的基本使用方法(为此可运行 `eviltutor`),以便获得本镜像中 vifm/ranger/emacs/firefox 等软件所带来的效率提升。 22 | 23 | > vim 本身是高效的、人体工学友好的编辑器,而它的键位设计在很多别的程序中也会以默认方案或可选插件等形式出现。 24 | 25 | 26 | ## 命令行 shell 27 | 28 | > 简称 shell,也就是终端模拟器(tilix)里面的(或者说“连接着的”“承载着的”)那个存在。 29 | > 官方 archiso 与本项目的默认 shell 都是 zsh。 30 | 31 | 如果你第一次使用命令行 shell,你至少应该了解: 32 | - 按 `Ctrl`+`C` 终止(卡住的时候请试试这个)。 33 | - 在命令没打完的时候,试试按 `Tab` 键或上下方向键来补全。 34 | 35 | 其他快捷键可参见 [21 个专业 Linux 用户喜爱的实用终端快捷键](https://linux.cn/article-16228-1.html)。 36 | 37 | 38 | ## 终端(tilix) 39 | 40 | **缩放字体大小:** `Ctrl`+`=` 与 `Ctrl`+`-` 。 41 | 42 | **翻页:** `Shift`+`PageUp` 向上翻页、 `Shift`+`PageDown` 向下翻页。 43 | 44 | **复制粘贴:** 先用鼠标选中,再 `Ctrl`+`Shift`+`C` 复制;用 `Ctrl`+`Shift`+`V` 粘贴(仅终端;一般的复制粘贴仍然是 `Ctrl`+`C` 及 `Ctrl`+`V` )。 45 | 46 | **会话(即标签页)与终端(实际上是指分割视图的小终端窗格):** `Ctrl`+`Shift`+`T` 新建会话、 `Ctrl`+`Alt`+`1` `Ctrl`+`Alt`+`2` 切换会话、 `Ctrl`+`Alt`+`A` 自动新建终端、 `Alt`+`1` `Alt`+`2` 切换终端、 `Ctrl`+`Shift`+`W` 关闭当前会话或终端。 47 | 48 | 49 | ## 一些终端程序 50 | 51 | **安装软件:** 使用 paru 可以从 AUR 安装软件。在 arCNiso 中使用 paru 的一种方法是,输入 `parui` 进入搜索界面。 52 | 53 | **alias:** 请使用 `grep ^alias ~/.zshrc` 查看对 zsh 生效的命令别名,它们有助于你提高输入命令的效率。 54 | 55 | **vifm:** 在 arCNiso 中使用 `vifm` 时,可以依次按 `Z` `Z`(注意大小写)退出并切换工作目录。 56 | 57 | 58 | ## 输入法 59 | 60 | 按左 `Ctrl`+`空格` 以切换输入法,按 `Ctrl`+`;` 打开剪贴板管理器(按 `ESC` 退出)。 61 | 62 | 63 | ## 更多 64 | 65 | - arCNiso 的更多功能,详见[特性列表](/design/feature)。 66 | 67 | 68 | # 问题与应对(一般用不到) 69 | 70 | - 不小心进入了 tty 71 | - 启动时,会自动登录 tty1 并启动 xfce4。若不小心切到了别的 tty,可以用 `Ctrl`+`Alt`+`F1` 再切回来。 72 | - 在 VirtualBox 虚拟机中使用本镜像时,不够稳定,尤其是 Firefox。 73 | - 建议使用 VMSVGA 作为显卡控制器、启用 3D 加速并给足显存(128 MB)。 74 | - 在 Linux 下建议改用 QEMU/KVM 虚拟机。 75 | - 桌面上的面板(任务栏)未加载出来。 76 | - 在 VirtualBox 虚拟机下,偶尔会遇到这种情况。此时可用 `arcnlogout` 退出(并自动重启)桌面环境。 77 | - GPG/PGP 密钥(keyring)问题 78 | - 一般发生在所使用的 archiso 过时的情况下;arCNiso 作为 archiso 的改版也未能幸免,但你可以运行 `pacman-reinit` 来重置密钥。 79 | 80 | 其他问题可以来 [Issues](https://github.com/clsty/arCNiso/issues) 反馈,或在 [Discussions](https://github.com/clsty/arCNiso/discussions) 中提问。 81 | -------------------------------------------------------------------------------- /docs/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /docs/src/layouts/autonum.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { title } = Astro.props.frontmatter || Astro.props; 3 | --- 4 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /docs/src/styles/custom.css: -------------------------------------------------------------------------------- 1 | /* Dark mode colors. */ 2 | :root[data-theme='dark'] { 3 | --sl-color-accent-low: #000000; 4 | --sl-color-accent: #81a1c1; 5 | --sl-color-accent-high: #81a1c1; /* hyperlinks, selection bg, left-top corner title, etc. */ 6 | --sl-color-white: #a3be8c; /* highlighted text */ 7 | --sl-color-gray-1: #eceff4; /* text on top bar */ 8 | --sl-color-gray-2: #e5e9f0; /* normal text */ 9 | --sl-color-gray-3: #81a1c1; /* TOC on right side */ 10 | --sl-color-gray-4: #4c566a; 11 | --sl-color-gray-5: #434c5e; /* bullet line on side bar */ 12 | --sl-color-gray-6: #222632; /* sidebar, topbar */ 13 | --sl-color-black: #2e3440; 14 | } 15 | 16 | /* Page title */ 17 | :root[data-theme='dark'] h1:is(#_top) { 18 | color: #a3be8c; 19 | } 20 | /* Headings */ 21 | :root[data-theme='dark'] .sl-markdown-content h1 { 22 | color: #CD8D7A; 23 | font-size: 200%; 24 | } 25 | :root[data-theme='dark'] .sl-markdown-content h2 { 26 | color: #F6B17A; 27 | font-size: 165%; 28 | } 29 | :root[data-theme='dark'] .sl-markdown-content h3 { 30 | color: #F6ECA9; 31 | font-size: 140%; 32 | } 33 | :root[data-theme='dark'] .sl-markdown-content h4 { 34 | color: #AAD9BB; 35 | font-size: 125%; 36 | } 37 | :root[data-theme='dark'] .sl-markdown-content h5 { 38 | color: #6DA4AA; 39 | font-size: 116%; 40 | } 41 | :root[data-theme='dark'] .sl-markdown-content h6 { 42 | color: #BF90DD; 43 | font-size: 110%; 44 | } 45 | 46 | /* Light mode colors. */ 47 | :root[data-theme='light'] { 48 | --sl-color-accent-low: #c5d9f2; 49 | --sl-color-accent: #156ac7; 50 | --sl-color-accent-high: #11325b; 51 | --sl-color-white: #181818; 52 | --sl-color-gray-1: #272727; 53 | --sl-color-gray-2: #383838; 54 | --sl-color-gray-3: #585858; 55 | --sl-color-gray-4: #8b8b8b; 56 | --sl-color-gray-5: #c2c2c2; 57 | --sl-color-gray-6: #eeeeee; 58 | --sl-color-gray-7: #f6f6f6; 59 | --sl-color-black: #ffffff; 60 | } 61 | /* Page title */ 62 | :root[data-theme='light'] h1:is(#_top) { 63 | color: #839e6c; 64 | } 65 | /* Headings */ 66 | :root[data-theme='light'] .sl-markdown-content h1 { 67 | color: #AD6D5A; 68 | font-size: 200%; 69 | } 70 | :root[data-theme='light'] .sl-markdown-content h2 { 71 | color: #E6A16A; 72 | font-size: 165%; 73 | } 74 | :root[data-theme='light'] .sl-markdown-content h3 { 75 | color: #D6CC99; 76 | font-size: 140%; 77 | } 78 | :root[data-theme='light'] .sl-markdown-content h4 { 79 | color: #8AB99B; 80 | font-size: 125%; 81 | } 82 | :root[data-theme='light'] .sl-markdown-content h5 { 83 | color: #4D848A; 84 | font-size: 116%; 85 | } 86 | :root[data-theme='light'] .sl-markdown-content h6 { 87 | color: #9F70BD; 88 | font-size: 110%; 89 | } 90 | 91 | img { 92 | border-radius: 7px; 93 | } 94 | 95 | code { 96 | border-radius: 5px; 97 | } 98 | 99 | .card { 100 | background-color: var(--sl-color-gray-5) !important; 101 | border-radius: 25px; 102 | } 103 | 104 | header { 105 | /* 顶栏下边缘的横线 */ 106 | border-bottom: 1px solid var(--sl-color-gray-4) !important; 107 | } 108 | 109 | blockquote { 110 | /* 引用块的左缘 */ 111 | border-left: 4px solid var(--sl-color-gray-4) !important; 112 | } 113 | 114 | /* aside 中的文字 */ 115 | .starlight-aside__content { 116 | color: var(--sl-color-gray-2); 117 | } 118 | -------------------------------------------------------------------------------- /docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict" 3 | } -------------------------------------------------------------------------------- /efiboot/loader/entries/01-archiso-x86_64-linux.conf: -------------------------------------------------------------------------------- 1 | title arCNiso 2 | sort-key 01 3 | linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 4 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img 5 | options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% usbcore.autosuspend=-1 btusb.enable_autosuspend=N bluetooth.disable_ertm=Y cow_spacesize=1G swapctrlcaps=false module_blacklist=pcspkr,snd_pcsp 6 | -------------------------------------------------------------------------------- /efiboot/loader/entries/02-archiso-x86_64-linux-swapctrl.conf: -------------------------------------------------------------------------------- 1 | title arCNiso, Ctrl and Caps keys swapped 2 | sort-key 02 3 | linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 4 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img 5 | options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% usbcore.autosuspend=-1 btusb.enable_autosuspend=N bluetooth.disable_ertm=Y cow_spacesize=1G swapctrlcaps=true module_blacklist=pcspkr,snd_pcsp 6 | -------------------------------------------------------------------------------- /efiboot/loader/entries/03-archiso-x86_64-linux-verbose.conf: -------------------------------------------------------------------------------- 1 | title arCNiso, with speech and beeper 2 | sort-key 03 3 | linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 4 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img 5 | options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% usbcore.autosuspend=-1 btusb.enable_autosuspend=N bluetooth.disable_ertm=Y cow_spacesize=1G swapctrlcaps=false accessibility=on 6 | -------------------------------------------------------------------------------- /efiboot/loader/entries/04-archiso-x86_64-linux-verbose-swapctrl.conf: -------------------------------------------------------------------------------- 1 | title arCNiso, with speech and beeper, Ctrl and Caps keys swapped 2 | sort-key 04 3 | linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 4 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img 5 | options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% usbcore.autosuspend=-1 btusb.enable_autosuspend=N bluetooth.disable_ertm=Y cow_spacesize=1G swapctrlcaps=true accessibility=on 6 | -------------------------------------------------------------------------------- /efiboot/loader/entries/05-archiso-x86_64-memtest86+.conf: -------------------------------------------------------------------------------- 1 | title Memtest86+ 2 | sort-key 05 3 | efi /boot/memtest86+/memtest.efi 4 | -------------------------------------------------------------------------------- /efiboot/loader/loader.conf: -------------------------------------------------------------------------------- 1 | timeout 15 2 | default 01-archiso-x86_64-linux.conf 3 | beep off 4 | -------------------------------------------------------------------------------- /getiso: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 在另一台机器上构建后,此脚本能将相关输出文件传回本机器以备测试及后续发布(并且不需要做构建所需的那些准备工作)。 3 | 4 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 5 | function try { "$@" || sleep 0; } 6 | set -e 7 | cd $(dirname $0) 8 | 9 | function testthefile { 10 | echo "正在测试 $1 是否存在..." 11 | echo "此测试将无限循环,直到 $1 存在" 12 | aaa test -f "$1" 13 | } 14 | testthefile ./ignoredinfo/rsyncpath-getiso 15 | 16 | filter=$(cat<隐私与安全>Cookie 和网站数据>清除数据,以及历史记录>清除历史记录)。" 56 | read -p "按回车继续:" tmpvar 57 | firefox --profile "$target" 58 | sleep 1 59 | cleanff 60 | rsync -av --delete $target/ $target_o/ 61 | #for i in "favicons.sqlite-wal" "favicons.sqlite.corrupt" "protections.sqlte" "sessionstore.jsonlz4" "cookies.sqlite-wal" "cookies.sqlite" "key4.db" "logins.json" "sessionstore.js" "permissions.sqlite" "content-prefs.sqlite" "webappsstore.sqlite" "formhistory.sqlite" cache2 safebrowsing crashes storage datareporting startupCache minidumps saved-telemetry-pings thumbnails sessionstore-backups; do 62 | # 注意不要动 "storage-sync-v2.sqlite" 和 "storage-sync-v2.sqlite-wal" ,否则插件数据可能会没,比如 Dark Reader 63 | echo "Firefox 准备流程完毕。" 64 | -------------------------------------------------------------------------------- /layer-home/public/.config/Kvantum/kvantum.kvconfig: -------------------------------------------------------------------------------- 1 | [General] 2 | theme=Sweet-transparent-toolbar# 3 | -------------------------------------------------------------------------------- /layer-home/public/.config/fontconfig/fonts.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | rgb 7 | 8 | 9 | 10 | 11 | hintfull 12 | 13 | 14 | 15 | 16 | true 17 | 18 | 19 | 20 | 21 | 22 | system-ui 23 | 24 | 25 | Source Code Pro 26 | LXGW WenKai Mono 27 | 28 | 29 | 30 | 31 | 32 | sans-serif 33 | 34 | 35 | LXGW WenKai Mono 36 | Source Code Pro 37 | 38 | 39 | 40 | 41 | serif 42 | 43 | 44 | Source Code Pro 45 | LXGW WenKai Mono 46 | 47 | 48 | 49 | 50 | monospace 51 | 52 | 53 | Source Code Pro 54 | LXGW WenKai Mono 55 | 56 | 57 | 58 | 59 | Source Code Pro 60 | 61 | 62 | LXGW WenKai Mono 63 | 64 | 65 | 66 | 67 | en 68 | 69 | 70 | Source Code Pro 71 | 72 | 73 | LXGW WenKai Mono 74 | 75 | 76 | 77 | 78 | en 79 | 80 | 81 | Source Code Pro 82 | 83 | 84 | LXGW WenKai Mono 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /layer-home/public/.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=sweet 3 | gtk-icon-theme-name=Papirus-Dark 4 | gtk-font-name=Source Code Pro Regular 11 5 | gtk-cursor-theme-name=Sweet-cursors 6 | gtk-cursor-theme-size=24 7 | gtk-toolbar-style=GTK_TOOLBAR_ICONS 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 9 | gtk-button-images=0 10 | gtk-menu-images=0 11 | gtk-enable-event-sounds=1 12 | gtk-enable-input-feedback-sounds=0 13 | gtk-xft-antialias=1 14 | gtk-xft-hinting=1 15 | gtk-xft-hintstyle=hintfull 16 | gtk-xft-rgba=rgb 17 | gtk-application-prefer-dark-theme=0 18 | -------------------------------------------------------------------------------- /layer-home/public/.config/kdeglobals: -------------------------------------------------------------------------------- 1 | [$Version] 2 | update_info=filepicker.upd:filepicker-remove-old-previews-entry 3 | 4 | [Colors:View] 5 | BackgroundNormal=50, 50, 50 6 | 7 | [KDE] 8 | ShowDeleteCommand=false 9 | 10 | [PreviewSettings] 11 | MaximumRemoteSize=0 12 | -------------------------------------------------------------------------------- /layer-home/public/.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | filetype plugin indent on 2 | set expandtab 3 | set tabstop=2 4 | set softtabstop=2 5 | set shiftwidth=2 6 | 7 | set scrolloff=5 8 | 9 | set incsearch 10 | set smartcase 11 | set autoread 12 | 13 | set wrap 14 | set ruler 15 | set relativenumber 16 | set cursorline 17 | 18 | 19 | " Important!! 20 | if has('termguicolors') 21 | set termguicolors 22 | endif 23 | set background=dark 24 | " Set contrast. 25 | " This configuration option should be placed before `colorscheme everforest`. 26 | " Available values: 'hard', 'medium'(default), 'soft' 27 | let g:everforest_background = 'soft' 28 | " For better performance 29 | let g:everforest_better_performance = 1 30 | let g:everforest_transparent_background=1 31 | colorscheme everforest 32 | -------------------------------------------------------------------------------- /layer-home/public/.config/qt5ct/qt5ct.conf: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | color_scheme_path=/usr/share/qt5ct/colors/airy.conf 3 | custom_palette=false 4 | icon_theme=Papirus-Dark 5 | standard_dialogs=default 6 | style=kvantum-dark 7 | 8 | [Fonts] 9 | fixed="Source Code Pro,12,-1,5,50,0,0,0,0,0" 10 | general="Source Code Pro,12,-1,5,50,0,0,0,0,0" 11 | 12 | [Interface] 13 | activate_item_on_single_click=1 14 | buttonbox_layout=0 15 | cursor_flash_time=1000 16 | dialog_buttons_have_icons=1 17 | double_click_interval=400 18 | gui_effects=@Invalid() 19 | keyboard_scheme=2 20 | menus_have_icons=true 21 | show_shortcuts_in_context_menus=true 22 | stylesheets=@Invalid() 23 | toolbutton_style=4 24 | underline_shortcut=1 25 | wheel_scroll_lines=3 26 | 27 | [SettingsWindow] 28 | geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x1a\0\0\x2\xfc\0\0\x3\x65\0\0\0\x2\0\0\0:\0\0\x2\xfa\0\0\x3\x63\0\0\0\0\0\0\0\0\b\0\0\0\0\x2\0\0\0:\0\0\x2\xfa\0\0\x3\x63) 29 | 30 | [Troubleshooting] 31 | force_raster_widgets=1 32 | ignored_applications=@Invalid() 33 | -------------------------------------------------------------------------------- /layer-home/public/.config/qt6ct/qt6ct.conf: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | color_scheme_path=/usr/share/qt6ct/colors/airy.conf 3 | custom_palette=false 4 | icon_theme=Papirus-Dark 5 | standard_dialogs=default 6 | style=kvantum-dark 7 | 8 | [Fonts] 9 | fixed="Source Code Pro,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" 10 | general="Source Code Pro,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" 11 | 12 | [Interface] 13 | activate_item_on_single_click=1 14 | buttonbox_layout=0 15 | cursor_flash_time=1200 16 | dialog_buttons_have_icons=1 17 | double_click_interval=400 18 | gui_effects=@Invalid() 19 | keyboard_scheme=2 20 | menus_have_icons=true 21 | show_shortcuts_in_context_menus=true 22 | stylesheets=@Invalid() 23 | toolbutton_style=4 24 | underline_shortcut=1 25 | wheel_scroll_lines=3 26 | 27 | [SettingsWindow] 28 | geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x1a\0\0\x3\f\0\0\x3\x41\0\0\0\x2\0\0\0:\0\0\x3\n\0\0\x3?\0\0\0\0\0\0\0\0\b\0\0\0\0\x2\0\0\0:\0\0\x3\n\0\0\x3?) 29 | 30 | [Troubleshooting] 31 | force_raster_widgets=1 32 | ignored_applications=@Invalid() 33 | -------------------------------------------------------------------------------- /layer-home/public/.config/vifm/bookmark.vim: -------------------------------------------------------------------------------- 1 | " Syntax 1: Use :bmgo 2 | " bmark! 3 | " 4 | " Syntax 2: Use ' 5 | " mark [filename] 6 | " 7 | 8 | mark c ~/.config 9 | mark e ~/.emacs.d 10 | mark s ~/.local/share 11 | mark d ~/Downloads 12 | mark a /mnt 13 | -------------------------------------------------------------------------------- /layer-home/public/.config/vifm/colors/Default.vifm: -------------------------------------------------------------------------------- 1 | " You can edit this file by hand. 2 | " The " character at the beginning of a line comments out the line. 3 | " Blank lines are ignored. 4 | 5 | " The Default color scheme is used for any directory that does not have 6 | " a specified scheme and for parts of user interface like menus. A 7 | " color scheme set for a base directory will also 8 | " be used for the sub directories. 9 | 10 | " The standard ncurses colors are: 11 | " Default = -1 = None, can be used for transparency or default color 12 | " Black = 0 13 | " Red = 1 14 | " Green = 2 15 | " Yellow = 3 16 | " Blue = 4 17 | " Magenta = 5 18 | " Cyan = 6 19 | " White = 7 20 | 21 | " Light versions of colors are also available (set bold attribute): 22 | " LightBlack 23 | " LightRed 24 | " LightGreen 25 | " LightYellow 26 | " LightBlue 27 | " LightMagenta 28 | " LightCyan 29 | " LightWhite 30 | 31 | " Available attributes (some of them can be combined): 32 | " bold 33 | " underline 34 | " reverse or inverse 35 | " standout 36 | " none 37 | 38 | " Vifm supports 256 colors you can use color numbers 0-255 39 | " (requires properly set up terminal: set your TERM environment variable 40 | " (directly or using resources) to some color terminal name (e.g. 41 | " xterm-256color) from /usr/lib/terminfo/; you can check current number 42 | " of colors in your terminal with tput colors command) 43 | 44 | " highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color 45 | 46 | highlight clear 47 | 48 | highlight Win cterm=none ctermfg=white ctermbg=black 49 | highlight Directory cterm=bold ctermfg=cyan ctermbg=default 50 | highlight Link cterm=bold ctermfg=yellow ctermbg=default 51 | highlight BrokenLink cterm=bold ctermfg=red ctermbg=default 52 | highlight Socket cterm=bold ctermfg=magenta ctermbg=default 53 | highlight Device cterm=bold ctermfg=red ctermbg=default 54 | highlight Fifo cterm=bold ctermfg=cyan ctermbg=default 55 | highlight Executable cterm=bold ctermfg=green ctermbg=default 56 | highlight Selected cterm=bold ctermfg=magenta ctermbg=default 57 | highlight CurrLine cterm=bold ctermfg=default ctermbg=blue 58 | highlight TopLine cterm=none ctermfg=black ctermbg=white 59 | highlight TopLineSel cterm=bold ctermfg=black ctermbg=default 60 | highlight StatusLine cterm=bold ctermfg=black ctermbg=white 61 | highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black 62 | highlight CmdLine cterm=none ctermfg=white ctermbg=black 63 | highlight ErrorMsg cterm=none ctermfg=red ctermbg=black 64 | highlight Border cterm=none ctermfg=black ctermbg=white 65 | highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white 66 | -------------------------------------------------------------------------------- /layer-home/public/.config/vifm/colors/dracula.vifm: -------------------------------------------------------------------------------- 1 | " VIFM COLORS 2 | " dracula 3 | " based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors 4 | 5 | " Default = -1 = None, can be used for transparency or default color 6 | " Black = 0 7 | " Red = 1 8 | " Green = 2 9 | " Yellow = 3 10 | " Blue = 4 11 | " Magenta = 5 12 | " Cyan = 6 13 | " White = 7 14 | 15 | " STYLES 16 | " bold 17 | " underline 18 | " reverse or inverse 19 | " standout 20 | " none 21 | 22 | 23 | highlight clear 24 | 25 | highlight Win cterm=none ctermfg=default ctermbg=none 26 | 27 | highlight TopLine cterm=none ctermfg=blue ctermbg=none 28 | highlight TopLineSel cterm=none ctermfg=magenta ctermbg=none 29 | highlight StatusLine cterm=none ctermfg=blue ctermbg=none 30 | highlight Border cterm=none ctermfg=blue ctermbg=none 31 | 32 | highlight Selected cterm=bold ctermfg=magenta ctermbg=default 33 | highlight CurrLine cterm=bold ctermfg=236 ctermbg=blue 34 | 35 | highlight WildMenu cterm=none,reverse ctermfg=blue ctermbg=236 36 | highlight CmdLine cterm=none ctermfg=255 ctermbg=236 37 | highlight ErrorMsg cterm=none ctermfg=red ctermbg=black 38 | 39 | highlight Directory cterm=none ctermfg=blue ctermbg=default 40 | highlight Link cterm=none ctermfg=cyan ctermbg=default 41 | highlight BrokenLink cterm=none ctermfg=red ctermbg=default 42 | highlight Socket cterm=none ctermfg=magenta ctermbg=black 43 | highlight Device cterm=none ctermfg=red ctermbg=default 44 | highlight Fifo cterm=none ctermfg=yellow ctermbg=black 45 | highlight Executable cterm=none ctermfg=green ctermbg=default 46 | -------------------------------------------------------------------------------- /layer-home/public/.config/vifm/colors/nord.vifm: -------------------------------------------------------------------------------- 1 | " nord color scheme approximation for vifm 2 | 3 | " Reset all styles first 4 | highlight clear 5 | 6 | highlight Border cterm=none ctermfg=default ctermbg=default 7 | highlight TopLine cterm=none ctermfg=110 ctermbg=236 8 | highlight TopLineSel cterm=bold ctermfg=110 ctermbg=237 9 | 10 | highlight Win cterm=none ctermfg=7 ctermbg=default 11 | highlight OtherWin cterm=none ctermfg=7 ctermbg=default 12 | highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default 13 | highlight OtherLine cterm=bold ctermfg=default ctermbg=235 14 | highlight Selected cterm=none ctermfg=7 ctermbg=237 15 | 16 | highlight JobLine cterm=bold ctermfg=116 ctermbg=238 17 | highlight StatusLine cterm=bold ctermfg=110 ctermbg=237 18 | highlight ErrorMsg cterm=bold ctermfg=167 ctermbg=default 19 | highlight WildMenu cterm=bold,inverse ctermfg=110 ctermbg=236 20 | highlight CmdLine cterm=none ctermfg=7 ctermbg=default 21 | 22 | highlight Executable cterm=bold ctermfg=003 ctermbg=default 23 | highlight Directory cterm=bold ctermfg=110 ctermbg=default 24 | highlight Link cterm=none ctermfg=005 ctermbg=default 25 | highlight BrokenLink cterm=bold ctermfg=007 ctermbg=167 26 | highlight Device cterm=none,standout ctermfg=110 ctermbg=default 27 | highlight Fifo cterm=none ctermfg=172 ctermbg=default 28 | highlight Socket cterm=bold ctermfg=223 ctermbg=default 29 | 30 | -------------------------------------------------------------------------------- /layer-home/public/.config/xsettingsd/xsettingsd.conf: -------------------------------------------------------------------------------- 1 | Net/ThemeName "sweet" 2 | Net/IconThemeName "Papirus-Dark" 3 | Gtk/CursorThemeName "Sweet-cursors" 4 | Net/EnableEventSounds 1 5 | EnableInputFeedbackSounds 0 6 | Xft/Antialias 1 7 | Xft/Hinting 1 8 | Xft/HintStyle "hintfull" 9 | Xft/RGBA "rgb" 10 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/.gitignore: -------------------------------------------------------------------------------- 1 | /auto-save-list 2 | /cache 3 | /eln-cache 4 | /elpa 5 | /transient 6 | /tramp 7 | /recentf 8 | /.autosaves/* 9 | /.org-id-locations 10 | 11 | /dirvish 12 | 13 | /init.*.el 14 | /early-init.el 15 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/init.el: -------------------------------------------------------------------------------- 1 | ;;; -*- lexical-binding: t -*- 2 | ;;; This file is generated from init.0.org, do not edit manually. 3 | 4 | (unless (file-exists-p (concat user-emacs-directory "init.0.el")) 5 | (progn 6 | (require 'org) 7 | (find-file (concat user-emacs-directory "init.0.org")) 8 | (org-babel-tangle) 9 | (restart-emacs) 10 | )) 11 | 12 | (setq custom-file (concat user-emacs-directory "custom.el")) 13 | 14 | ; 在 init.0.el 之前加载 15 | (let ((init--1 (concat user-emacs-directory "init.-1.el")) 16 | (init--2 (concat user-emacs-directory "init.-2.el")) 17 | (init--3 (concat user-emacs-directory "init.-3.el"))) 18 | (when (file-exists-p init--3) (load-file init--3)) 19 | (when (file-exists-p init--2) (load-file init--2)) 20 | (when (file-exists-p init--1) (load-file init--1))) 21 | 22 | ; 在 init.0.el 之后加载 23 | (add-hook 24 | 'after-init-hook 25 | (lambda () 26 | (let ((init-1 (concat user-emacs-directory "init.1.el")) 27 | (init-2 (concat user-emacs-directory "init.2.el")) 28 | (init-3 (concat user-emacs-directory "init.3.el")) 29 | (private-file (concat user-emacs-directory "private.el"))) 30 | (when (file-exists-p init-1) (load-file init-1)) 31 | (when (file-exists-p init-2) (load-file init-2)) 32 | (when (file-exists-p init-3) (load-file init-3)) 33 | (when (file-exists-p private-file) (load-file private-file)) 34 | (when (and custom-file (file-exists-p custom-file)) (load-file custom-file)) 35 | ; (server-start) 36 | ))) 37 | 38 | ; 加载 init.0.el 39 | (load-file (concat user-emacs-directory "init.0.el")) 40 | 41 | (defun tangle-for-init () 42 | "Tangle all blocks." 43 | ;; Avoid running hooks when tangling. 44 | (let ((prog-mode-hook nil)) 45 | (org-babel-tangle) 46 | )) 47 | 48 | ; 仅当本文件是 Emacs 配置目录下的 init.0.org 时,才添加到 after-save-hook 49 | (add-hook 50 | 'org-mode-hook 51 | (lambda () 52 | (when 53 | (equal 54 | (buffer-file-name) 55 | (expand-file-name 56 | (concat 57 | user-emacs-directory 58 | "init.0.org"))) 59 | (add-hook 60 | 'after-save-hook 61 | 'tangle-for-init 62 | nil t)))) 63 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/ftable/README.org: -------------------------------------------------------------------------------- 1 | #+TITLE: ftable.el 2 | 3 | [[https://elpa.gnu.org/packages/ftable.html][https://elpa.gnu.org/packages/ftable.svg]] 4 | 5 | This package provides some convenient commands for filling a table, i.e., adjusting the layout of the table so it can fit in n columns. 6 | 7 | [[./ftable.gif]] 8 | 9 | Commands provided: 10 | 11 | - ftable-fill :: Fill the table at point 12 | - ftable-reformat :: Change the style of the table. For example, from 13 | #+begin_example 14 | ASCII +--+--+ to Unicode ┌──┬──┐ 15 | | | | │ │ │ 16 | +--+--+ └──┴──┘ 17 | #+end_example 18 | 19 | - ftable-edit-cell :: Edit the cell at point 20 | 21 | There are some limitations. Currently ftable doesn’t support tables with compound cells (cells that span multiple rows/columns) because they are more complicated to handle. If the need arises in the future (unlikely), I might improve ftable to handle more complex tables. Also, after filling, any manual line-break in a cell is discarded. 22 | 23 | * Customization 24 | 25 | - ftable-fill-column :: ~fill-column~ for ftable. 26 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/ftable/ftable.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/public/.emacs.d/locext/ftable/ftable.gif -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/good-scroll.el/.dir-locals.el: -------------------------------------------------------------------------------- 1 | ((emacs-lisp-mode . ((indent-tabs-mode . nil)))) 2 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/good-scroll.el/.gitignore: -------------------------------------------------------------------------------- 1 | *.elc 2 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/good-scroll.el/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Benjamin Levy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/good-scroll.el/README.md: -------------------------------------------------------------------------------- 1 | [![MELPA](https://melpa.org/packages/good-scroll-badge.svg)](https://melpa.org/#/good-scroll) 2 | [![Check](https://github.com/io12/good-scroll.el/actions/workflows/check.yml/badge.svg)](https://github.com/io12/good-scroll.el/actions/workflows/check.yml) 3 | 4 | # `good-scroll.el` 5 | 6 | Attempt at good pixel-based smooth scrolling in Emacs 7 | 8 | ## About 9 | 10 | This package implements smooth scrolling by pixel lines. 11 | It attempts to improve upon `pixel-scroll-mode` by adding variable speed. 12 | 13 | ![Demo](./demo.gif) 14 | 15 | ## Setup 16 | 17 | Install and load the package. 18 | Then, enable `good-scroll-mode`. 19 | For example, you can add the following snippet to your config. 20 | 21 | ```lisp 22 | (good-scroll-mode 1) 23 | ``` 24 | 25 | ### Key bindings 26 | 27 | If you want to bind the Page Up and Page Down keys, 28 | you can also add the following: 29 | 30 | ```lisp 31 | (global-set-key [next] #'good-scroll-up-full-screen) 32 | (global-set-key [prior] #'good-scroll-down-full-screen) 33 | ``` 34 | 35 | ## FAQ 36 | 37 | ### How does this work? 38 | 39 | Instead of scroll events directly scrolling the screen, 40 | they update a destination variable. 41 | A timer that runs every `good-scroll-render-rate` seconds 42 | calculates the expected position and actually scrolls the window to it. 43 | To make the window scrolled partially through a line, 44 | `good-scroll` updates the window's 45 | [_vscroll_ (vertical scroll)](https://www.gnu.org/software/emacs/manual/html_node/elisp/Vertical-Scrolling.html) 46 | position. 47 | 48 | ### Why is performance sometimes bad? 49 | 50 | Scrolling sometimes pauses or stutters. 51 | It's unclear _exactly_ why, 52 | but one factor is that Emacs lacks animation support. 53 | Emacs has timers for updating the screen contents, 54 | which is enough for playing simple animated GIF files, 55 | but not enough for video playback or frame-perfect smooth scrolling. 56 | 57 | ### How does this compare to other scrolling packages? 58 | 59 | Other modifications, like 60 | [`smooth-scrolling`](https://github.com/aspiers/smooth-scrolling), 61 | [`smooth-scroll`](https://github.com/k-talo/smooth-scroll.el), 62 | [`sublimity-scroll`](https://github.com/zk-phi/sublimity), 63 | and [`inertial-scroll`](https://github.com/kiwanami/emacs-inertial-scroll) 64 | also aim to improve scrolling in Emacs, 65 | but none of them involve scrolling by pixel lines, only by text lines. 66 | The built-in 67 | [`pixel-scroll`](https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/pixel-scroll.el) 68 | _does_ implement pixel line scrolling, 69 | but, unlike `good-scroll`, does not support dynamic scrolling velocity. 70 | 71 | ### Why is this file written in Markdown and not Org? 72 | 73 | Apparently, GitHub does not yet support rendering 74 | Org links with formatting inside of them. 75 | 76 | https://github.com/novoid/github-orgmode-tests/issues/3 77 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/good-scroll.el/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/public/.emacs.d/locext/good-scroll.el/demo.gif -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/good-scroll.el/good-scroll-linear.el: -------------------------------------------------------------------------------- 1 | ;;; good-scroll-linear.el --- Linear scrolling algorithm -*- lexical-binding: t; -*- 2 | 3 | ;; Copyright (C) 2021 Benjamin Levy - MIT/X11 License 4 | ;; Author: Benjamin Levy 5 | ;; Homepage: https://github.com/io12/good-scroll.el 6 | 7 | ;; Permission is hereby granted, free of charge, to any person obtaining a copy 8 | ;; of this software and associated documentation files (the "Software"), to deal 9 | ;; in the Software without restriction, including without limitation the rights 10 | ;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | ;; copies of the Software, and to permit persons to whom the Software is 12 | ;; furnished to do so, subject to the following conditions: 13 | ;; 14 | ;; The above copyright notice and this permission notice shall be included in all 15 | ;; copies or substantial portions of the Software. 16 | ;; 17 | ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | ;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | ;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | ;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | ;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | ;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | ;; SOFTWARE. 24 | 25 | ;;; Commentary: 26 | 27 | ;; This library implements an algorithm for `good-scroll' 28 | ;; that linearly interpolates the position in pixel lines. 29 | ;; It's older, simpler, and feels less smooth than `good-scroll-bezier'. 30 | ;; Set `good-scroll-algorithm' to `good-scroll-linear' to enable. 31 | 32 | ;;; Code: 33 | 34 | (defun good-scroll-linear () 35 | "Linear scrolling algorithm. 36 | Return the next position in pixel lines. 37 | This works by linearly interpolating position." 38 | (let* ((elapsed (- (float-time) good-scroll-start-time)) 39 | (fraction-done (min 1.0 (/ elapsed good-scroll-duration)))) 40 | (round (- (* fraction-done 41 | (+ good-scroll-traveled good-scroll-destination)) 42 | good-scroll-traveled)))) 43 | 44 | (provide 'good-scroll-linear) 45 | 46 | ;;; good-scroll-linear.el ends here 47 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/iscroll/README.org: -------------------------------------------------------------------------------- 1 | #+TITLE: Iscroll.el 2 | 3 | [[https://melpa.org/#/iscroll][file:https://melpa.org/packages/iscroll-badge.svg]] 4 | 5 | [[https://casouri.github.io/iscroll/demo.gif][Screencast]] 6 | 7 | Gone are the days when images jumps in and out of the window when scrolling! This package provides smooth scrolling over images. 8 | 9 | Due to some technical problems, the code is not merging into Emacs in the near futher. When it finally does merge, this package can retire. 10 | 11 | To use this package: 12 | 13 | #+begin_src 14 | M-x iscroll-mode RET 15 | #+end_src 16 | 17 | This mode remaps mouse scrolling functions and ~next/previous-line~. If you use other commands, you need to adapt them accordingly. See ~iscroll-mode-map~ and ~iscroll-mode~ for some inspiration. 18 | 19 | ~iscroll-mode~ is kind of slow in programming modes, but fast in text modes. So I suggest to only enable it in text modes. 20 | 21 | * Commands 22 | 23 | - iscroll-up 24 | - iscroll-down 25 | - iscroll-next-line 26 | - iscroll-previous-line 27 | 28 | * Evil mode 29 | 30 | Iscroll.el doesn’t work with Evil out-of-the-box. You need to add some boilerplate. 31 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/org-modern/.gitignore: -------------------------------------------------------------------------------- 1 | *-autoloads.el 2 | *-pkg.el 3 | *.elc 4 | *.info 5 | *.texi 6 | *~ 7 | \#*\# 8 | /README-elpa 9 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/org-modern/CHANGELOG.org: -------------------------------------------------------------------------------- 1 | #+title: org-modern.el - Changelog 2 | #+author: Daniel Mendler 3 | #+language: en 4 | 5 | * Development 6 | 7 | - Add support for heading folding indicators. The option ~org-modern-star~ has 8 | been changed to accept the values ~fold~, ~replace~ and ~nil~. 9 | - Add new customization options ~org-modern-replace-stars~ and 10 | ~org-modern-fold-stars~. 11 | - Add ~org-modern-tag-faces~. 12 | - Add colored coded progress bars. The variable ~org-modern-progress~ specifies 13 | the width of the bars. 14 | 15 | * Version 1.2 (2024-03-16) 16 | 17 | - =org-modern-star=, =org-modern-hide-stars=, =org-modern-progress=: Support string 18 | values. 19 | 20 | * Version 1.1 (2023-12-01) 21 | 22 | - Bugfix: Do not use zero line width for box face attribute. Zero line widths 23 | are disallowed in Emacs 30. 24 | 25 | * Version 1.0 (2023-12-01) 26 | 27 | - Bugfix: Remove line/wrap-prefix if fringe is enabled 28 | 29 | * Version 0.10 (2023-07-02) 30 | 31 | - Bugfixes. 32 | - Fix star prettification if =org-indent-mode= is enabled. 33 | - Prettify =filetags=. 34 | 35 | * Version 0.9 (2023-03-12) 36 | 37 | - Improve prettification of stars, such that line movement commands are not 38 | affected negatively. 39 | - Use =natnum= custom types. 40 | - Depend on the Compat library. 41 | 42 | * Version 0.8 (2023-02-15) 43 | 44 | - Start of changelog. 45 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/.elpaignore: -------------------------------------------------------------------------------- 1 | *.png 2 | Makefile 3 | test.org -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/Makefile: -------------------------------------------------------------------------------- 1 | test: 2 | emacs -Q -l ./valign.el --eval \ 3 | '(progn (find-file "./test.org") (valign-mode) (variable-pitch-mode))' 4 | 5 | bar: 6 | emacs -Q -l ./valign.el --eval \ 7 | '(progn (find-file "./test.org") (setq valign-fancy-bar t) (valign-mode) (variable-pitch-mode))' 8 | 9 | indent: 10 | emacs -Q -l ./valign.el --eval \ 11 | '(progn (setq org-startup-indented t) (find-file "./test.org") (valign-mode) (variable-pitch-mode) (goto-char (point-max)))' 12 | 13 | mono: 14 | emacs -Q -l ./valign.el --eval \ 15 | '(progn (find-file "./test.org") (valign-mode))' 16 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/README-CN.org: -------------------------------------------------------------------------------- 1 | #+TITLE: Valign.el 2 | 3 | 这个包能对齐 Org Mode、Markdown和table.el 的表格。它能对齐包含不等宽字体、中日韩字符、图片的表格。valign 不会影响 Org Mode(或 Markdown mode)基于等宽字符的对齐。 4 | 5 | 想要用 valign.el 的话,先加载 valign.el,然后把 ~valign-mode~ 加到 ~org-mode-hook~ 或 ~markdown-mode-hook~ 里即可。 6 | #+begin_src emacs-lisp 7 | (add-hook 'org-mode-hook #'valign-mode) 8 | #+end_src 9 | 10 | [[./default.png]] 11 | 12 | [[./table.el.png]] 13 | 14 | *已知问题:* 15 | 16 | - Markdown Mode 里的隐藏链接依然会占用整个链接的宽度,因为隐藏链接用了 valign 还不支持的 character composition。 17 | - 渲染大型表格(≥100行)速度较慢。 18 | 19 | *注意:* 20 | 21 | 如果想要 valign 对齐 table.el 表格,表格里每个单元格的左侧不能有空格,右侧至少要有一个空格。可以用 [[https://github.com/casouri/ftable][ftable.el]] 自动布局表格成这样。 22 | 23 | * 安装 24 | 25 | 键入如下内容,从 GNU ELPA 获取 valign.el: 26 | #+begin_src 27 | M-x package-install RET valign RET 28 | #+end_src 29 | 30 | * 自定义 31 | 32 | 设置 ~valign-fancy-bar~ 为 ~non-nil~ 的效果如下: 33 | 34 | [[./fancy-bar.png]] 35 | 36 | 仅影响 Org Mode和Markdown 的表格。 37 | 38 | 默认情况下,valign 不会在普通编辑命令之后对齐表格,例如 ~self-insert-command~ 和 ~backward-kill-word~​。如果你不想在某些命令后对齐表格,可以把命令加入 ~valign-not-align-after-list~ 中。 39 | 40 | 因为 valign 性能一般,所以我们不会对齐大于四千个字的表格。你可以修改 ~valign-max-table-size~ 改变这个限制。valign 会把 ~valign-table-fallback~ face 置于这些没有对齐的表格上。 41 | 42 | 其他自定义选项: 43 | - ~valign-signal-parse-error~: 设为 non-nil,valign 遇到语法分析错误(parse error)时会报错提示。 44 | - ~valign-lighter~: mode-line 里显示的标识。 45 | - ~valign-box-charset-alist~: 用来定义 table.el 表格,比如 Unicode/ASCII 表格. 46 | 47 | * 如果函数 advice 让你浑身发痒 48 | 49 | ~valign-mode~ 会加一些 advice,即使你关闭了 ~valign-mode~​,这些 advice 也不会消失 ,因为函数advice是全局起效,而 ~valign-mode~ 是局部起效。 如果你想删掉这些 advice,请用 ~valign-remove-advice~ 。 这时候如果有 buffer 里还开着 ~valign-mode~​,这些 buffer 里的 valign 将无法正常工作。 50 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/README.org: -------------------------------------------------------------------------------- 1 | #+TITLE: Valign.el 2 | 3 | [[file:README-CN.org][中文 README]] 4 | 5 | This package provides visual alignment for Org Mode, Markdown and table.el tables on GUI Emacs. It can properly align tables containing variable-pitch font, CJK characters and images. Meanwhile, the text-based alignment generated by Org mode (or Markdown mode) is left untouched. 6 | 7 | To use this package, load it and add ~valign-mode~ to ~org-mode-hook~ or ~markdown-mode-hook~: 8 | #+begin_src emacs-lisp 9 | (add-hook 'org-mode-hook #'valign-mode) 10 | #+end_src 11 | 12 | [[./default.png]] 13 | 14 | [[./table.el.png]] 15 | 16 | *Known problems:* 17 | - Hidden links in markdown still occupy the full length of the link, because it uses character composition which we don’t support now. 18 | - Rendering large tables (≥100 lines) is laggy. 19 | 20 | *Note:* 21 | 22 | For table.el tables to work with valign, each cell has to have at least one space on the right and no space on the left. You can use [[https://github.com/casouri/ftable][ftable.el]] to auto-layout the table for you. 23 | 24 | * Install 25 | 26 | You can obtain valign.el from GNU ELPA by typing: 27 | #+begin_src 28 | M-x package-install RET valign RET 29 | #+end_src 30 | 31 | * Customization 32 | Set ~valign-fancy-bar~ to ~non-nil~: 33 | 34 | [[./fancy-bar.png]] 35 | 36 | This only affects Org Mode and Markdown tables. 37 | 38 | By default, valign doesn’t re-align the table after normal edit commands like ~self-insert-command~ and ~backward-kill-word~. If you want valign to not re-align the table after a certain command, add that command to ~valign-not-align-after-list~. 39 | 40 | Because valign isn’t particularly efficient, it doesn’t align tables larger than 4000 characters in size. If you want to change that behavior, customize ~valign-max-table-size~. Valign puts ~valign-table-fallback~ face on those large tables. 41 | 42 | Other (less interesting) customization: 43 | - ~valign-signal-parse-error~: Set to non-nil to be informed of parse errors. 44 | - ~valign-lighter~: Lighter in mode-line. 45 | - ~valign-box-charset-alist~: Used for defining table.el tables, e.g., Unicode/ASCII tables. 46 | 47 | * If function advice makes you itch 48 | ~valign-mode~ adds advice and doesn’t remove them even if you close ~valign-mode~ because function advice is global and ~valign-mode~ is local. If you want to remove the advice, use ~valign-remove-advice~. If you run this while some buffer still has ~valign-mode~ on, they break. 49 | -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/public/.emacs.d/locext/valign/default.png -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/fancy-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/public/.emacs.d/locext/valign/fancy-bar.png -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/single-column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/public/.emacs.d/locext/valign/single-column.png -------------------------------------------------------------------------------- /layer-home/public/.emacs.d/locext/valign/table.el.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/public/.emacs.d/locext/valign/table.el.png -------------------------------------------------------------------------------- /layer-home/public/.gtkrc-2.0: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT! This file will be overwritten by nwg-look. 2 | # Any customization should be done in ~/.gtkrc-2.0.mine instead. 3 | 4 | gtk-theme-name="sweet" 5 | gtk-icon-theme-name="Papirus-Dark" 6 | gtk-font-name="Source Code Pro Regular 11" 7 | gtk-cursor-theme-name="Sweet-cursors" 8 | gtk-cursor-theme-size=24 9 | gtk-toolbar-style=GTK_TOOLBAR_ICONS 10 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 11 | gtk-button-images=0 12 | gtk-menu-images=0 13 | gtk-enable-event-sounds=1 14 | gtk-enable-input-feedback-sounds=0 15 | gtk-xft-antialias=1 16 | gtk-xft-hinting=1 17 | gtk-xft-hintstyle="hintfull" 18 | gtk-xft-rgba="rgb" 19 | -------------------------------------------------------------------------------- /layer-home/public/.xmodmap: -------------------------------------------------------------------------------- 1 | ! 2 | ! Swap Caps_Lock and Control_L 3 | ! 4 | remove Lock = Caps_Lock 5 | remove Control = Control_L 6 | keysym Control_L = Caps_Lock 7 | keysym Caps_Lock = Control_L 8 | add Lock = Caps_Lock 9 | add Control = Control_L 10 | -------------------------------------------------------------------------------- /layer-home/skel/.cache/keepassxc/keepassxc.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | LastOpenedDatabases=@Invalid() 3 | 4 | [Browser] 5 | CustomBrowserLocation= 6 | CustomBrowserType=2 7 | 8 | [GUI] 9 | 10 | [SSHAgent] 11 | AuthSockOverride= 12 | SecurityKeyProviderOverride= 13 | -------------------------------------------------------------------------------- /layer-home/skel/.config/QQ/crash_files: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.config/QQ/crash_files -------------------------------------------------------------------------------- /layer-home/skel/.config/Tilix.dconf: -------------------------------------------------------------------------------- 1 | [/] 2 | prompt-on-close=true 3 | prompt-on-new-session=false 4 | quake-specific-monitor=0 5 | theme-variant='system' 6 | use-tabs=true 7 | 8 | [keybindings] 9 | terminal-zoom-in='equal' 10 | 11 | [profiles/2b7c4080-0ddd-46c5-8f23-563fd3ba789d] 12 | background-color='#2E2E34344040' 13 | background-transparency-percent=33 14 | badge-color='#AC7EA8' 15 | badge-color-set=false 16 | bold-color-set=false 17 | cursor-colors-set=false 18 | font='LXGW WenKai Mono 14' 19 | foreground-color='#DEDEDDDDDADA' 20 | highlight-colors-set=false 21 | palette=['#000000', '#A5A51D1D2D2D', '#31316A6A2929', '#79795F5F1E1E', '#1C1C7171D8D8', '#616135358383', '#00AAAA', '#9A9A99999696', '#3D3D38384646', '#FF5454', '#2E2EC2C27E7E', '#E5E5A5A50A0A', '#6262A0A0EAEA', '#91914141ACAC', '#54FFFF', '#DEDEDDDDDADA'] 22 | use-system-font=false 23 | use-theme-colors=false 24 | visible-name='默认' 25 | -------------------------------------------------------------------------------- /layer-home/skel/.config/autostart/originalterminal.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Version=0.1.0 4 | Type=Application 5 | Name=originalterminal 6 | Comment=Show a terminal as what original archiso did. 7 | Exec=tilix --maximize -e arcnot 8 | OnlyShowIn=XFCE; 9 | RunHook=0 10 | StartupNotify=false 11 | Terminal=false 12 | Hidden=false 13 | 14 | -------------------------------------------------------------------------------- /layer-home/skel/.config/autostart/sufirefoxd.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Version=0.1.0 4 | Type=Application 5 | Name=sufirefoxd 6 | Comment=Run a daemon that detect temp url file to open with firefox as current user. 7 | Exec=sufirefoxd 8 | OnlyShowIn=XFCE; 9 | RunHook=0 10 | StartupNotify=false 11 | Terminal=false 12 | Hidden=false 13 | 14 | -------------------------------------------------------------------------------- /layer-home/skel/.config/autostart/vmware-user.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Hidden=true 3 | 4 | -------------------------------------------------------------------------------- /layer-home/skel/.config/fcitx5/conf/chttrans.conf: -------------------------------------------------------------------------------- 1 | # Translate engine 2 | Engine=OpenCC 3 | # Enabled Input Methods 4 | EnabledIM= 5 | # OpenCC profile for Simplified to Traditional 6 | OpenCCS2TProfile= 7 | # OpenCC profile for Traditional to Simplified 8 | OpenCCT2SProfile= 9 | 10 | [Hotkey] 11 | 0=Control+Shift+F 12 | 13 | -------------------------------------------------------------------------------- /layer-home/skel/.config/fcitx5/conf/classicui.conf: -------------------------------------------------------------------------------- 1 | # Vertical Candidate List 2 | Vertical Candidate List=False 3 | # Use Per Screen DPI 4 | PerScreenDPI=True 5 | # Use mouse wheel to go to prev or next page 6 | WheelForPaging=True 7 | # Font 8 | Font="Source Code Pro Regular 14" 9 | # Menu Font 10 | MenuFont="Source Code Pro Regular 10" 11 | # Tray Font 12 | TrayFont="Source Code Pro Regular 10" 13 | # Tray Label Outline Color 14 | TrayOutlineColor=#000000 15 | # Tray Label Text Color 16 | TrayTextColor=#ffffff 17 | # Prefer Text Icon 18 | PreferTextIcon=False 19 | # Show Layout Name In Icon 20 | ShowLayoutNameInIcon=True 21 | # Use input method language to display text 22 | UseInputMethodLangaugeToDisplayText=True 23 | # Theme 24 | Theme=Nord-Dark 25 | # Force font DPI on Wayland 26 | ForceWaylandDPI=0 27 | 28 | -------------------------------------------------------------------------------- /layer-home/skel/.config/fcitx5/conf/notifications.conf: -------------------------------------------------------------------------------- 1 | # Hidden Notifications 2 | HiddenNotifications= 3 | 4 | -------------------------------------------------------------------------------- /layer-home/skel/.config/fcitx5/conf/pinyin.conf: -------------------------------------------------------------------------------- 1 | # Shuangpin Profile 2 | ShuangpinProfile=Ziranma 3 | # Show current shuangpin mode 4 | ShowShuangpinMode=True 5 | # Page size 6 | PageSize=7 7 | # Enable Spell 8 | SpellEnabled=True 9 | # Enable Emoji 10 | EmojiEnabled=True 11 | # Enable Chaizi 12 | ChaiziEnabled=True 13 | # Enable Characters in Unicode CJK Extension B 14 | ExtBEnabled=True 15 | # Enable Cloud Pinyin 16 | CloudPinyinEnabled=False 17 | # Cloud Pinyin Index 18 | CloudPinyinIndex=2 19 | # Show preedit within application 20 | PreeditInApplication=True 21 | # Fix embedded preedit cursor at the beginning of the preedit 22 | PreeditCursorPositionAtBeginning=True 23 | # Show complete pinyin in preedit 24 | PinyinInPreedit=False 25 | # Enable Prediction 26 | Prediction=False 27 | # Prediction Size 28 | PredictionSize=10 29 | # Action when switching input method 30 | SwitchInputMethodBehavior="Commit current preedit" 31 | # Select 2nd Candidate 32 | SecondCandidate= 33 | # Select 3rd Candidate 34 | ThirdCandidate= 35 | # Use Keypad as Selection key 36 | UseKeypadAsSelection=False 37 | # Use BackSpace to cancel the selection 38 | BackSpaceToUnselect=True 39 | # Number of Sentences 40 | Number of sentence=2 41 | # Prompt long word length when input length over (0 for disable) 42 | LongWordLengthLimit=4 43 | # Key to trigger quickphrase 44 | QuickPhraseKey=semicolon 45 | # Use V to trigger quickphrase 46 | VAsQuickphrase=True 47 | # FirstRun 48 | FirstRun=False 49 | 50 | [ForgetWord] 51 | 0=Control+7 52 | 53 | [PrevPage] 54 | 0=minus 55 | 1=Up 56 | 2=KP_Up 57 | 58 | [NextPage] 59 | 0=equal 60 | 1=Down 61 | 2=KP_Down 62 | 63 | [PrevCandidate] 64 | 0=Shift+Tab 65 | 66 | [NextCandidate] 67 | 0=Tab 68 | 69 | [ChooseCharFromPhrase] 70 | 0=bracketleft 71 | 1=bracketright 72 | 73 | [FilterByStroke] 74 | 0=grave 75 | 76 | [QuickPhrase trigger] 77 | 0=www. 78 | 1=ftp. 79 | 2=http: 80 | 3=mail. 81 | 4=bbs. 82 | 5=forum. 83 | 6=https: 84 | 7=ftp: 85 | 8=telnet: 86 | 9=mailto: 87 | 88 | [Fuzzy] 89 | # ue -> ve 90 | VE_UE=True 91 | # Common Typo 92 | NG_GN=True 93 | # Inner Segment (xian -> xi'an) 94 | Inner=True 95 | # Inner Segment for Short Pinyin (qie -> qi'e) 96 | InnerShort=True 97 | # Match partial finals (e -> en, eng, ei) 98 | PartialFinal=True 99 | # Match partial shuangpin if input length is longer than 4 100 | PartialSp=False 101 | # u <-> v 102 | V_U=False 103 | # an <-> ang 104 | AN_ANG=False 105 | # en <-> eng 106 | EN_ENG=False 107 | # ian <-> iang 108 | IAN_IANG=False 109 | # in <-> ing 110 | IN_ING=False 111 | # u <-> ou 112 | U_OU=False 113 | # uan <-> uang 114 | UAN_UANG=False 115 | # c <-> ch 116 | C_CH=False 117 | # f <-> h 118 | F_H=False 119 | # l <-> n 120 | L_N=False 121 | # s <-> sh 122 | S_SH=False 123 | # z <-> zh 124 | Z_ZH=False 125 | 126 | -------------------------------------------------------------------------------- /layer-home/skel/.config/fcitx5/conf/punctuation.conf: -------------------------------------------------------------------------------- 1 | # Half width punctuation after latin letter or number 2 | HalfWidthPuncAfterLetterOrNumber=True 3 | # Type paired punctuations together (e.g. Quote) 4 | TypePairedPunctuationsTogether=False 5 | # Enabled 6 | Enabled=True 7 | 8 | [Hotkey] 9 | 0=Control+period 10 | 11 | -------------------------------------------------------------------------------- /layer-home/skel/.config/fcitx5/profile: -------------------------------------------------------------------------------- 1 | [Groups/0] 2 | # Group Name 3 | Name=Default 4 | # Layout 5 | Default Layout=us 6 | # Default Input Method 7 | DefaultIM=rime 8 | 9 | [Groups/0/Items/0] 10 | # Name 11 | Name=keyboard-us 12 | # Layout 13 | Layout= 14 | 15 | [Groups/0/Items/1] 16 | # Name 17 | Name=rime 18 | # Layout 19 | Layout= 20 | 21 | [GroupOrder] 22 | 0=Default 23 | 24 | -------------------------------------------------------------------------------- /layer-home/skel/.config/keepassxc/keepassxc.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | ConfigVersion=2 3 | 4 | [Browser] 5 | CustomProxyLocation= 6 | Enabled=true 7 | 8 | [FdoSecrets] 9 | Enabled=true 10 | 11 | [GUI] 12 | ApplicationTheme=dark 13 | Language=zh_CN 14 | TrayIconAppearance=monochrome-light 15 | 16 | [KeeShare] 17 | 18 | [PasswordGenerator] 19 | -------------------------------------------------------------------------------- /layer-home/skel/.config/mimeapps.list: -------------------------------------------------------------------------------- 1 | [Default Applications] 2 | inode/directory=xfce4-file-manager.desktop 3 | x-scheme-handler/trash=xfce4-file-manager.desktop 4 | 5 | [Added Associations] 6 | inode/directory=xfce4-file-manager.desktop; 7 | x-scheme-handler/trash=xfce4-file-manager.desktop; 8 | 9 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/desktop/accels.scm: -------------------------------------------------------------------------------- 1 | ; xfdesktop GtkAccelMap rc-file -*- scheme -*- 2 | ; this file is an automated accelerator map dump 3 | ; 4 | ; (gtk_accel_path "/XfceDesktop/primary-menu-2" "Menu") 5 | ; (gtk_accel_path "/XfdesktopFileIconManager/open-with-other" "") 6 | ; (gtk_accel_path "/XfdesktopIconView/activate-3" "Return") 7 | ; (gtk_accel_path "/XfdesktopFileIconManager/properties-3" "KP_Enter") 8 | ; (gtk_accel_path "/XfdesktopFileIconManager/trash" "Delete") 9 | ; (gtk_accel_path "/XfceDesktop/next-background" "") 10 | ; (gtk_accel_path "/XfdesktopFileIconManager/cut-2" "") 11 | ; (gtk_accel_path "/XfdesktopFileIconManager/cut" "x") 12 | ; (gtk_accel_path "/XfdesktopIconView/unselect-all" "Escape") 13 | ; (gtk_accel_path "/XfdesktopFileIconManager/copy-2" "Insert") 14 | ; (gtk_accel_path "/XfdesktopIconView/activate" "space") 15 | ; (gtk_accel_path "/XfdesktopIconView/activate-2" "KP_Space") 16 | ; (gtk_accel_path "/XfdesktopFileIconManager/open" "o") 17 | ; (gtk_accel_path "/XfdesktopIconView/select-all" "a") 18 | ; (gtk_accel_path "/XfdesktopFileIconManager/properties-2" "ISO_Enter") 19 | ; (gtk_accel_path "/XfdesktopFileIconManager/empty-trash" "") 20 | ; (gtk_accel_path "/XfdesktopFileIconManager/open-trash" "") 21 | ; (gtk_accel_path "/XfdesktopFileIconManager/trash-3" "") 22 | ; (gtk_accel_path "/XfdesktopFileIconManager/properties" "Return") 23 | ; (gtk_accel_path "/XfdesktopFileIconManager/copy" "c") 24 | ; (gtk_accel_path "/XfceDesktop/reload-2" "Reload") 25 | ; (gtk_accel_path "/XfdesktopFileIconManager/delete-3" "") 26 | ; (gtk_accel_path "/XfdesktopFileIconManager/trash-2" "KP_Delete") 27 | ; (gtk_accel_path "/XfceDesktop/reload" "r") 28 | ; (gtk_accel_path "/XfdesktopFileIconManager/paste-into-folder" "") 29 | ; (gtk_accel_path "/XfdesktopFileIconManager/paste-2" "Insert") 30 | ; (gtk_accel_path "/XfceDesktop/secondary-menu" "F10") 31 | ; (gtk_accel_path "/XfdesktopFileIconManager/delete-2" "KP_Delete") 32 | ; (gtk_accel_path "/XfdesktopIconView/toggle-cursor-2" "KP_Space") 33 | ; (gtk_accel_path "/XfceDesktop/reload-1" "F5") 34 | ; (gtk_accel_path "/XfdesktopFileIconManager/open-filesystem" "") 35 | ; (gtk_accel_path "/XfdesktopIconView/activate-5" "KP_Enter") 36 | ; (gtk_accel_path "/XfceDesktop/primary-menu" "F10") 37 | ; (gtk_accel_path "/XfdesktopFileIconManager/create-document" "") 38 | ; (gtk_accel_path "/XfdesktopFileIconManager/create-folder" "n") 39 | ; (gtk_accel_path "/XfdesktopIconView/toggle-cursor" "space") 40 | ; (gtk_accel_path "/XfdesktopFileIconManager/toggle-show-hidden" "h") 41 | ; (gtk_accel_path "/XfdesktopFileIconManager/open-home" "Home") 42 | ; (gtk_accel_path "/XfdesktopIconView/activate-4" "ISO_Enter") 43 | ; (gtk_accel_path "/XfdesktopFileIconManager/delete" "Delete") 44 | ; (gtk_accel_path "/XfdesktopFileIconManager/paste" "v") 45 | ; (gtk_accel_path "/XfdesktopFileIconManager/rename" "F2") 46 | ; (gtk_accel_path "/XfdesktopIconView/arrange-icons" "") 47 | ; (gtk_accel_path "/XfceDesktop/secondary-menu-2" "Menu") 48 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/desktop/icons.screen0.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE WHILE XFDESKTOP IS RUNNING 3 | # 4 | configs: 5 | - level: 0 6 | monitors: 7 | - id: "e4fe321c9f902dd81304f0eb7602375a81d48342" 8 | display_name: "Virtual1" 9 | geometry: 10 | x: 0 11 | y: 0 12 | width: 1788 13 | height: 1088 14 | icons: {} 15 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/helpers.rc: -------------------------------------------------------------------------------- 1 | FileManager=custom-FileManager 2 | TerminalEmulator=custom-TerminalEmulator 3 | 4 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/battery-39.rc: -------------------------------------------------------------------------------- 1 | display_label=false 2 | display_icon=true 3 | display_power=true 4 | display_percentage=true 5 | display_bar=true 6 | display_time=true 7 | tooltip_display_percentage=true 8 | tooltip_display_time=true 9 | low_percentage=10 10 | critical_percentage=5 11 | action_on_low=0 12 | action_on_critical=0 13 | hide_when_full=187054336 14 | colorA=rgb(136,136,255) 15 | colorH=rgb(0,255,0) 16 | colorL=rgb(255,255,0) 17 | colorC=rgb(255,0,0) 18 | command_on_low= 19 | command_on_critical= 20 | 21 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/launcher-11/168402303610.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Onboard 3 | Name[zh_CN]=Onboard 4 | GenericName=Onboard onscreen keyboard 5 | GenericName[zh_CN]=Onboard 屏幕键盘 6 | Comment=Flexible onscreen keyboard 7 | Exec=onboard 8 | Terminal=false 9 | Type=Application 10 | Categories=Utility;Accessibility; 11 | MimeType=application/x-onboard; 12 | Icon=onboard 13 | X-Ubuntu-Gettext-Domain=onboard 14 | X-XFCE-Source=file:///usr/share/applications/onboard.desktop 15 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/launcher-17/16839478791.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Exec=exo-open --launch TerminalEmulator 5 | Icon=org.xfce.terminalemulator 6 | StartupNotify=true 7 | Terminal=false 8 | Categories=Utility;X-XFCE;X-Xfce-Toplevel; 9 | OnlyShowIn=XFCE; 10 | X-AppStream-Ignore=True 11 | Name=Terminal Emulator 12 | Name[zh_CN]=终端模拟器 13 | Comment=Use the command line 14 | Comment[zh_CN]=使用命令行 15 | X-XFCE-Source=file:///usr/share/applications/xfce4-terminal-emulator.desktop 16 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/launcher-18/16839478792.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Exec=exo-open --launch FileManager %u 5 | Icon=org.xfce.filemanager 6 | StartupNotify=true 7 | Terminal=false 8 | Categories=Utility;X-XFCE;X-Xfce-Toplevel; 9 | OnlyShowIn=XFCE; 10 | X-XFCE-MimeType=inode/directory;x-scheme-handler/trash; 11 | X-AppStream-Ignore=True 12 | Name=File Manager 13 | Name[zh_CN]=文件管理器 14 | Comment=Browse the file system 15 | Comment[zh_CN]=浏览文件系统 16 | X-XFCE-Source=file:///usr/share/applications/xfce4-file-manager.desktop 17 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/launcher-20/16839478794.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Exec=xfce4-appfinder 4 | Icon=org.xfce.appfinder 5 | StartupNotify=true 6 | Terminal=false 7 | Type=Application 8 | Categories=Utility;X-XFCE; 9 | Name=Application Finder 10 | Name[zh_CN]=应用程序查找器 11 | Comment=Find and launch applications installed on your system 12 | Comment[zh_CN]=查找和启动在您系统上安装的应用程序 13 | Keywords=program;applications;bookmarks; 14 | Keywords[zh_CN]=program;applications;bookmarks;程序;应用;书签; 15 | X-XFCE-Source=file:///usr/share/applications/xfce4-appfinder.desktop 16 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/launcher-8/16840217039.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Exec=exo-open --launch WebBrowser %u 5 | Icon=org.xfce.webbrowser 6 | StartupNotify=true 7 | Terminal=false 8 | Categories=Network;X-XFCE;X-Xfce-Toplevel; 9 | OnlyShowIn=XFCE; 10 | X-XFCE-MimeType=x-scheme-handler/http;x-scheme-handler/https; 11 | X-AppStream-Ignore=True 12 | Name=Web Browser 13 | Name[zh_CN]=网络浏览器 14 | Comment=Browse the web 15 | Comment[zh_CN]=浏览网络 16 | X-XFCE-Source=file:///usr/share/applications/xfce4-web-browser.desktop 17 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/panel/screenshooter-14.rc: -------------------------------------------------------------------------------- 1 | app=ristretto 2 | custom_action_command=none 3 | last_user= 4 | last_extension=png 5 | enable_imgur_upload=true 6 | show_in_folder=false 7 | screenshot_dir=file:/home/archer 8 | action=4 9 | delay=0 10 | region=3 11 | show_mouse=0 12 | show_border=1 13 | 14 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /layer-home/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /layer-home/skel/.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set default-bg "rgba(33, 44, 55, 0.4)" 2 | set recolor-lightcolor "rgba(33, 44, 55, 0.5)" 3 | set recolor-darkcolor "rgba(255, 255, 255, 1.0)" 4 | set recolor true 5 | set selection-clipboard clipboard 6 | set font "monospace normal 18" -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/bopomofo.prism.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.local/share/fcitx5/rime/build/bopomofo.prism.bin -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/bopomofo_tw.prism.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.local/share/fcitx5/rime/build/bopomofo_tw.prism.bin -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/cangjie5.prism.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.local/share/fcitx5/rime/build/cangjie5.prism.bin -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/cangjie5.reverse.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.local/share/fcitx5/rime/build/cangjie5.reverse.bin -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/cangjie5.table.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.local/share/fcitx5/rime/build/cangjie5.table.bin -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/fcitx5.yaml: -------------------------------------------------------------------------------- 1 | __build_info: 2 | rime_version: 1.8.5 3 | timestamps: 4 | fcitx5: 1678653453 5 | fcitx5.custom: 0 6 | app_options: 7 | {} 8 | config_version: 0.22 -------------------------------------------------------------------------------- /layer-home/skel/.local/share/fcitx5/rime/build/luna_pinyin.prism.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.local/share/fcitx5/rime/build/luna_pinyin.prism.bin -------------------------------------------------------------------------------- /layer-home/skel/.local/share/nwg-look/gsettings: -------------------------------------------------------------------------------- 1 | # Generated by nwg-look, do not edit this file. 2 | gtk-theme=sweet 3 | icon-theme=Papirus-Dark 4 | font-name=Source Code Pro Regular 11 5 | cursor-theme=Sweet-cursors 6 | cursor-size=24 7 | toolbar-style=both-horiz 8 | toolbar-icons-size=large 9 | font-hinting=full 10 | font-antialiasing=grayscale 11 | font-rgba-order=rgb 12 | text-scaling-factor=1.0 13 | color-scheme=default 14 | event-sounds=true 15 | input-feedback-sounds=false 16 | -------------------------------------------------------------------------------- /layer-home/skel/.local/share/xfce4/helpers/custom-FileManager.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Version=1.0 4 | Encoding=UTF-8 5 | Type=X-XFCE-Helper 6 | X-XFCE-Category=FileManager 7 | X-XFCE-CommandsWithParameter=/usr/bin/thunar "%s" 8 | Icon=thunar 9 | Name=thunar 10 | X-XFCE-Commands=/usr/bin/thunar 11 | 12 | -------------------------------------------------------------------------------- /layer-home/skel/.local/share/xfce4/helpers/custom-TerminalEmulator.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Version=1.0 4 | Encoding=UTF-8 5 | Type=X-XFCE-Helper 6 | X-XFCE-Category=TerminalEmulator 7 | X-XFCE-CommandsWithParameter=/usr/bin/tilix "%s" 8 | Icon=tilix 9 | Name=tilix 10 | X-XFCE-Commands=/usr/bin/tilix 11 | 12 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/Crash Reports/InstallTime20240625011508: -------------------------------------------------------------------------------- 1 | 1719920963 -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/.parentlock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/.parentlock -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/ExperimentStoreData.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/activity-stream.weather_feed.json: -------------------------------------------------------------------------------- 1 | {"weather":{}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/addonStartup.json.lz4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/addonStartup.json.lz4 -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/bounce-tracking-protection.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/bounce-tracking-protection.sqlite -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/broadcast-listeners.json: -------------------------------------------------------------------------------- 1 | {"version":1,"listeners":{"remote-settings/monitor_changes":{"version":"\"1732539704876\"","sourceInfo":{"moduleURI":"resource://services-settings/remote-settings.sys.mjs","symbolName":"remoteSettingsBroadcastHandler"}}}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/cert9.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/cert9.db -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/chrome/userChrome.css: -------------------------------------------------------------------------------- 1 | notification-message[value="drmContentDisabled"] { 2 | display: none !important; 3 | } 4 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/compatibility.ini: -------------------------------------------------------------------------------- 1 | [Compatibility] 2 | LastVersion=132.0.2_20241112225620/20241112225620 3 | LastOSABI=Linux_x86_64-gcc3 4 | LastPlatformDir=/usr/lib/firefox 5 | LastAppDir=/usr/lib/firefox/browser 6 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/containers.json: -------------------------------------------------------------------------------- 1 | {"version":5,"lastUserContextId":5,"identities":[{"icon":"fingerprint","color":"blue","public":true,"userContextId":1,"l10nId":"user-context-personal"},{"icon":"briefcase","color":"orange","public":true,"userContextId":2,"l10nId":"user-context-work"},{"icon":"dollar","color":"green","public":true,"userContextId":3,"l10nId":"user-context-banking"},{"icon":"cart","color":"pink","public":true,"userContextId":4,"l10nId":"user-context-shopping"},{"public":false,"icon":"","color":"","name":"userContextIdInternal.thumbnail","userContextId":5},{"userContextId":4294967295,"public":false,"icon":"","color":"","name":"userContextIdInternal.webextStorageLocal"}]} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/domain_to_categories.sqlite-journal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/domain_to_categories.sqlite-journal -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/enumerate_devices.txt: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extension-preferences.json: -------------------------------------------------------------------------------- 1 | {"formautofill@mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"pictureinpicture@mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"screenshots@mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"webcompat@mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"default-theme@mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed"],"origins":[]},"addons-search-detection@mozilla.com":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"google@search.mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"wikipedia@search.mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"baidu@search.mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"bing@search.mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"ddg@search.mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"addons-restricted-domains@mozilla.com":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"{531906d3-e22f-4a6c-a102-8057b88a1a63}":{"permissions":["devtools"],"origins":[]},"amazondotcn@search.mozilla.org":{"permissions":["internal:svgContextPropertiesAllowed","internal:privateBrowsingAllowed"],"origins":[]},"firefox-compact-light@mozilla.org":{"permissions":["internal:privateBrowsingAllowed"],"origins":[]}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extension-settings.json: -------------------------------------------------------------------------------- 1 | {"version":3,"url_overrides":{},"prefs":{"privacy.containers":{"initialValue":{},"precedenceList":[{"id":"{3c078156-979c-498b-8990-85f7987dd929}","installDate":1697254230826,"value":"{3c078156-979c-498b-8990-85f7987dd929}","enabled":true}]},"openBookmarksInNewTabs":{"initialValue":{},"precedenceList":[{"id":"{02503e58-2fea-4dc4-893b-d35e36b92437}","installDate":1698075270530,"value":true,"enabled":true}]}},"homepageNotification":{},"tabHideNotification":{},"default_search":{},"newTabNotification":{},"commands":{}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/ArchAur@archlinux.org.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/ArchAur@archlinux.org.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/ArchForumK@archlinux.org.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/ArchForumK@archlinux.org.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/ArchPkgs@archlinux.org.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/ArchPkgs@archlinux.org.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/addon@darkreader.org.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/addon@darkreader.org.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/cliget@zaidabdulla.com.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/cliget@zaidabdulla.com.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/headereditor-amo@addon.firefoxcn.net.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/headereditor-amo@addon.firefoxcn.net.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/langpack-zh-CN@firefox.mozilla.org.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/langpack-zh-CN@firefox.mozilla.org.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/offline-qr-code@rugk.github.io.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/offline-qr-code@rugk.github.io.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/vimium-c@gdh1995.cn.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/vimium-c@gdh1995.cn.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{02503e58-2fea-4dc4-893b-d35e36b92437}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{02503e58-2fea-4dc4-893b-d35e36b92437}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{3c078156-979c-498b-8990-85f7987dd929}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{3c078156-979c-498b-8990-85f7987dd929}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{4853d046-c5a3-436b-bc36-220fd935ee1d}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{4853d046-c5a3-436b-bc36-220fd935ee1d}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{531906d3-e22f-4a6c-a102-8057b88a1a63}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{531906d3-e22f-4a6c-a102-8057b88a1a63}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{87578d5d-3527-4431-879d-12c33f7d2bbc}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{87578d5d-3527-4431-879d-12c33f7d2bbc}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{9fd56529-f621-4820-8128-f0bbbdbd8a73}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{9fd56529-f621-4820-8128-f0bbbdbd8a73}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{aecec67f-0d10-4fa7-b7c7-609a2db280cf}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{aecec67f-0d10-4fa7-b7c7-609a2db280cf}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{af37054b-3ace-46a2-ac59-709e4412bec6}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{af37054b-3ace-46a2-ac59-709e4412bec6}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{bc21b9a1-3ad6-4b00-bca4-ef5b7e21253b}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{bc21b9a1-3ad6-4b00-bca4-ef5b7e21253b}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{c6bfcebc-2a5f-47eb-9c55-9b36ee4a38db}.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/extensions/{c6bfcebc-2a5f-47eb-9c55-9b36ee4a38db}.xpi -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/favicons.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/favicons.sqlite -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/gmp-gmpopenh264/2.3.2/gmpopenh264.info: -------------------------------------------------------------------------------- 1 | Name: gmpopenh264 2 | Description: GMP Plugin for OpenH264. 3 | Version: 2.3.2 4 | APIs: encode-video[h264], decode-video[h264] 5 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/gmp-gmpopenh264/2.3.2/libgmpopenh264.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/gmp-gmpopenh264/2.3.2/libgmpopenh264.so -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/handlers.json: -------------------------------------------------------------------------------- 1 | {"defaultHandlersVersion":{},"mimeTypes":{"application/pdf":{"action":4,"extensions":["pdf"]},"image/webp":{"action":3,"extensions":["webp"]},"image/avif":{"action":3,"extensions":["avif"]}},"schemes":{"mailto":{"stubEntry":true,"handlers":[null,{"name":"Gmail","uriTemplate":"https://mail.google.com/mail/?extsrc=mailto&url=%s"}]}},"isDownloadsImprovementsAlreadyMigrated":true,"isSVGXMLAlreadyMigrated":true} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/lock: -------------------------------------------------------------------------------- 1 | 127.0.0.1:+60333 -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/pkcs11.txt: -------------------------------------------------------------------------------- 1 | library= 2 | name=NSS Internal PKCS #11 Module 3 | parameters=configdir='sql:/home/archer/.mozilla/firefox/fawis2kz.default-release' certPrefix='' keyPrefix='' secmod='secmod.db' flags=optimizeSpace updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' 4 | NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30}) 5 | 6 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/places.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/places.sqlite -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/places.sqlite-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/places.sqlite-wal -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/protections.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/protections.sqlite -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/search.json.mozlz4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/search.json.mozlz4 -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/security_state/data.safe.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/security_state/data.safe.bin -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/serviceworker.txt: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/sessionCheckpoints.json: -------------------------------------------------------------------------------- 1 | {"profile-after-change":true,"final-ui-startup":true,"sessionstore-windows-restored":true,"quit-application-granted":true,"quit-application":true,"sessionstore-final-state-write-complete":true,"profile-change-net-teardown":true,"profile-change-teardown":true,"profile-before-change":true} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/settings/data.safe.bin: -------------------------------------------------------------------------------- 1 |  synchistory 2 | v1-settings-sync 1706522671130B9{"timestamp":1706522671130,"status":"success","infos":{}}v1-settings-sync 1706695152746B9{"timestamp":1706695152746,"status":"success","infos":{}}v1-settings-sync 1709258229742B9{"timestamp":1709258229742,"status":"success","infos":{}}v1-settings-sync 1709530664323B9{"timestamp":1709530664323,"status":"success","infos":{}}v1-settings-sync 1711943829949B9{"timestamp":1711943829949,"status":"success","infos":{}}v1-settings-sync 1713747432327B9{"timestamp":1713747432327,"status":"success","infos":{}}v1-settings-sync 1714514234071B9{"timestamp":1714514234071,"status":"success","infos":{}}v1-settings-sync 1719914231096B9{"timestamp":1719914231096,"status":"success","infos":{}}v1-settings-sync 1722481029106B9{"timestamp":1722481029106,"status":"success","infos":{}}v1-settings-sync 1732539704876B9{"timestamp":1732539704876,"status":"success","infos":{}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/shield-preference-experiments.json: -------------------------------------------------------------------------------- 1 | {"experiments":{}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/storage-sync-v2.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/storage-sync-v2.sqlite -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/storage-sync-v2.sqlite-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/storage-sync-v2.sqlite-wal -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/storage.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-home/skel/.mozilla/firefox/fawis2kz.default-release/storage.sqlite -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/times.json: -------------------------------------------------------------------------------- 1 | {"created":1683948303692,"firstUse":1683948305444} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/fawis2kz.default-release/xulstore.json: -------------------------------------------------------------------------------- 1 | {"chrome://browser/content/browser.xhtml":{"main-window":{"sizemode":"maximized","screenX":"35","screenY":"32","width":"780","height":"777"},"toolbar-menubar":{"autohide":"true"},"place:z4gy6OKqpx13hPx6FgE3vA==":{"open":"true"},"place:bEhQcqWrWlhSwIII4gsZzw==":{"open":"true"},"sidebar-box":{"sidebarcommand":"_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action","style":"order: 1;"},"sidebar-title":{"value":"标签页"},"place:bOqG5W0HTFRR1wxsizAnpA==":{"open":"true"}},"chrome://browser/content/places/places.xhtml":{"placesContentTags":{"ordinal":"3"},"placesContentUrl":{"ordinal":"5","sortDirection":"-moz-missing\n"},"placesContentDate":{"ordinal":"7","sortDirection":"-moz-missing\n"},"placesContentVisitCount":{"ordinal":"9"},"placesContentDateAdded":{"ordinal":"11"},"placesContentLastModified":{"ordinal":"13"},"places":{"screenX":"0","screenY":"0","width":"1268","height":"1440","sizemode":"maximized"},"place:CqewroxEONFH0b8ILWSXYA==":{"open":"true"},"place:z4gy6OKqpx13hPx6FgE3vA==":{"open":"true"},"":{"state":""},"placesList":{"style":"width: 400px;"},"place:OmHfAW8r3JtHUJDITYXmXg==":{"open":"true"},"place:bOqG5W0HTFRR1wxsizAnpA==":{"open":"true"},"place:eAXDJf5Kudj/8wit//U4mQ==":{"open":"true"},"placesContentTitle":{"sortDirection":"-moz-missing\n"},"place:CEYKCJR97ihy8bON9gvdnA==":{"open":"true"},"place:ko4FoYGbZiVd36Gi2JG4sA==":{"open":"true"},"place:YZNIN/fPXN50evSlFBuQEQ==":{"open":"true"},"place:KkY/kixPVBa2g1UAkXeo8Q==":{"open":"true"}}} -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/installs.ini: -------------------------------------------------------------------------------- 1 | [4F96D1932A9F858E] 2 | Default=fawis2kz.default-release 3 | Locked=1 4 | -------------------------------------------------------------------------------- /layer-home/skel/.mozilla/firefox/profiles.ini: -------------------------------------------------------------------------------- 1 | [Install4F96D1932A9F858E] 2 | Default=fawis2kz.default-release 3 | Locked=1 4 | 5 | [Profile1] 6 | Name=default 7 | IsRelative=1 8 | Path=7m67szyc.default 9 | Default=1 10 | 11 | [Profile0] 12 | Name=default-release 13 | IsRelative=1 14 | Path=fawis2kz.default-release 15 | 16 | [General] 17 | StartWithLastProfile=1 18 | Version=2 19 | 20 | -------------------------------------------------------------------------------- /layer-rootfs/fork-sync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # See https://cli.github.com/manual/gh_repo_sync 4 | gh repo sync clsty/papirus-icon-theme --branch master 5 | -------------------------------------------------------------------------------- /layer-rootfs/full-prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | function try { "$@" || sleep 0; } 4 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 5 | 6 | selfpath="${BASH_SOURCE[0]}" 7 | cd "$(dirname $selfpath)" 8 | basedir="$(pwd)" 9 | 10 | aaa ./prepare-sweet.sh 11 | aaa ./prepare-icon-git.sh 12 | -------------------------------------------------------------------------------- /layer-rootfs/note.txt: -------------------------------------------------------------------------------- 1 | layer-rootfs,存在的目的之一是直接从某些上游取得资源(而不是使用 Arch 或 AUR 的包),所谓“另一种包”。 2 | 3 | 另一个目的是去除 releng 本体以增加灵活性、降低随 archiso 的 releng 更新而更新的工作量。 4 | 5 | 之所以直接从某些上游取得资源,有若干考虑,列举如下: 6 | - AUR 的一部分包不太稳定(比如 sweet-theme-full-git 和 sweet-kde-theme-git 这两个曾经存在于 AUR 的包消失了)。 7 | - 目前找不到足够好的检测 AUR 包是否需要升级的方法,full-update.sh 总是会把所有包都重打一遍,速度很慢。 8 | - 即使是 Arch 的包也可能在某些细节上不够好,比如 papirus-icon-theme 把 papirus-icon 的四个变种打包在一起,但本项目只用到其一,很浪费空间。 9 | 10 | 这里的子目录: 11 | - cache:存放使用 prepare*.sh 所临时获取的资源(列于 .gitignore )。 12 | - stored:存放固定存储的资源。 13 | -------------------------------------------------------------------------------- /layer-rootfs/prepare-icon-git.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "icons 准备流程开始。" 3 | set -e 4 | function try { "$@" || sleep 0; } 5 | 6 | selfpath="${BASH_SOURCE[0]}" 7 | cd "$(dirname $selfpath)" 8 | basedir="$(pwd)" 9 | target="$basedir"/cache/icons/papirus-icon-theme 10 | 11 | mkdir -p "$target";cd "$target" 12 | #git clone https://github.com/clsty/papirus-icon-theme||(cd papirus-icon-theme&&git pull) 13 | try git init -b master 14 | try git remote add origin https://github.com/clsty/papirus-icon-theme.git 15 | git pull --depth=1 origin master 16 | 17 | echo "icons 准备流程完毕。" 18 | -------------------------------------------------------------------------------- /layer-rootfs/prepare-icon-svn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "icons 准备流程开始。" 3 | set -e 4 | function try { "$@" || sleep 0; } 5 | 6 | selfpath="${BASH_SOURCE[0]}" 7 | cd "$(dirname $selfpath)" 8 | basedir="$(pwd)" 9 | target="$basedir"/cache/icons/papirus-icon-theme 10 | tmpdir="/tmp/layer-misc/icons" 11 | 12 | rm -rf "$tmpdir" 13 | mkdir -p "$tmpdir" 14 | mkdir -p "$target" 15 | cd "$tmpdir" 16 | 17 | # 如果只需要部分目录,为什么使用 svn? 18 | # 见 https://unix.stackexchange.com/questions/233327/is-it-possible-to-clone-only-part-of-a-git-project 19 | # 对比过多种方法,都没有达到“因为我只想下载特定目录所以别花费多余流量,也别花费多余时间”的目的(shallow clone 并没有减少不需要下载的目录所占用的流量,sparse-checkout 则一个一个文件下载也太慢) 20 | # 除了上面 stackexchange 的贴子,别的网站的某些教程也是用到 sparse-checkout 特性,但给的步骤大错特错,比如甚至在 git remote 这一步就开始用 -f 下载整个 git 仓库了;而没用 -f 的也好不到哪去,前面明明是设置了 sparse-checkout 特性,后面却竟然还是调用 git pull 来下载文件,而 git pull 在下载阶段并不会遵守前面设置的特性(等于设置了个寂寞),完全没有节省流量,只是最后从 .git 目录把文件放到主目录里时才遵守了 sparse-checkout 指定的目录,这完全就是自欺欺人(要用 sparse-checkout 省流量的话,就必须让下载文件的步骤放在 git checkout,所以应当先进行不会下载主体文件的 git fetch 而不是 git pull) 21 | which svn||sudo pacman -S --needed --noconfirm svn 22 | echo "现在开始下载主要文件。" 23 | svn export https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/trunk/Papirus-Dark 24 | svn export https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/trunk/Papirus 25 | echo "下载完毕。" 26 | ls -al 27 | rsync -rDtl --info=PROGRESS2 --delete "Papirus-Dark"/ "$target"/"Papirus-Dark"/ 28 | rsync -rDtl --info=PROGRESS2 --delete "Papirus"/ "$target"/"Papirus"/ 29 | rm -rf "$tmpdir" 30 | 31 | echo "icons 准备流程完毕。" 32 | -------------------------------------------------------------------------------- /layer-rootfs/prepare-sweet.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "sweet theme 准备流程开始。" 3 | set -e 4 | function try { "$@" || sleep 0; } 5 | 6 | selfpath="${BASH_SOURCE[0]}" 7 | cd "$(dirname $selfpath)" 8 | basedir="$(pwd)" 9 | target="$basedir"/cache/sweet-theme-backup 10 | 11 | mkdir -p "$target";cd "$target" 12 | try git init -b main 13 | try git remote add origin https://github.com/clsty/sweet-theme-backup.git 14 | git pull origin main 15 | # 最新的 commit 似乎有点问题,先还是用旧 commit 16 | git checkout 198859b1b3abe18fc3a174960f9d987e195398fc 17 | 18 | echo "sweet theme 准备流程完毕。" 19 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/X11/xorg.conf.d/10-keyboard.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "Keyboard Defaults" 3 | MatchIsKeyboard "on" 4 | Option "XkbLayout" "us-Caps2Ctrl" 5 | EndSection 6 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/environment: -------------------------------------------------------------------------------- 1 | EDITOR=nvim 2 | #QT_QPA_PLATFORMTHEME=qt6ct 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/group: -------------------------------------------------------------------------------- 1 | root:x:0:brltty,root 2 | adm:x:4:daemon,archer 3 | wheel:x:10:archer 4 | uucp:x:14:brltty,archer 5 | archer:x:1000: 6 | sys:x:3:bin 7 | mem:x:8: 8 | ftp:x:11: 9 | mail:x:12: 10 | log:x:19: 11 | smmsp:x:25: 12 | proc:x:26:polkitd 13 | lock:x:54: 14 | network:x:90: 15 | floppy:x:94: 16 | scanner:x:96: 17 | power:x:98: 18 | nobody:x:65534: 19 | utmp:x:999: 20 | audio:x:998:brltty 21 | disk:x:997: 22 | input:x:996:brltty 23 | kmem:x:995: 24 | kvm:x:994: 25 | lp:x:993: 26 | optical:x:992: 27 | render:x:991: 28 | sgx:x:990: 29 | storage:x:989: 30 | tty:x:5:brltty 31 | video:x:988:sddm 32 | users:x:987: 33 | systemd-journal:x:986: 34 | rfkill:x:985: 35 | bin:x:976:daemon 36 | daemon:x:975:bin 37 | http:x:965: 38 | dbus:x:964: 39 | git:x:963: 40 | systemd-coredump:x:962: 41 | systemd-network:x:961: 42 | systemd-oom:x:960: 43 | systemd-journal-remote:x:959: 44 | systemd-resolve:x:958: 45 | systemd-timesync:x:957: 46 | tss:x:956: 47 | uuidd:x:955: 48 | brlapi:x:954:brltty 49 | i2c:x:953: 50 | vboxsf:x:109: 51 | named:x:951: 52 | brltty:x:950: 53 | dhcpcd:x:949: 54 | dnsmasq:x:948: 55 | sddm:x:938: 56 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/gshadow: -------------------------------------------------------------------------------- 1 | root:!*::brltty,root 2 | wheel:!*::archer 3 | archer:!*:: 4 | sys:!*::bin 5 | mem:!*:: 6 | ftp:!*:: 7 | mail:!*:: 8 | log:!*:: 9 | smmsp:!*:: 10 | proc:!*::polkitd 11 | lock:!*:: 12 | network:!*:: 13 | floppy:!*:: 14 | scanner:!*:: 15 | power:!*:: 16 | nobody:!*:: 17 | utmp:!*:: 18 | audio:!*::brltty 19 | disk:!*:: 20 | input:!*::brltty 21 | kmem:!*:: 22 | kvm:!*:: 23 | lp:!*:: 24 | optical:!*:: 25 | render:!*:: 26 | sgx:!*:: 27 | storage:!*:: 28 | tty:!*::brltty 29 | video:!*::sddm 30 | users:!*:: 31 | systemd-journal:!*:: 32 | rfkill:!*:: 33 | bin:!*::daemon 34 | daemon:!*::bin 35 | http:!*:: 36 | dbus:!*:: 37 | git:!*:: 38 | systemd-coredump:!*:: 39 | systemd-network:!*:: 40 | systemd-oom:!*:: 41 | systemd-journal-remote:!*:: 42 | systemd-resolve:!*:: 43 | systemd-timesync:!*:: 44 | tss:!*:: 45 | uuidd:!*:: 46 | brlapi:!*::brltty 47 | i2c:!*:: 48 | vboxsf:!*:: 49 | named:!*:: 50 | brltty:!*:: 51 | dhcpcd:!*:: 52 | dnsmasq:!*:: 53 | partimag:!*:: 54 | sddm:!*:: 55 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/hostname: -------------------------------------------------------------------------------- 1 | arCNiso 2 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/hosts: -------------------------------------------------------------------------------- 1 | 127.0.0.1 localhost 2 | ::1 localhost 3 | 127.0.0.1 arCNiso.localdomain arCNiso 4 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/locale.conf: -------------------------------------------------------------------------------- 1 | LANG=en_US.UTF-8 2 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/locale.gen: -------------------------------------------------------------------------------- 1 | en_US.UTF-8 UTF-8 2 | zh_CN.UTF-8 UTF-8 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/localtime: -------------------------------------------------------------------------------- 1 | /usr/share/zoneinfo/Asia/Shanghai -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/mkinitcpio.conf.d/archiso.conf: -------------------------------------------------------------------------------- 1 | MODULES=(i2c-dev btusb) 2 | 3 | HOOKS=(base udev microcode modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) 4 | COMPRESSION="xz" 5 | COMPRESSION_OPTIONS=(-9e) 6 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/motd: -------------------------------------------------------------------------------- 1 |  -` TM 2 |  -++` 3 |  .oo++` 4 |  `ooooo/ 5 |  `+oooooo: 6 |  `+oooooooo: 7 |  -+oooooooo+: 8 |  `/:-:+++ooooo+: 9 |  `/++++/+++++++++: 10 |  `/++++++++++++++++: 11 |  `/+++ooooooooooooooo/` 12 |  ./ooosssso++++osssssso+` 13 |  .oossssso-``` ``/ossssss+` 14 |  -osssssso.  :ssssssso. 15 |  :osssssss/  osssso+++. 16 |  /ossssssss/  +ssssooo/- 17 |  `/ossssso+/:-  -:/+osssso+- 18 |  `+sso+:-`  `.-/+oso: 19 |  `++:.  `-/+/ 20 |  .` A r c h  L i n u x `/ 21 |   22 |  23 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/motd-zh_CN: -------------------------------------------------------------------------------- 1 |   2 |  欢迎使用 arCNiso  3 |   4 | 5 |  1  联网  无线网:请使用 NetworkManager 相关工具,如 nmtui(在其“启用连接”中扫描并连接 WiFi)。WWAN 调制解调器(Mobile Broadband):请使用 mmcli。支持 DHCP 的有线网:应当自动可用。 6 | 7 |  2  获取帮助  首次使用 arCNiso 可阅读本项目自述文档的“使用指南”部分,为此可输入 README;若要安装 Arch Linux,可输入 arcnguide 访问安装指南与提示。 8 | 9 |  3  若空间不足  默认根分区大小为 1 GiB,可使用 modifyrootspace 实时修改根分区大小(会占用相应大小的内存);或自行挂载外部存储以转移数据。 10 | 11 |  4  平板电脑  可使用蓝牙管理器连接蓝牙键盘,或者使用屏幕键盘 Onboard(启动器位于屏幕右下角)。 12 | 13 |  5  若密钥过期  可尝试运行 pacman-reinit 重置密钥。 14 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/pacman.conf: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/pacman.conf 3 | # 4 | # See the pacman.conf(5) manpage for option and repository directives 5 | 6 | # 7 | # GENERAL OPTIONS 8 | # 9 | [options] 10 | # The following paths are commented out with their default values listed. 11 | # If you wish to use different paths, uncomment and update the paths. 12 | #RootDir = / 13 | #DBPath = /var/lib/pacman/ 14 | #CacheDir = /var/cache/pacman/pkg/ 15 | #LogFile = /var/log/pacman.log 16 | #GPGDir = /etc/pacman.d/gnupg/ 17 | #HookDir = /etc/pacman.d/hooks/ 18 | HoldPkg = pacman glibc 19 | #XferCommand = /usr/bin/curl -L -C - -f -o %o %u 20 | #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u 21 | #CleanMethod = KeepInstalled 22 | Architecture = auto 23 | 24 | # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup 25 | #IgnorePkg = 26 | #IgnoreGroup = 27 | 28 | #NoUpgrade = 29 | #NoExtract = 30 | 31 | # Misc options 32 | #UseSyslog 33 | Color 34 | ILoveCandy 35 | #NoProgressBar 36 | CheckSpace 37 | #VerbosePkgLists 38 | ParallelDownloads = 5 39 | 40 | # By default, pacman accepts packages signed by keys that its local keyring 41 | # trusts (see pacman-key and its man page), as well as unsigned packages. 42 | SigLevel = Required DatabaseOptional 43 | LocalFileSigLevel = Optional 44 | #RemoteFileSigLevel = Required 45 | 46 | # NOTE: You must run `pacman-key --init` before first using pacman; the local 47 | # keyring can then be populated with the keys of all official Arch Linux 48 | # packagers with `pacman-key --populate archlinux`. 49 | 50 | # 51 | # REPOSITORIES 52 | # - can be defined here or included from another file 53 | # - pacman will search repositories in the order defined here 54 | # - local/custom mirrors can be added here or in separate files 55 | # - repositories listed first will take precedence when packages 56 | # have identical names, regardless of version number 57 | # - URLs will have $repo replaced by the name of the current repo 58 | # - URLs will have $arch replaced by the name of the architecture 59 | # 60 | # Repository entries are of the format: 61 | # [repo-name] 62 | # Server = ServerName 63 | # Include = IncludePath 64 | # 65 | # The header [repo-name] is crucial - it must be present and 66 | # uncommented to enable the repo. 67 | # 68 | 69 | # The testing repositories are disabled by default. To enable, uncomment the 70 | # repo name header and Include lines. You can add preferred servers immediately 71 | # after the header, and they will be used before the default mirrors. 72 | 73 | #[core-testing] 74 | #Include = /etc/pacman.d/mirrorlist 75 | 76 | [core] 77 | Include = /etc/pacman.d/mirrorlist 78 | 79 | #[extra-testing] 80 | #Include = /etc/pacman.d/mirrorlist 81 | 82 | [extra] 83 | Include = /etc/pacman.d/mirrorlist 84 | 85 | # If you want to run 32 bit applications on your x86_64 system, 86 | # enable the multilib repositories as required here. 87 | 88 | #[multilib-testing] 89 | #Include = /etc/pacman.d/mirrorlist 90 | 91 | [multilib] 92 | Include = /etc/pacman.d/mirrorlist 93 | 94 | # 要启用 archlinuxcn 源,注释下面两行即可。注意本项目与 archlinuxcn 无关。 95 | #[archlinuxcn] 96 | #Include = /etc/pacman.d/archlinuxcn-mirrorlist 97 | 98 | # An example of a custom package repository. See the pacman manpage for 99 | # tips on creating your own repositories. 100 | #[custom] 101 | #SigLevel = Optional TrustAll 102 | #Server = file:///home/custompkgs 103 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/pacman.d/mirrorlist: -------------------------------------------------------------------------------- 1 | ## China 2 | Server = https://mirrors.cernet.edu.cn/archlinux/$repo/os/$arch 3 | Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch 4 | Server = https://mirrors.163.com/archlinux/$repo/os/$arch 5 | Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch 6 | Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch 7 | Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch 8 | Server = https://mirror.lzu.edu.cn/archlinux/$repo/os/$arch 9 | Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch 10 | Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch 11 | Server = https://mirrors.njupt.edu.cn/archlinux/$repo/os/$arch 12 | Server = https://mirror.redrock.team/archlinux/$repo/os/$arch 13 | Server = https://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch 14 | Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch 15 | Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch 16 | Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch 17 | Server = https://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch 18 | Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch 19 | Server = https://mirrors.zju.edu.cn/archlinux/$repo/os/$arch 20 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/paru.conf: -------------------------------------------------------------------------------- 1 | # 2 | # $PARU_CONF 3 | # /etc/paru.conf 4 | # ~/.config/paru/paru.conf 5 | # 6 | # See the paru.conf(5) manpage for options 7 | 8 | # 9 | # GENERAL OPTIONS 10 | # 11 | [options] 12 | PgpFetch 13 | Devel 14 | Provides 15 | DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil 16 | #AurOnly 17 | BottomUp 18 | #RemoveMake 19 | #SudoLoop 20 | #UseAsk 21 | #SaveChanges 22 | #CombinedUpgrade 23 | #CleanAfter 24 | #UpgradeMenu 25 | #NewsOnUpgrade 26 | 27 | #LocalRepo 28 | #Chroot 29 | #Sign 30 | #SignDb 31 | #KeepRepoCache 32 | 33 | # 34 | # Binary OPTIONS 35 | # 36 | #[bin] 37 | #FileManager = vifm 38 | #MFlags = --skippgpcheck 39 | #Sudo = doas 40 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/passwd: -------------------------------------------------------------------------------- 1 | root:x:0:0:root:/root:/usr/bin/zsh 2 | archer:x:1000:1000:Archer:/home/archer:/usr/bin/zsh 3 | bin:x:1:1::/:/usr/bin/nologin 4 | daemon:x:2:2::/:/usr/bin/nologin 5 | mail:x:8:12::/var/spool/mail:/usr/bin/nologin 6 | ftp:x:14:11::/srv/ftp:/usr/bin/nologin 7 | http:x:33:33::/srv/http:/usr/bin/nologin 8 | nobody:x:65534:65534:Kernel Overflow User:/:/usr/bin/nologin 9 | dbus:x:81:81:System Message Bus:/:/usr/bin/nologin 10 | git:x:984:984:git daemon user:/:/usr/bin/git-shell 11 | systemd-coredump:x:983:983:systemd Core Dumper:/:/usr/bin/nologin 12 | systemd-network:x:982:982:systemd Network Management:/:/usr/bin/nologin 13 | systemd-oom:x:981:981:systemd Userspace OOM Killer:/:/usr/bin/nologin 14 | systemd-journal-remote:x:980:980:systemd Journal Remote:/:/usr/bin/nologin 15 | systemd-resolve:x:979:979:systemd Resolver:/:/usr/bin/nologin 16 | systemd-timesync:x:978:978:systemd Time Synchronization:/:/usr/bin/nologin 17 | tss:x:977:977:tss user for tpm2:/:/usr/bin/nologin 18 | uuidd:x:68:68::/:/usr/bin/nologin 19 | brltty:x:973:973:Braille Device Daemon:/var/lib/brltty:/usr/bin/nologin 20 | dhcpcd:x:972:972:dhcpcd privilege separation:/:/usr/bin/nologin 21 | dnsmasq:x:971:971:dnsmasq daemon:/:/usr/bin/nologin 22 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/shadow: -------------------------------------------------------------------------------- 1 | root::14871:::::: 2 | archer::14871:::::: 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/ssh/sshd_config.d/11-arCNiso.conf: -------------------------------------------------------------------------------- 1 | # Allow root login using password authentication 2 | PasswordAuthentication yes 3 | PermitRootLogin yes 4 | UsePAM yes 5 | PrintMotd no 6 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/sudoers: -------------------------------------------------------------------------------- 1 | root ALL=(ALL:ALL) ALL 2 | %wheel ALL=(ALL:ALL) NOPASSWD: ALL 3 | @includedir /etc/sudoers.d 4 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/arCNiso-prepare.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=arCNiso prepare 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=/usr/local/arCNiso/prepare.sh 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/bluetooth.target.wants/bluetooth.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/bluetooth.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/dbus-org.bluez.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/bluetooth.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/dbus-org.freedesktop.nm-dispatch.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/NetworkManager-dispatcher.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/etc-pacman.d-gnupg.mount: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Temporary /etc/pacman.d/gnupg directory 3 | # 实测若以下使用tmpfs且Options添加noswap则pacman-init.service会失败 4 | [Mount] 5 | What=ramfs 6 | Where=/etc/pacman.d/gnupg 7 | Type=ramfs 8 | Options=mode=0755 9 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/getty@tty1.service.d/autologin.conf: -------------------------------------------------------------------------------- 1 | [Service] 2 | ExecStart= 3 | ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --autologin archer --keep-baud 115200,57600,38400,9600 - $TERM 4 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/multi-user.target.wants/NetworkManager.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/NetworkManager.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/multi-user.target.wants/arCNiso-prepare.service: -------------------------------------------------------------------------------- 1 | /etc/systemd/system/arCNiso-prepare.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/NetworkManager-wait-online.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/systemd/system/sysinit.target.wants/rngd.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/rngd.service -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/vconsole.conf: -------------------------------------------------------------------------------- 1 | KEYMAP=/usr/share/kbd/keymaps/i386/qwerty/us-Caps2Ctrl.map.gz 2 | -------------------------------------------------------------------------------- /layer-rootfs/stored/etc/xdg/reflector/reflector.conf: -------------------------------------------------------------------------------- 1 | # Reflector configuration file for the systemd service. 2 | 3 | --save /etc/pacman.d/mirrorlist 4 | --ipv4 5 | --ipv6 6 | --protocol https 7 | --latest 6 8 | --sort score 9 | --country China 10 | --age 60 11 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/arCNiso/prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 此脚本在开机启动时用 systemd 自动运行。 3 | locale-gen 4 | runuser -l archer -c 'tilix-dconf load' 5 | 6 | function resetkeymap(){ 7 | rm -f \ 8 | /home/archer/.xmodmap \ 9 | /root/.xmodmap \ 10 | /etc/X11/xorg.conf.d/10-keyboard.conf \ 11 | /etc/vconsole.conf 12 | } 13 | cat /proc/cmdline | grep -q 'swapctrlcaps=true' || resetkeymap 14 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/Installation_guide: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if ping -c1 archlinuxcn.org ;then 3 | sufirefox "https://wiki.archlinuxcn.org/wiki/Installation_Guide 4 | /home/archer/Installation_hint.html 5 | https://github.com/clsty/arCNiso/blob/main/docs-old/Installation_hint.md" 6 | else 7 | echo "无法连接到 archlinuxcn.org,暂时使用离线版。注:一般是无法离线安装 Arch Linux 的。" 8 | sufirefox "/home/archer/Installation_guide.html 9 | /home/archer/Installation_hint.html" 10 | fi 11 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/README: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | read -p "请输入对应数字。1=在线版;2=离线版:" pp 3 | case $pp in 4 | 1) sufirefox "https://github.com/clsty/arCNiso" ;; 5 | 2) sufirefox "/home/archer/README.html" ;; 6 | esac 7 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/aaa: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Again and again (till success) 3 | while true; do if "$@"; then 4 | break 5 | echo "Failed, retrying \"$@\"..." 6 | sleep 1 7 | fi; done 8 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/arCNiso-expac: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | expac -H M '%m\t%n'|sort -hr|less 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/arCNiso-xfce4: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export GLFW_IM_MODULE=ibus 4 | export GTK_IM_MODULE=fcitx 5 | export QT_IM_MODULE=fcitx 6 | export XMODIFIERS=@im=fcitx 7 | export SDL_IM_MODULE=fcitx 8 | export INPUT_METHOD=fcitx 9 | 10 | export QT_QPA_PLATFORMTHEME=qt6ct 11 | export XCURSOR_THEME="Sweet-cursors" 12 | 13 | export XDG_CURRENT_DESKTOP=XFCE 14 | export XDG_SESSION_DESKTOP=xfce4 15 | 16 | export LANG=zh_CN.UTF-8 17 | export LANGUAGE=zh_CN:en_US 18 | 19 | export EDITOR=nvim 20 | export BROWSER=firefox 21 | 22 | #DISPLAY=":0" picom -b & 23 | exec startxfce4 24 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/arcnadd-cn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 此脚本可启用 archlinuxcn 仓库源及其密钥;并且在设计上使得即使中途失败,也可多次执行。 3 | 4 | echo "声明:本镜像与 archlinuxcn 无关。" 5 | 6 | function addcn { 7 | echo "下面开始添加 archlinuxcn 仓库源及其密钥,此过程耗时约 1 至 6 分钟,在虚拟机中可能较慢。" 8 | systemctl start pacman-init 9 | grep -q '^\[archlinuxcn\]' /etc/pacman.conf || \ 10 | printf '\n[archlinuxcn]\nInclude = /etc/pacman.d/archlinuxcn-mirrorlist' \ 11 | >> /etc/pacman.conf 12 | sleep 3 13 | # https://www.archlinuxcn.org/archlinuxcn-keyring-manually-trust-farseerfc-key/ 14 | pacman-key --lsign-key "farseerfc@archlinux.org" 15 | pacman -Sy archlinuxcn-keyring --noconfirm; 16 | } 17 | 18 | case $(whoami) in 19 | root)addcn;; 20 | *)sudo "$0";; 21 | esac 22 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/arcnguide: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec /usr/local/bin/Installation_guide 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/arcnlogout: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | pp=n;read -p "真的要重新启动桌面环境吗?[y/N]" pp 3 | if [ "y$pp" != "yy" ];then exit;fi 4 | case $(whoami) in 5 | "root") pkill xfce4 ;; 6 | "archer") xfce4-session-logout --logout --fast ;; 7 | #dbus-launch --autolaunch --binary-syntax --close-stderr 8 | esac 9 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/arcnot: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | # 这个脚本本质上只是一个su root 的 wrapper。 3 | # 作为图形界面,需要以非 root 用户登录,然而 archiso 官方版又是以 root 登录。再加上需要做好引导,就有了此脚本。 4 | cat /etc/motd-zh_CN 5 | sudo su -c 'cd /root; su root' 6 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/efibooteditor-launcher: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 这是从 timeshift-launcher 直接改过来的。 3 | app_command='efibooteditor' 4 | 5 | if [ "$(id -u)" -eq 0 ]; then 6 | # user is admin 7 | ${app_command} 8 | else 9 | # user is not admin 10 | if echo $- | grep "i" >/dev/null 2>&1; then 11 | # script is running in interactive mode 12 | su - -c "${app_command}" 13 | else 14 | sudo "${app_command}" 15 | fi 16 | fi 17 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/emacsnw: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | emacs -nw $* 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/emacstutor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | emacs -nw --eval='(help-with-tutorial-spec-language)' 3 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/eviltutor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "接下来将运行 Emacs,并打开 Emacs Evil 中文教程。" 3 | read -p "请输入对应数字。1=尝试从上次教程继续;2=全新开始:" pp 4 | case "$pp" in 5 | 2) emacs -nw --eval='(evil-tutor-sc-start-new)' ;; 6 | *) emacs -nw --eval='(evil-tutor-sc-start)' ;; 7 | esac 8 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/iwctl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if test -f "/usr/bin/iwctl" 3 | then /usr/bin/iwctl $* 4 | else 5 | echo "提供 iwctl 的 iwd 已被移除,建议使用 nmtui。 6 | 原因是 iwd 不支持部分 WiFi 认证,详见 https://arcn.clsty.link/design/idea/#wpa_supplicant 。" 7 | exit 1 8 | fi 9 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/loadkeys: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | case $TERM in 3 | "linux") /usr/bin/loadkeys $* ;; 4 | *) 5 | echo '无法使用 loadkeys 更改键位映射,因为你不是在原版 archiso 的 tty 或者说 virtual console 中,而是处于 xfce4 图形环境中。 6 | 7 | 推荐使用 xfce4 的系统设置(从屏幕左下角的启动菜单中找到它)来修改键位映射。 8 | 9 | 或者,你也可以在终端里使用 setxkbmap(参见 https://wiki.archlinux.org/title/Xorg/Keyboard_configuration )。例如,若你想为标准美式键盘使用 dvorak 键位映射,可以输入: 10 | setxkbmap -layout us,us -variant ,dvorak' 11 | ;; 12 | esac 13 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/lynx: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if test -f "/usr/bin/lynx" 3 | then /usr/bin/lynx "$@" 4 | else echo "lynx 未安装,你可以在线安装 lynx (1) 或将 \"${1}\" 作为参数传递给 Firefox 浏览器(2)。" 5 | pp=1;read -p "请输入对应数字 [1/2]:" pp 6 | case $pp in 7 | 1) sudo pacman -S --noconfirm lynx||sudo pacman -Sy --noconfirm lynx 8 | /usr/bin/lynx "$@" ;; 9 | 2) sufirefox "$1" ;; 10 | esac 11 | fi 12 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/modifyrootspace: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo ${1? 错误:请指定一个参数,作为要临时修改成的容量,例如“2G”、“1024M”等。} || exit 3 | sudo mount -o remount,size=$1 /run/archiso/cowspace 4 | echo "执行了 \"sudo mount -o remount,size=$1 /run/archiso/cowspace\"。" 5 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/pacman: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # vim:fileencoding=utf-8:ft=bash:fdm=marker foldlevel=0 3 | 4 | # {{{ 判断参数 5 | parabackup="$@" 6 | para=$(getopt -q \ 7 | -o DQRSTUFVh \ 8 | -l database,query,remove,sync,deptest,upgrade,files,version,help \ 9 | -n "$0" -- "$@") 10 | eval set -- "$para" 11 | # 目前采用白名单,即仅允许 -QRVh 12 | waitinit=true 13 | while true ; do 14 | case "$1" in 15 | -Q|--query|-R|--query|-V|--version|-h|--help) waitinit=false ;shift;; 16 | --) break ;; 17 | *) shift ;; 18 | esac 19 | done 20 | 21 | eval set -- "$parabackup" 22 | # }}} 23 | 24 | 25 | T=10 26 | while $waitinit; do 27 | stat=$(systemctl is-active pacman-init) 28 | case "$stat" in 29 | "activating") 30 | echo "现在时间:$(date);将要执行:pacman" "$@" 31 | echo "但是,pacman-init.service 仍在运行中(最久可能持续至联网后 1 分钟才能完成),暂不可使用 pacman,否则可能导致 pacman 初始化失败。" 32 | echo "$T 秒之后重试(直到 pacman-init.service 运行完毕)..." 33 | sleep $T 34 | ;; 35 | "active") break ;; 36 | "inactive" | *) 37 | echo "注意:pacman-init.service 的状态为\"$stat\"。" 38 | echo "若之后 pacman 遇到 PGP/GPG 密钥的相关报错,说明 pacman 未成功初始化,可以运行 pacman-reinit -f 来强制进行初始化。" 39 | break 40 | ;; 41 | esac 42 | done 43 | 44 | /usr/bin/pacman "$@" 45 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/pacman-reinit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #set -e 3 | case $1 in 4 | '-f') break;; 5 | *) echo "5 秒后将执行 pacman 的初始化,请耐心等待。";sleep 5;; 6 | esac 7 | 8 | killall gpg-agent 9 | rm -rf /etc/pacman.d/gnupg/* /root/.gnupg/* /var/cache/pacman/pkg/* 10 | gpg --refresh-keys 11 | pacman-key --init --verbose 12 | pacman-key --populate --verbose 13 | pacman-key --refresh-keys 14 | echo "pacman 初始化执行完毕。" 15 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/paru: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | case $(whoami) in 5 | root)sudo -u \#1000 "$0" "$@";exit;; 6 | esac 7 | 8 | setupparu 9 | /usr/bin/paru "$@" 10 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/parui: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | setupparu 4 | paru -Slq | fzf --multi --preview 'paru -Si {1}' | xargs -ro paru -S 5 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/setfont: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | case $TERM in 3 | "linux") /usr/bin/setfont $* ;; 4 | *) 5 | echo "你不需要使用 setfont 更改字体。 6 | 原因:你使用的不是原版 archiso 的 tty(或者说 virtual console),而是图形终端模拟器,而它的字体也已经被适当配置。 7 | 若仍要调整字体:可用 Ctrl+- 和 Ctrl+= 来缩放大小,(对于 Tilix)也可在首选项里编辑配置方案。" 8 | ;; 9 | esac 10 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/setupparu: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | function try { "$@" || sleep 0; } 4 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 5 | 6 | function setupparuCn { sudo arcnadd-cn;sudo pacman -Sy --needed --noconfirm base-devel less paru; } 7 | function setupparuAur { sudo pacman -Sy --needed --noconfirm base-devel less 8 | try git clone https://aur.archlinux.org/paru-bin.git /tmp/paru-bin 9 | cd /tmp/paru-bin;aaa makepkg -si --noconfirm;cd /tmp;rm -rf /tmp/paru-bin; } 10 | 11 | case $(whoami) in 12 | root)sudo -u \#1000 "$0" "$@";exit;; 13 | esac 14 | 15 | if test -f "/usr/bin/paru" 16 | then sleep 0 17 | else echo -e "未找到 paru,是否要安装 paru?\na=aur/paru-bin\nc=archlinuxcn/paru\nn=不安装" 18 | read -p "[A/c/n]" yn 19 | case $yn in 20 | n|N)exit 1;; 21 | c|C)setupparuCn;; 22 | *)setupparuAur;; 23 | esac 24 | fi 25 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/sufirefox: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export ffuser=$(cat /tmp/sufirefoxuser) 3 | urlfile=/home/$ffuser/.cache/tempwebpageurl 4 | mkdir -p /home/$ffuser/.cache 5 | case "$(whoami)" in 6 | "root") su $ffuser -c "echo '$1'>$urlfile" ;; 7 | "$ffuser") echo "$1" >$urlfile ;; 8 | esac 9 | 10 | echo "[$0] 已经将以下 url 输出到 $urlfile 中:" 11 | cat $urlfile 12 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/sufirefoxd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 注意,此脚本必须由 $user 直接运行(例如通过 .config/autostart/*.desktop) 3 | # 否则,若是由 root 等其他用户通过 su 或 sudo 切换用户到 $user 再运行此脚本,会使得运行得到的 firefox 无法与后续的 firefox --newtab 取得通信。 4 | profile=$HOME/.mozilla/firefox/fawis2kz.default-release 5 | urlfile=$HOME/.cache/tempwebpageurl 6 | while true;do 7 | whoami >/tmp/sufirefoxuser 8 | if test -f $urlfile;then 9 | readarray -t urls < $urlfile 10 | aaa rm $urlfile 11 | # 当检测不到 firefox 时,提前运行 firefox 并等待一段时间(因为在这之前 firefox --newtab 很可能会无法与已有的 firefox 进程取得通信,导致多余的 firefox 进程被创建并弹窗报错) 12 | ps -C firefox||(firefox >/dev/null 2>&1 & sleep 10) 13 | for i in ${urls[@]} 14 | do firefox --profile "$profile" --new-tab "$i" 15 | sleep "0.5" 16 | done 17 | fi 18 | sleep 1 19 | done 20 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/tilix-dconf: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #注意要用合适的用户运行 dconf,比如普通用户用 sudo dconf 和 dconf 得到的结果是完全不同的。 3 | case $1 in 4 | dump)dconf dump '/com/gexperts/Tilix/' > ~/.config/Tilix.dconf;; 5 | load)dconf load '/com/gexperts/Tilix/' < ~/.config/Tilix.dconf;; 6 | *)echo "[$0]: choose a subcommand: dump, load";exit 1;; 7 | esac 8 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/vi: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if test -f "/usr/bin/vi"; 3 | then /usr/bin/vi $* 4 | else nvim "$@" 5 | fi 6 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/bin/vim: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if test -f "/usr/bin/vim" 3 | # 注意如果直接写 vim,就会调用自身,无限循环。 4 | then /usr/bin/vim $* 5 | else nvim "$@" 6 | fi 7 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/local/share/applications/EFIBootEditor.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=EFI Boot Editor 5 | Comment=Boot Editor for (U)EFI based systems 6 | Exec=efibooteditor-launcher 7 | Icon=preferences-system 8 | StartupNotify=true 9 | Terminal=false 10 | Categories=Settings;System;Qt;X-XFCE-SettingsDialog;X-XFCE-SystemSettings; 11 | -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/share/backgrounds/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-rootfs/stored/usr/share/backgrounds/bg.jpg -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/share/kbd/keymaps/i386/qwerty/us-Caps2Ctrl.map.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clsty/arCNiso/c68cdc99e6a431470e57cdc0cc10344ef3089d10/layer-rootfs/stored/usr/share/kbd/keymaps/i386/qwerty/us-Caps2Ctrl.map.gz -------------------------------------------------------------------------------- /layer-rootfs/stored/usr/share/xsessions/arCNiso-xfce4.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Name=arCNiso-xfce4 4 | Name[zh_CN]=Xfce 会话 5 | Comment=Use this session to run Xfce as your desktop environment 6 | Comment[zh_CN]=使用此会话将 Xfce 作为您的桌面环境运行 7 | Exec=arCNiso-xfce4 8 | Icon= 9 | Type=Application 10 | DesktopNames=XFCE 11 | -------------------------------------------------------------------------------- /makeiso: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso makeiso: auto make iso file. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | 7 | # 初始设定 8 | set -e # 遇错直接退出 9 | function try { "$@" || sleep 0; } 10 | 11 | export testiso=false 12 | export OUTpath=OUT 13 | 14 | function write_afs_profile { 15 | afs_profile_path=/tmp/MKARCHISO_IMAGE_TOOL_PROFILE 16 | # For detail see `man mksquashfs' 17 | case $1 in 18 | 1)airootfs_image_tool_options=('-comp' 'zstd' '-Xcompression-level' '22' '-b' '1M');; 19 | 2)airootfs_image_tool_options=('-comp' 'gzip' '-Xcompression-level' '1' '-b' '1M');; 20 | 3)airootfs_image_tool_options=('-comp' 'lzo' '-Xcompression-level' '9' '-b' '1M');; 21 | *)airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M');; 22 | esac 23 | # 将数组变量写入文件(一个元素一行) 24 | printf "%s\n" ${airootfs_image_tool_options[@]} > $afs_profile_path 25 | } 26 | 27 | write_afs_profile 1 28 | case $1 in 29 | --test) 30 | export testiso=true 31 | export OUTpath=TEST 32 | write_afs_profile 2 33 | esac 34 | 35 | # 时间测量开始 36 | echo "开始构建。" 37 | TIME1=$(date +%Y%m%d-%H:%M:%S) 38 | TIME1_s=$(date +%s) 39 | 40 | # 位置与权限校正 41 | cd $(dirname $0) 42 | try sudo umount ./TMP/x86_64/airootfs/* 43 | sudo chown -R $(whoami):$(whoami) . 44 | 45 | # 准备家目录 46 | ./makeiso-afs.sh sync 47 | 48 | # 本地软件仓库与源就位 49 | # 以下通过软链接到 /tmp 下,获得不含变量的路径(因为 pacman.conf 似乎不支持含变量的路径),以供后续使用。 50 | mkdir -p /tmp/arCNiso 51 | touch /tmp/arCNiso/touched 52 | rm /tmp/arCNiso/* # 注意这里应当只有软链接及 touched 53 | ln -sf $(pwd)/aur/pkgs /tmp/arCNiso/aur 54 | ln -sf $(pwd)/pacman.d /tmp/arCNiso/pacman.d 55 | 56 | # 构建 57 | mkdir -p $OUTpath TMP 58 | sudo rm -rf $OUTpath TMP 59 | if [ -f ./patchedmkarchiso/mkarchiso ]; then 60 | echo "已找到 patchedmkarchiso 目录下的 mkarchiso,将使用修改后的 mkarchiso。" 61 | # 一定要 cd 到这里面来,因为打了补丁之后 mkarchiso 会引用 db.{cer,key,crt},显然当直接提到这些文件(而没有给路径)时,它应当位于 working directory。当然,在补丁里把这些路径都给出来也可以,但麻烦。 62 | cd ./patchedmkarchiso/ 63 | sudo ./mkarchiso -v -w ../TMP -o ../$OUTpath ../ 64 | cd ../ 65 | else 66 | echo "未找到 patchedmkarchiso 目录下的 mkarchiso,将使用原版 mkarchiso。" 67 | sudo mkarchiso -v -w TMP -o $OUTpath ./ 68 | fi 69 | sudo rm -rf TMP 70 | sudo chown -R $(whoami):$(whoami) ./$OUTpath 71 | mv $(find $OUTpath -name "*.iso") $OUTpath/arCNiso.iso 72 | 73 | # 清理临时文件(夹) 74 | ./makeiso-afs.sh clean 75 | 76 | # 输出信息 77 | export name=$(basename $(find $OUTpath -name "*.iso")) 78 | export size=$(du -a -B MB $OUTpath/*.iso | cut -f1 -d" ") 79 | case $testiso in 80 | false)export sha256sum=$(sha256sum $OUTpath/*.iso | cut -f1 -d" ");; 81 | esac 82 | 83 | echo -e "文件名:${name}\n大小:${size}\nsha256sum:${sha256sum}" >result.log 84 | cat result.log 85 | 86 | echo -e "文件名:${name}\n\n大小:${size}\n\nsha256sum:${sha256sum}" >result.md 87 | 88 | # 时间测量结束 89 | TIME2=$(date +%Y%m%d-%H:%M:%S) 90 | TIME2_s=$(date +%s) 91 | TIMEpass=$(($TIME2_s - $TIME1_s)) 92 | echo "构建结束。" 93 | echo "开始于 $TIME1 -- 经过 $TIMEpass 秒 --> 结束于 $TIME2" 94 | 95 | case $testiso in 96 | true)./testiso TEST;; 97 | esac 98 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "arCNiso", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": {} 6 | } 7 | -------------------------------------------------------------------------------- /pacman.conf: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/pacman.conf 3 | # 4 | # See the pacman.conf(5) manpage for option and repository directives 5 | 6 | # 7 | # GENERAL OPTIONS 8 | # 9 | [options] 10 | # The following paths are commented out with their default values listed. 11 | # If you wish to use different paths, uncomment and update the paths. 12 | #RootDir = / 13 | #DBPath = /var/lib/pacman/ 14 | #CacheDir = /var/cache/pacman/pkg/ 15 | #LogFile = /var/log/pacman.log 16 | #GPGDir = /etc/pacman.d/gnupg/ 17 | #HookDir = /etc/pacman.d/hooks/ 18 | HoldPkg = pacman glibc 19 | #XferCommand = /usr/bin/curl -L -C - -f -o %o %u 20 | #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u 21 | #CleanMethod = KeepInstalled 22 | Architecture = auto 23 | 24 | # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup 25 | #IgnorePkg = 26 | #IgnoreGroup = 27 | 28 | #NoUpgrade = 29 | #NoExtract = 30 | 31 | # Misc options 32 | #UseSyslog 33 | Color 34 | #NoProgressBar 35 | # We cannot check disk space from within a chroot environment 36 | #CheckSpace 37 | #VerbosePkgLists 38 | ParallelDownloads = 5 39 | 40 | # By default, pacman accepts packages signed by keys that its local keyring 41 | # trusts (see pacman-key and its man page), as well as unsigned packages. 42 | SigLevel = Required DatabaseOptional 43 | LocalFileSigLevel = Optional 44 | #RemoteFileSigLevel = Required 45 | 46 | # NOTE: You must run `pacman-key --init` before first using pacman; the local 47 | # keyring can then be populated with the keys of all official Arch Linux 48 | # packagers with `pacman-key --populate archlinux`. 49 | 50 | # 51 | # REPOSITORIES 52 | # - can be defined here or included from another file 53 | # - pacman will search repositories in the order defined here 54 | # - local/custom mirrors can be added here or in separate files 55 | # - repositories listed first will take precedence when packages 56 | # have identical names, regardless of version number 57 | # - URLs will have $repo replaced by the name of the current repo 58 | # - URLs will have $arch replaced by the name of the architecture 59 | # 60 | # Repository entries are of the format: 61 | # [repo-name] 62 | # Server = ServerName 63 | # Include = IncludePath 64 | # 65 | # The header [repo-name] is crucial - it must be present and 66 | # uncommented to enable the repo. 67 | # 68 | 69 | # The testing repositories are disabled by default. To enable, uncomment the 70 | # repo name header and Include lines. You can add preferred servers immediately 71 | # after the header, and they will be used before the default mirrors. 72 | 73 | #[core-testing] 74 | #Include = /etc/pacman.d/mirrorlist 75 | 76 | [core] 77 | Include = /etc/pacman.d/mirrorlist 78 | 79 | #[extra-testing] 80 | #Include = /etc/pacman.d/mirrorlist 81 | 82 | [extra] 83 | Include = /etc/pacman.d/mirrorlist 84 | 85 | # If you want to run 32 bit applications on your x86_64 system, 86 | # enable the multilib repositories as required here. 87 | 88 | #[multilib-testing] 89 | #Include = /etc/pacman.d/mirrorlist 90 | 91 | #[multilib] 92 | #Include = /etc/pacman.d/mirrorlist 93 | 94 | # An example of a custom package repository. See the pacman manpage for 95 | # tips on creating your own repositories. 96 | [aur] 97 | SigLevel = Optional TrustAll 98 | Server = file:///tmp/arCNiso/aur 99 | 100 | [archlinuxcn] 101 | Include = /tmp/arCNiso/pacman.d/archlinuxcn-mirrorlist 102 | -------------------------------------------------------------------------------- /patchedmkarchiso/DIFF.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | cd $(dirname $0) 4 | 5 | # 除 diff/patch 外,另一种补丁方案(据说主要是 Debian 在用)是 Quilt 6 | patchfile='mkarchiso.patch' 7 | oldfile='mkarchiso-original' 8 | newfile='mkarchiso' 9 | cp -f /usr/bin/mkarchiso ./$oldfile 10 | 11 | 12 | function try { "$@" || sleep 0; } 13 | 14 | function CheckPatchMatch { 15 | echo "开始检查补丁文件($3)是否完全精确地反映了原文件($1)与新文件($2)的文件内容差异。" 16 | 17 | originalpath=$(pwd) 18 | 19 | echo "正在创建临时目录:" 20 | temp_dir=$(mktemp -d) 21 | echo "$temp_dir" 22 | 23 | echo "复制待测文件到临时目录中:" 24 | cp "$1" $temp_dir/"$1" 25 | cp "$2" $temp_dir/"$2" 26 | cp "$3" $temp_dir/"$3" 27 | cd $temp_dir 28 | 29 | # (对原文件的副本)应用补丁文件(若不完全匹配,会生成 $1.orig) 30 | echo "临时目录的文件列表:" 31 | ls -l 32 | echo "正在对原文件的临时副本应用补丁文件:" 33 | patch $1 -N -p0 -i $3 --backup-if-mismatch 34 | 35 | echo "正在检查结果..." 36 | # 双保险,检查应用了补丁的原文件副本与新文件副本的文件内容差异 37 | diff_result=$(diff -q -U5 $temp_dir/"$1" $temp_dir/"$2") 38 | test -f "$1.orig"&&diff_result=notexact 39 | test -f "$1.rej"&&diff_result=notsuccess 40 | 41 | echo "正在清理临时目录..." 42 | cd $originalpath&&rm -rf $temp_dir 43 | 44 | # 返回判断值 45 | if [ -z "$diff_result" ]; then 46 | export MATCH=true 47 | else 48 | export MATCH=false 49 | fi 50 | echo "结束检查流程。" 51 | } 52 | 53 | newfileEXIST=1;test -f "$newfile"||newfileEXIST=0 54 | patchfileEXIST=1;test -f "$patchfile"||patchfileEXIST=0 55 | 56 | case $newfileEXIST$patchfileEXIST in 57 | "11")echo "已找到 $newfile 和 $patchfile。";; 58 | "10")echo "已找到 $newfile,未找到 $patchfile。" 59 | read -p "要根据 $oldfile 和 $newfile 建立 $patchfile 吗?[y/N]" p 60 | case $p in 61 | [yY]) try diff -U5 $oldfile $newfile >$patchfile;; 62 | esac; exit ;; 63 | "01")echo "错误:未找到 $newfile,已找到 $patchfile。" 64 | echo "可能没有运行过 PATCH.sh?";exit 1;; 65 | "00")echo "致命错误:未找到 $newfile 和 $patchfile。" 66 | echo "请准备补丁文件或已打补丁的文件。";exit 1;; 67 | esac 68 | 69 | try CheckPatchMatch "$oldfile" "$newfile" "$patchfile" 70 | case $MATCH in 71 | true)echo -e "补丁文件 $patchfile 已精确反映了原文件 $oldfile 和新文件 $newfile 的差异。\n今日无事可做。";exit;; 72 | false)echo "补丁文件 $patchfile 不是最新的。";; 73 | *)echo "错误:变量 \$MATCH 的值为\"$MATCH\"。";exit 1;; 74 | esac 75 | 76 | read -p "要在当前原文件\"$oldfile\"和新文件\"$newfile\"的基础上更新补丁\"$patchfile\"吗?[y/N]" yn 77 | case $yn in 78 | [yY]) try diff -U5 $oldfile $newfile >$patchfile;; 79 | *) exit 80 | esac 81 | 82 | echo "补丁文件 $patchfile 已更新。注意,若其位于 Git 仓库中,可能导致 Git 仓库变化。" 83 | -------------------------------------------------------------------------------- /patchedmkarchiso/PATCH.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | cd $(dirname $0) 4 | 5 | cp -f /usr/bin/mkarchiso ./mkarchiso-original 6 | patch mkarchiso-original -N -p0 -i mkarchiso.patch -o mkarchiso||sleep 0 7 | chmod +x mkarchiso 8 | echo "补丁已打,但可能失败(看上面的提示)并生成 mkarchiso.rej 文件。" 9 | echo "若有失败部分,请一边阅读 ./mkarchiso.rej,一边手动编辑 ./mkarchiso。" 10 | echo "直到手动打完补丁之后,为了下次更好合并,建议在当前目录运行 ./DIFF.sh 以生成新的补丁。" 11 | -------------------------------------------------------------------------------- /patchedmkarchiso/deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | cd $(dirname $0) 4 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 5 | 6 | echo "正在安装所需依赖..." 7 | 8 | function install { sudo pacman -S --needed --noconfirm efitools sbsigntools; } 9 | 10 | install || (aaa sudo pacman -Sy && install) || aaa sudo pacman -Su --noconfirm || aaa install 11 | 12 | echo "正在安装 shim-signed..." 13 | if test -f ../aur/pkgs/shim-signed*.pkg.tar.zst 14 | then sudo pacman -U --noconfirm ../aur/pkgs/shim-signed*.pkg.tar.zst 15 | else aaa paru -S --needed --noconfirm shim-signed 16 | fi 17 | -------------------------------------------------------------------------------- /patchedmkarchiso/genkey.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | cd $(dirname $0) 4 | # Dependency: efitools 5 | # https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_keys 6 | # Create a GUID for owner identification 7 | uuidgen --random >GUID.txt 8 | 9 | # Platform key (PK) 10 | openssl req -newkey rsa:4096 -nodes -keyout PK.key -new -x509 -sha256 -days 3650 -subj "/CN=arCNiso Platform Key/" -out PK.crt 11 | openssl x509 -outform DER -in PK.crt -out PK.cer 12 | cert-to-efi-sig-list -g "$( 3 | # @Title: arCNiso publishiso: auto publish files. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | 7 | function try { "$@" || sleep 0; } 8 | set -e 9 | cd $(dirname $0) 10 | 11 | echo "Checking if every needed command is available..." 12 | checkexist() { 13 | if command -v $1 >/dev/null 2>&1; then 14 | echo "Command $1 found." 15 | else 16 | echo "Error: Command $1 not found, aborting..." 17 | exit 1 18 | fi 19 | } 20 | 21 | for i in fd qbittorrent-nox transmission-create gh; do 22 | checkexist $i 23 | done 24 | echo "Great, every needed command is available." 25 | 26 | ./publishiso-1-release.sh $1 27 | ./publishiso-2-bt.sh 28 | ./publishiso-3-alist.sh 29 | ./publishiso-4-gh.sh 30 | sudo ./publishiso-5-local.sh 31 | -------------------------------------------------------------------------------- /publishiso-1-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso publishiso: auto publish files. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | 7 | function try { "$@" || sleep 0; } 8 | set -e 9 | cd $(dirname $0) 10 | 11 | echo ${1? 错误:请指定一个参数,作为版本号(git tag),例如 v1.0.0。当前已有版本号:$(git tag -l)} || exit 12 | echo $1 >publishiso-version 13 | 14 | git add . 15 | # git commit 在无文件要提交时会 exit 1 16 | try git commit -am "Update of $1 Release." 17 | git tag -f $1 18 | git push 19 | git push --tags -f 20 | 21 | originiso="$(fd --base-directory OUT .iso)" 22 | # 如果不先 declare 的话,source profiledef.sh 会报错(虽然问题不大) 23 | declare -A file_permissions=();source profiledef.sh 24 | iso="${iso_name}-${iso_version}-$1-${arch}.iso" 25 | echo $iso >publishiso-filename 26 | mkdir -p release 27 | cp -f OUT/$originiso release/$iso || if ! test -f release/$iso; then exit 1; fi 28 | 29 | sed -i "1c\文件名:$iso" result.log 30 | sed -i "1c\文件名:$iso" result.md 31 | -------------------------------------------------------------------------------- /publishiso-2-bt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso publishiso: auto publish files. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | 7 | # 利用 github-cli 与 transmission 与 qbittorrent-nox 自动发布。 8 | # 种子文件会上传到 GitHub Releases。 9 | # 需要配置 github-cli 。使用 gh auth login 。 10 | # 11 | # 注:为什么一定是两个软件(transmission,qbittorrent)而不是一个呢? 12 | # 因为,经过大量实验,找不到任何通过 bash 让 qbittorrent 制作种子(create seed)的方法; 13 | # 也同样经过大量实验,找不到任何通过 bash 让 transmission 识别到已经存在的 iso 镜像文件从而自动做种(seeding)的方法。 14 | # 各种实验都以失败告终。不要再浪费时间了。 15 | # 目前用 transmission 制作种子,用 qbittorrent-nox 做种,简便易行,这样就足够了。 16 | # 17 | # 未来可能:找个云服务器,使用 seafile 以 https 分享文件。 18 | # 另外,github 支持 2G 以内的 release,但速度太慢还容易断连(国内),用 kkgithub 等也太占用资源了。 19 | # 做得比较成熟、具有一定知名度之后,还可以找 tuna、ustc 等镜像站请求做镜像。 20 | 21 | # 用 transmission 做种后,以 qbittorrent 发布的方法(来自网络,出处找不到了,放在这里供备用) 22 | # (直接运行本脚本,实测是可以的,所以不需要看这个) 23 | # 首先配置 qbittorrent: 24 | # In "Downloads" change "Save files to location" to the location of the data in the node that is going to be seeding 25 | # otherwise that node wont know it has the files specified in the torrent and wont seed them. 26 | # In "Speed" tab uncheck "Enable bandwidth management (uTP)" 27 | # Uncheck "Apply rate limit to uTP connections" to avoid issues with the torrents sometimes starting as queued and requiring a "force resume" 28 | # In "BitTorrent" tab uncheck "Torrent Queueing". This doesn't appear to have fixed the problem 100% though 29 | # 然后运行以下命令开始做种: 30 | # $ qbittorrent-nox ~/path/to/torrent/file/name_of_file.torrent 31 | 32 | trackerlist="https://gitea.com/XIU2/TrackersListCollection/raw/branch/master/best.txt" 33 | 34 | function try { "$@" || sleep 0; } 35 | set -e 36 | cd $(dirname $0) 37 | 38 | ver="$(cat publishiso-version)" 39 | 40 | tf="$(pwd)/bt/arCNiso.$ver.torrent" 41 | tfr="$(pwd)/bt/arCNiso.latest.torrent" 42 | iso="$(cat publishiso-filename)" 43 | try rm $tf 44 | try rm $tfr 45 | mkdir -p bt 46 | # 每天只更新一次tracker 47 | date="$(date +%Y%m%d)" 48 | olddate="$(try cat bt/trackerlistdate)" 49 | if [ y"$date" != y"$olddate" ]; then curl "$trackerlist" -o bt/tracker.txt; fi 50 | echo "$date" >bt/trackerlistdate 51 | 52 | echo "开始制作种子。" 53 | # 使用 transmission 制作种子;qbittorrent-nox 不在 cli 中提供此工具 54 | transmission-create "$(pwd)/release/$iso" -o $tf -c "$ver 版本发布的镜像文件。源地址:https://github.com/clsty/arCNiso" 55 | for i in $(cat bt/tracker.txt); do 56 | transmission-edit -a "$i" $tf 57 | done 58 | echo "结束制作种子。" 59 | 60 | echo "开始添加种子。" 61 | # 默认在浏览器访问 http://localhost:8080 即可进入 qbittorrent 界面(WebUI)。 62 | echo "尝试在后台运行 qbittorrent-nox..." 63 | try qbittorrent-nox -d # 尝试在后台运行 64 | echo "尝试向 qbittorrent-nox 添加任务..." 65 | qbittorrent-nox "$tf" --save-path="$(pwd)/release/" 66 | #transmission-remote --add "$tf" --download-dir "$(pwd)/release/" 67 | #transmission-remote -t $(transmission-remote -l | grep "$iso" | awk '{print $ver}') -s --find "$(pwd)/release/" 68 | echo "结束添加种子。" 69 | 70 | echo "开始创建 $ver 的 release(并添加种子)。" 71 | cp $tf $tfr 72 | try gh release delete $ver -y 73 | echo "注:若在这上面出现 release not found 是因为尝试删除指定 release 未果,是正常的。" 74 | gh release create $ver $tfr --generate-notes --latest --notes-file result.log --verify-tag 75 | echo "结束创建 $ver 的 release 。" 76 | -------------------------------------------------------------------------------- /publishiso-3-alist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso publishiso: auto publish files. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 7 | function try { "$@" || sleep 0; } 8 | set -e 9 | cd $(dirname $0) 10 | 11 | iso="$(cat publishiso-filename)" 12 | 13 | function testthefile { 14 | echo "正在测试 $1 是否存在..." 15 | echo "此测试将无限循环,直到 $1 存在" 16 | aaa test -f "$1" 17 | } 18 | testthefile ./ignoredinfo/rsyncpath-publishiso 19 | 20 | echo "正在用 rsync 同步 iso..." 21 | cp -f ./result.md ./release/README.md 22 | 23 | # 清空目标目录 24 | aaa rsync --delete-before --info=progress2 -avre ssh \ 25 | $(mktemp -d)/ $(cat ./ignoredinfo/rsyncpath-publishiso) 26 | # --partial 断点续传 27 | for i in "$iso" README.md;do 28 | aaa rsync --info=progress2 --partial -avre ssh \ 29 | ./release/$i $(cat ./ignoredinfo/rsyncpath-publishiso) 30 | done 31 | 32 | # ================================= 33 | # ================================= 34 | # ================================= 35 | # 以下代码仅作存档。 36 | # 以下方法实测不可行) 37 | # 如果想用挂载到本地的方法的话,可以 38 | # mkdir -p ~/123pan 39 | # rclone mount 123pan:/ ~/123pan --cache-dir /tmp/123pan --vfs-cache-mode full --multi-thread-streams 8 --vfs-read-chunk-size 256M --vfs-read-chunk-size-limit 800M --buffer-size 4096M 40 | # 最后这句会“卡住”,但实际上只是前台运行罢了。可以放到脚本里,后台运行此脚本。 41 | # 这样就可以通过 ~/123pan 访问 123pan 了。 42 | #rsync -av --progress ./release/$iso ~/123pan/release/arCNiso/ 43 | # 44 | # 45 | # 46 | # 注意,此自动发布已失效!! 47 | # 当前配置:打开web代理、webdav本地代理, 48 | # 根文件夹ID填0, 49 | # 打开流式上传, 50 | # 结果:要么提示 504 method not allowed,要么提示 object not found, 51 | # (但是上传 README.org 这种级别的小文件就完全没问题。) 52 | # 如果不打开流式上传,则会立即上传到 100%(显然,这是本地缓存)然后等15分钟都没传完(显然是卡了,平时5分钟就传完了的) 53 | 54 | # 先安装 aur/alist-bin,然后 sudo systemctl enable --now alist ,再在浏览器打开alist界面(默认是 http://0.0.0.0:5244),用户名和密码则是看 sudo alist admin --data /var/lib/alist 55 | # 然后添加 123pan 的存储,挂载到 /123pan(注意这是 alist 下的某个目录,不是本地目录),填写用户名与密码,选本地代理,最后勾选流式上传,保存。 56 | # 建议 sudo systemctl enable alist,这样之后 alist 会自动运行。 57 | # 58 | # alist 的作用之一是将网盘等存储变成 webdav 服务。接下来应当用 rclone,可以将 webdav 挂载到本地,或想办法直接用 webdav 上传文件。 59 | # 先安装 rclone,再 rclone config,添加一个实例,名为 123pan,webdav, 60 | # 地址是 http://0.0.0.0:5244/dav/123pan ("http://0.0.0.0:5244/dav/" 是 alist 的 webdav 地址) 61 | # 用户名与密码就是 alist 的那个。 62 | # 这样就添加完毕了,可以用 rclone copy 等方法进行传输。 63 | # 64 | # 65 | # rclone delete 会将一个目录下的所有文件(包括子文件夹里的)都删除,且无需确认,也不会报错;但是所有子文件夹都不会被删除 66 | #try rclone delete clsty:/public/arCNiso/release 67 | #rclone copy -P ./release/"$iso" clsty:/public/arCNiso/release/ 68 | -------------------------------------------------------------------------------- /publishiso-4-gh.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso publishiso: auto publish files. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | 7 | # 利用 github-cli 自动发布。 8 | # iso 文件会上传至 GitHub Releases(需要大小小于 2GiB) 9 | # 需要配置 github-cli 。使用 gh auth login 。 10 | 11 | function try { "$@" || sleep 0; } 12 | set -e 13 | cd $(dirname $0) 14 | 15 | ver="$(cat publishiso-version)" 16 | 17 | iso="$(cat publishiso-filename)" 18 | 19 | echo "开始上传 iso 文件至 GitHub Releases。" 20 | gh release upload $ver "$(pwd)/release/$iso" 21 | echo "结束上传 iso 文件至 GitHub Releases。" 22 | -------------------------------------------------------------------------------- /publishiso-5-local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @Author: clsty 3 | # @Title: arCNiso publishiso: auto publish files. 4 | # @URL: https://github.com/clsty/arCNiso 5 | # @License: GNU GPL v3.0 License 6 | # 7 | function aaa { while true;do if "$@";then break;else echo "!! Retrying \"$@\"";sleep 1;fi;done; } 8 | function try { "$@" || sleep 0; } 9 | set -e 10 | cd $(dirname $0) 11 | 12 | iso="$(cat publishiso-filename)" 13 | filter=$(cat</dev/null 2>&1 & 14 | --------------------------------------------------------------------------------