Skip to content

eastack/ohmyarch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oh My Arch

一个使用 Shell 脚本编写的 Arch Linux 配置管理工具。

依赖

  • openssh

  • rsync

  • sudo

  • zsh

下载

curl -sSL https://ghproxy.com/https://github.com/eastack/ohmyarch/archive/main.tar.gz | tar -zxv

使用

命令格式

./ohmyarch ACTION [APPNAME]...

简单示例

比如我们想管理 zsh 的安装。 首先可以创建一个名为 zsh 的文件夹用来存储相关脚本。

mkdir zsh

然后在 zsh 文件夹下创建一个名为 setup 的文件,在其中编写对应脚本。 .zsh/setup

echo "setup $app starting" # (1)
setup zsh # (2)
echo "setup $app finished" # (3)
  1. 本质上是 shell 脚本,可以书写任意有效 shell 语句

  2. setupohmyarch 提供的函数,通过 pacman 安装指定应用

  3. 变量 app 的值由 ohmyarch 提供,取值自当前所处文件夹,比如这里是 zsh

最后执行下面的命令便可以执行 zsh/setup 脚本。

./ohmyarch setup zsh

安装 Arch Linux

  1. 设置环境变量

    export NAME='eastack'   # 用户名
    export UPWD='12345'     # 用户密码
    export RPWD='67890'     # ROOT密码
    export DISK='/dev/sda'  # 系统安装磁盘
  2. 执行脚本进行系统安装

    Note
    脚本将会格式化 DISK 环境变量指定磁盘,使用前前请务必阅读脚本 archlinux/install
    ./ohmyarch install archlinux
  3. 重启进入新系统

    reboot

备份还原

这里我们还以 zsh 为例,如果要管理其配置文件,则需要在 zsh 下创建 .archives 文件夹,再在其下创建任意命名的文件夹用来存储要备份的配置如文件、文件权限等。

  1. 配置

    然后将要进行管理文件的绝对路径添加到 ./zsh/.archives/main/file 文件中

  2. 备份

    文件将保持其路径备份到 ./zsh/.archives/main 目录下。 而其相关权限也被保存于 ./zsh/.archives/main/facl 文件中。

    ./ohmyarch backup zsh
  3. 还原

    将会还原文件内容和其相关权限信息。

    ./ohmyarch restore zsh

如果不指定应用名称的话默认对所有应用执行操作

比如将安装所有配置的应用
./ohmyarch setup

待办

  • 蓝牙键盘连接时自动执行 ~/.keymapping Udev

  • 触摸板手势

  • 使用Python备份还原指定的idea配置字段(貌似 xslt + xsltproc 就可以了)

  • 私密数据分库存储,使用git-crypt进行加密

  • autostart app to systemd

  • mutt configuration

  • docker config credentials store https://docs.docker.com/engine/reference/commandline/login/#credentials-store

  • useing pass

  • bat add for switheme

  • gnupg and openssh rebackup

片段

修改用户名
sed -i "s/radix10/eastack/" $(ls ./*/.archives/*/facl)
ls -d ./*/.archives/*/home/radix10 | xargs -I file sh -c 'sudo mv file $(dirname file)/eastack'
设置电池充电阀值
sudo tlp setcharge 75 80
jb square