# 1. commit 规则 - 每个人 fork 自己的 branch, 从自己的 branch 做 PR,review 完再 commit # 2. code format ## 2.1. C 推荐使用 clang-format,公共配置放在源码里面 xce/.clang-format (理论上直接使用源码里面 xce/.clang-format 文件格式不会变) ### 2.1.1. vscode 可以在配置中加上如下内容 ``` "C_Cpp.clang_format_style": "WebKit", "C_Cpp.clang_format_fallbackStyle": "WebKit", ``` ### 2.1.2. vim & emacs clang-format -style="{BasedOnStyle: webkit}" -i XX.c ## 2.2. golang 使用默认 gofmt # 3. build environment and build (example of ubuntu) ## 3.1 build environment - Install nix package management tool ```sh sh <(curl -L https://nixos.org/nix/install) --daemon ``` - Edit /etc/nix/nix.conf to make sure ``` experimental-features = nix-command flakes sandbox = true sandbox-fallback = false substituters = https://mirrors.ustc.edu.cn/nix-channels/store https://cache.nixos.org https://cache.nixos.org/ trusted-users = root ``` make sure that you have restarted nix-daemon service after you have changed /etc/nix/nix.conf - Install socat and config ssh (for clone by ssh protocol) ```sh nix profile add nixpkgs#socat ``` .ssh/config ``` Host gitea.shenrs.eu HostName gitea.shenrs.eu IdentityFile ~/.ssh/id_ed25519 ProxyCommand socat - openssl-connect:gitea.shenrs.eu:2022,snihost=gitea.shenrs.eu,verify=0 ``` ## 3.2 checkout source code ## 3.3 build (for package and release) ```sh cd xce/src # for build debug version nix build --option sandbox false .#xcecore_debug # for normal build nix build --option sandbox false .#xcecore ``` You can find the generated binaries at =result= directory ## 3.4 build (for daily develop) ```sh cd xce/src nix develop # using meson to generated build configuration (debug and address sanitize) meson setup build --buildtype=debug -Db_sanitize=address # run meson to build meson compile -C build # The generated files will be in build/ ``` ## 3.5 build AppImage package ```sh cd xce/src nix bundle --bundler github:ralismark/nix-appimage --option sandbox false .#xce ``` This will create all in one AppImage file which contains everything for package delivery. # 4. misc ## 4.1. Windows remap ctrl and alt key create a reg file, e.g. remapkey.reg ``` Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,05,00,00,00,38,00,1d,00,1d,00,38,00,38,e0,1d,e0,1d,e0,38,e0,00,00,00,00 ``` then double click remapkey.reg to import it. Restart OS.