diff --git a/.github/workflows/sync-main.yml b/.github/workflows/sync-main.yml index d92f97f..8b95eba 100644 --- a/.github/workflows/sync-main.yml +++ b/.github/workflows/sync-main.yml @@ -2,11 +2,18 @@ name: Sync branches into main on: schedule: - - cron: "0 14 * * 1" - - - cron: "0 14 * * 3" + - cron: "0 14 * * 1" # Monday + - cron: "0 14 * * 3" # Wednesday workflow_dispatch: + inputs: + source: + description: Branch to sync into main + required: true + type: choice + options: + - laptop + - desktop permissions: contents: write @@ -17,42 +24,82 @@ jobs: runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Determine source branch id: branch run: | - DOW=$(date -u +%u) - - if [ "$DOW" = "1" ]; then - echo "source=laptop" >> "$GITHUB_OUTPUT" - elif [ "$DOW" = "3" ]; then - echo "source=desktop" >> "$GITHUB_OUTPUT" - else - echo "Not a scheduled sync day" - exit 1 + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + echo "source=${{ inputs.source }}" >> "$GITHUB_OUTPUT" + exit 0 fi - - name: Create pull request - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.GITHUB_TOKEN }} - base: main - branch: ${{ steps.branch.outputs.source }} - title: "Weekly sync: ${{ steps.branch.outputs.source }} → main" - body: | - This pull request was created automatically by GitHub Actions. + DOW=$(date -u +%u) - If the branch can be merged cleanly, auto-merge will merge it automatically. + case "$DOW" in + 1) + echo "source=laptop" >> "$GITHUB_OUTPUT" + ;; + 3) + echo "source=desktop" >> "$GITHUB_OUTPUT" + ;; + *) + echo "No sync scheduled today." + exit 1 + ;; + esac - If there are merge conflicts, this PR will remain open until they are resolved. - draft: false + - name: Check for existing PR + id: existing + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + PR_NUMBER=$(gh pr list \ + --base main \ + --head "${{ steps.branch.outputs.source }}" \ + --state open \ + --json number \ + --jq '.[0].number // empty') + + echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT" + + - name: Create PR + id: create + if: steps.existing.outputs.number == '' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr create \ + --base main \ + --head "${{ steps.branch.outputs.source }}" \ + --title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \ + --body "This pull request was created automatically by GitHub Actions." + + PR_NUMBER=$(gh pr list \ + --base main \ + --head "${{ steps.branch.outputs.source }}" \ + --state open \ + --json number \ + --jq '.[0].number') + + echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT" + + - name: Determine PR number + id: pr + run: | + if [ -n "${{ steps.existing.outputs.number }}" ]; then + echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT" + else + echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT" + fi - name: Enable auto-merge - if: steps.cpr.outputs.pull-request-number + if: steps.pr.outputs.number != '' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh pr merge \ - ${{ steps.cpr.outputs.pull-request-number }} \ + "${{ steps.pr.outputs.number }}" \ --auto \ --merge diff --git a/flake.lock b/flake.lock index 7fc496e..5d7e439 100644 --- a/flake.lock +++ b/flake.lock @@ -156,22 +156,6 @@ "type": "github" } }, - "microPlugins-vivify": { - "flake": false, - "locked": { - "lastModified": 1770382657, - "narHash": "sha256-yWmIgT90mC9PhzyH/itDbRMmRTiZiwW+Yo0dsHW7ni8=", - "ref": "refs/heads/main", - "rev": "3c5cb25facf3fc4143bfea9323a60eda65ef8485", - "revCount": 8, - "type": "git", - "url": "https://codeberg.org/gibbert/micro-vivify" - }, - "original": { - "type": "git", - "url": "https://codeberg.org/gibbert/micro-vivify" - } - }, "nix-git-cherry-picker": { "inputs": { "flake-utils": [ @@ -391,7 +375,6 @@ "flake-utils": "flake-utils", "home-manager": "home-manager", "import-tree": "import-tree", - "microPlugins-vivify": "microPlugins-vivify", "nix-git-cherry-picker": "nix-git-cherry-picker", "nixos-grub-themes": "nixos-grub-themes", "nixpkgs": "nixpkgs_2", diff --git a/flake.nix b/flake.nix index 363ea8a..c86261b 100644 --- a/flake.nix +++ b/flake.nix @@ -45,10 +45,12 @@ url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; - /*microPlugins-vivify = { + /* + microPlugins-vivify = { url = "git+https://codeberg.org/gibbert/micro-vivify"; flake = false; - };*/ + }; + */ flake-parts = { url = "github:hercules-ci/flake-parts"; }; diff --git a/modules/applications/git.nix b/modules/applications/git.nix index 02a2c6e..4d12f77 100644 --- a/modules/applications/git.nix +++ b/modules/applications/git.nix @@ -2,9 +2,11 @@ _: { flake.homeModules.git = _: { programs.git = { enable = true; - /*settings = { + /* + settings = { init.defaultBranch = "main"; - };*/ + }; + */ }; programs.gh = { enable = true; diff --git a/modules/applications/kdrive.nix b/modules/applications/kdrive.nix index e7cac9a..d432f13 100644 --- a/modules/applications/kdrive.nix +++ b/modules/applications/kdrive.nix @@ -25,22 +25,24 @@ systemd.user.services.kdrive-sync = { serviceConfig = { ExecStart = "${self.packages.${pkgs.system}.custom-synckdrive-desktop}/bin/custom-synckdrive"; - - Nice = 19; # lowest CPU scheduling priority + + Nice = 19; # lowest CPU scheduling priority IOSchedulingClass = "idle"; IOSchedulingPriority = 7; - + # Optional: - CPUWeight = 1; # minimum relative CPU share + CPUWeight = 1; # minimum relative CPU share }; }; - /*systemd.user.timers.kdrive-sync = { + /* + systemd.user.timers.kdrive-sync = { wantedBy = [ "timers.target" ]; timerConfig = { OnBootSec = "1m"; OnUnitActiveSec = "5m"; }; - };*/ + }; + */ }; perSystem = {pkgs, ...}: { packages.custom-checkKdrive = pkgs.writeShellApplication { diff --git a/modules/applications/zsh.nix b/modules/applications/zsh.nix index 59525d7..c58545b 100644 --- a/modules/applications/zsh.nix +++ b/modules/applications/zsh.nix @@ -33,7 +33,7 @@ _: { command cat "$@" fi } - + custom-eza() { # behaves differently if we just call it or if we pipe initContent if [[ -t 1 ]]; then eza -hlF -aa --color=always --hyperlink --group-directories-first --show-symlinks --icons=always --git --no-permissions "$@" diff --git a/modules/hardware/disko/disko-config.nix b/modules/hardware/disko/disko-config.nix index 53cee37..f78d8dd 100644 --- a/modules/hardware/disko/disko-config.nix +++ b/modules/hardware/disko/disko-config.nix @@ -30,7 +30,7 @@ _: { content = { type = "btrfs"; - extraArgs = [ "-f" ]; + extraArgs = ["-f"]; subvolumes = { "@root" = { diff --git a/modules/hardware/hardware-configuration.nix b/modules/hardware/hardware-configuration.nix index 1cbe592..9087fa0 100644 --- a/modules/hardware/hardware-configuration.nix +++ b/modules/hardware/hardware-configuration.nix @@ -33,49 +33,53 @@ _: { nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; }; -flake.nixosModules.hardware-configuration-desktop = # Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: + flake.nixosModules.hardware-configuration-desktop = + # Do not modify this file! It was generated by ‘nixos-generate-config’ + # and may be overwritten by future invocations. Please make changes + # to /etc/nixos/configuration.nix instead. + { + config, + lib, + modulesPath, + ... + }: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + boot.initrd.availableKernelModules = ["vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + fileSystems."/" = { + device = "/dev/disk/by-uuid/14bcd132-b4a3-46f2-ac35-3497340de4b2"; + fsType = "btrfs"; + }; - fileSystems."/" = - { device = "/dev/disk/by-uuid/14bcd132-b4a3-46f2-ac35-3497340de4b2"; - fsType = "btrfs"; + fileSystems."/home" = { + device = "/dev/disk/by-uuid/14bcd132-b4a3-46f2-ac35-3497340de4b2"; + fsType = "btrfs"; + options = ["subvol=home"]; + }; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/14bcd132-b4a3-46f2-ac35-3497340de4b2"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/BAB4-34F6"; + fsType = "vfat"; + options = ["fmask=0077" "dmask=0077"]; + }; + + swapDevices = [ + {device = "/dev/disk/by-uuid/ce6f9a68-0517-4f8a-b375-66f2173efe59";} + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; }; - - fileSystems."/home" = - { device = "/dev/disk/by-uuid/14bcd132-b4a3-46f2-ac35-3497340de4b2"; - fsType = "btrfs"; - options = [ "subvol=home" ]; - }; - - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/14bcd132-b4a3-46f2-ac35-3497340de4b2"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/BAB4-34F6"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/ce6f9a68-0517-4f8a-b375-66f2173efe59"; } - ]; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -}; } diff --git a/modules/hardware/nvidia.nix b/modules/hardware/nvidia.nix index 911c8d5..adb4a80 100644 --- a/modules/hardware/nvidia.nix +++ b/modules/hardware/nvidia.nix @@ -1,7 +1,7 @@ _: { flake.nixosModules.nvidia = _: { hardware.graphics.enable = true; - services.xserver.videoDrivers = [ "nvidia" ]; + services.xserver.videoDrivers = ["nvidia"]; hardware.nvidia.open = true; }; } diff --git a/modules/utilities/development.nix b/modules/utilities/development.nix index 49f46ce..a851b63 100644 --- a/modules/utilities/development.nix +++ b/modules/utilities/development.nix @@ -24,7 +24,8 @@ gnumake go direnv - git gh + git + gh cling # c interpreter used for coding # lsp clang-tools diff --git a/modules/utilities/nixGitCherryPicker.nix b/modules/utilities/nixGitCherryPicker.nix index 8059f04..8b13c75 100644 --- a/modules/utilities/nixGitCherryPicker.nix +++ b/modules/utilities/nixGitCherryPicker.nix @@ -39,16 +39,16 @@ home.packages = [ inputs.nix-git-cherry-picker.packages.${pkgs.system}.default ]; + home.file.".config/nix-git-cherry-picker/config.json" = { + enable = true; + text = '' + { + "localBranch": "desktop", + "remoteBranch": "laptop", + "nixConfigPath": "/home/tomasr/nixos/" + } + ''; + force = true; + }; }; - home.file-".config/nix-git-cherry-picker/config.json" = { - enable = true; - text = '' - { - "localBranch": "desktop", - "remoteBranch": "laptop", - "nixConfigPath": "/home/tomasr/nixos/" - } - ''; - force = true; - }; -} \ No newline at end of file +}