Compare commits

..

20 commits

Author SHA1 Message Date
cy
0bb3332db9 ghostty: init 2025-01-21 12:23:16 -05:00
cy
6a2269f591 add irssi 2025-01-21 12:07:49 -05:00
cy
bbcc1433de nix fmt 2025-01-21 04:25:30 -05:00
cy
ae71a8a779 add garnix and cachix cache 2025-01-21 04:22:58 -05:00
cy
4ceb7f7830 add garnix.yaml 2025-01-21 04:05:32 -05:00
cy
0c6b96bc8e Merge branch 'zen' 2025-01-21 04:04:36 -05:00
cy
2c2d5a4103 niri doesnt start if DISPLAY is set before 2025-01-21 04:04:32 -05:00
cy
38b90fd28e overlay zen 2025-01-21 04:04:08 -05:00
cy
40addb8f90 try zen kernel 2025-01-21 01:39:52 -05:00
cy
3a415ccce9 downgrade kernel to 6.12 2025-01-20 23:36:54 -05:00
cy
21fdf27b6c use input to build packages 2025-01-20 21:01:20 -05:00
cy
222fc45918 flake update 2025-01-20 20:51:57 -05:00
cy
0cc8d4195f some niri changes 2025-01-20 20:50:51 -05:00
cy
d29d23c3e8 unbreak element 2025-01-20 20:50:13 -05:00
cy
240d8b2820 add lact package 2025-01-20 20:12:33 -05:00
cy
b2582a051d also run workflow on PR 2025-01-20 13:37:18 -05:00
cy
e78bda179e move packages to a separate workflow 2025-01-20 13:37:18 -05:00
cy
1d7b20d51d use more specific primary-key and prefix-match 2025-01-20 13:37:18 -05:00
cy
3a621723d1 revamp workflow (cy/infra#4)
Reviewed-on: cy/infra#4
Co-authored-by: cy <cy@cy7.sh>
Co-committed-by: cy <cy@cy7.sh>
2025-01-20 02:59:35 -05:00
cy
d7f51613fd forgejo: enable repo indexer 2025-01-20 02:36:22 -05:00
15 changed files with 213 additions and 125 deletions

View file

@ -1,39 +1,9 @@
name: build and cache random stuff name: build and cache machines and homes
on: on:
workflow_dispatch: workflow_dispatch:
push: push:
pull_request:
jobs: jobs:
build-packages:
strategy:
matrix:
package:
- github:cything/nixpkgs#hello
os:
- ubuntu-latest
- macos-latest
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- name: Install Nix
uses: cachix/install-nix-action@v30
- uses: cachix/cachix-action@v14
with:
name: cything
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
useDaemon: false
installCommand: nix profile install nixpkgs#cachix
- name: Setup Attic cache
uses: ryanccn/attic-action@v0
with:
endpoint: ${{ vars.ATTIC_ENDPOINT }}
cache: ${{ vars.ATTIC_CACHE }}
token: ${{ secrets.ATTIC_TOKEN }}
- run: nix build -L '${{ matrix.package }}'
build-machines: build-machines:
strategy: strategy:
matrix: matrix:
@ -43,8 +13,6 @@ jobs:
- titan - titan
os: os:
- ubuntu-latest - ubuntu-latest
# - macos-latest
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
continue-on-error: true continue-on-error: true
steps: steps:
@ -59,32 +27,41 @@ jobs:
remove-codeql: 'true' remove-codeql: 'true'
remove-docker-images: 'true' remove-docker-images: 'true'
build-mount-path: /nix build-mount-path: /nix
build-mount-path-ownership: 'root:root' - uses: nixbuild/nix-quick-install-action@master
- name: Sync repository
- name: Install Nix uses: actions/checkout@v4
uses: cachix/install-nix-action@v30
- name: Setup Attic cache
uses: ryanccn/attic-action@v0
with: with:
endpoint: ${{ vars.ATTIC_ENDPOINT }} persist-credentials: false
cache: ${{ vars.ATTIC_CACHE }}
token: ${{ secrets.ATTIC_TOKEN }}
- uses: cachix/cachix-action@v14 - uses: cachix/cachix-action@v14
with: with:
name: cything name: cything
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
useDaemon: false useDaemon: false
installCommand: nix profile install nixpkgs#cachix installCommand: nix profile install nixpkgs#cachix
- name: Setup Attic cache
- name: Sync repository uses: ryanccn/attic-action@v0
uses: actions/checkout@v4
with: with:
persist-credentials: false endpoint: ${{ vars.ATTIC_ENDPOINT }}
cache: ${{ vars.ATTIC_CACHE }}
- run: nix build -L --accept-flake-config .#nixosConfigurations.${{ matrix.machine }}.config.system.build.toplevel token: ${{ secrets.ATTIC_TOKEN }}
- name: Restore and cache Nix store
uses: nix-community/cache-nix-action@v5.1.0
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ matrix.machine }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.machine }}-
# do purge caches
purge: true
# purge all versions of the cache
purge-prefixes: nix-${{ runner.os }}-
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
purge-last-accessed: 86400
# except the version with the `primary-key`, if it exists
purge-primary-key: never
# always save the cache
save-always: true
- run: nix build -L .#nixosConfigurations.${{ matrix.machine }}.config.system.build.toplevel
build-homes: build-homes:
strategy: strategy:
matrix: matrix:
@ -94,7 +71,6 @@ jobs:
os: os:
- ubuntu-latest - ubuntu-latest
# - macos-latest # - macos-latest
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
continue-on-error: true continue-on-error: true
steps: steps:
@ -109,28 +85,38 @@ jobs:
remove-codeql: 'true' remove-codeql: 'true'
remove-docker-images: 'true' remove-docker-images: 'true'
build-mount-path: /nix build-mount-path: /nix
build-mount-path-ownership: 'root:root' - uses: nixbuild/nix-quick-install-action@master
- name: Sync repository
- name: Install Nix uses: actions/checkout@v4
uses: cachix/install-nix-action@v30
- name: Setup Attic cache
uses: ryanccn/attic-action@v0
with: with:
endpoint: ${{ vars.ATTIC_ENDPOINT }} persist-credentials: false
cache: ${{ vars.ATTIC_CACHE }}
token: ${{ secrets.ATTIC_TOKEN }}
- uses: cachix/cachix-action@v14 - uses: cachix/cachix-action@v14
with: with:
name: cything name: cything
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
useDaemon: false useDaemon: false
installCommand: nix profile install nixpkgs#cachix installCommand: nix profile install nixpkgs#cachix
- name: Setup Attic cache
- name: Sync repository uses: ryanccn/attic-action@v0
uses: actions/checkout@v4
with: with:
persist-credentials: false endpoint: ${{ vars.ATTIC_ENDPOINT }}
cache: ${{ vars.ATTIC_CACHE }}
- run: nix build -L --accept-flake-config .#homeConfigurations."${{ matrix.home }}".activationPackage token: ${{ secrets.ATTIC_TOKEN }}
- name: Restore and cache Nix store
uses: nix-community/cache-nix-action@v5.1.0
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ matrix.home }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.home }}-
# do purge caches
purge: true
# purge all versions of the cache
purge-prefixes: nix-${{ runner.os }}-
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
purge-last-accessed: 86400
# except the version with the `primary-key`, if it exists
purge-primary-key: never
# always save the cache
save-always: true
- run: nix build -L .#homeConfigurations."${{ matrix.home }}".activationPackage

59
.github/workflows/build-packages.yml vendored Normal file
View file

@ -0,0 +1,59 @@
name: build and cache packages
on:
workflow_dispatch:
inputs:
package:
description: "package to build"
required: false
type: string
jobs:
build-packages:
strategy:
matrix:
package:
- github:cything/nixpkgs/928e0c6874ab3e759305e93f806a4cf559645677#alvr
- github:cything/nixpkgs/8929e1256ceec677dd57fce405cdaca23176399b#lact
- ${{ inputs.package }}
os:
- ubuntu-latest
- macos-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- name: Install Nix
uses: cachix/install-nix-action@v30
- name: Sync repository
uses: actions/checkout@v4
with:
persist-credentials: false
- uses: cachix/cachix-action@v14
with:
name: cything
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
useDaemon: false
installCommand: nix profile install nixpkgs#cachix
- name: Setup Attic cache
uses: ryanccn/attic-action@v0
with:
endpoint: ${{ vars.ATTIC_ENDPOINT }}
cache: ${{ vars.ATTIC_CACHE }}
token: ${{ secrets.ATTIC_TOKEN }}
- name: Restore and cache Nix store
uses: nix-community/cache-nix-action@v5.1.0
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ matrix.package }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.package }}-
# do purge caches
purge: true
# purge all versions of the cache
purge-prefixes: nix-${{ runner.os }}-
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
purge-last-accessed: 86400
# except the version with the `primary-key`, if it exists
purge-primary-key: never
# always save the cache
save-always: true
- run: nix build -L ${{ matrix.package }}

42
flake.lock generated
View file

@ -207,11 +207,11 @@
"zig": "zig" "zig": "zig"
}, },
"locked": { "locked": {
"lastModified": 1737085478, "lastModified": 1737430029,
"narHash": "sha256-EzdUQf1ljtGIWMmscVzoW3rUxxN3UKyNXOXbzUvz3BQ=", "narHash": "sha256-z55IQogW9z4HhVeT55LlCUFKbYD5O5aLMnU5cX1WTto=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "72d085525b22d66468c5969a4d507a0fa68d4a04", "rev": "5cb2fa6f7594202b12a2603bf32094aa75b1bf0e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -297,11 +297,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737299337, "lastModified": 1737394973,
"narHash": "sha256-0NBrY2A7buujKmeCbieopOMSbLxTu8TFcTLqAbTnQDw=", "narHash": "sha256-EW4oXMfnfA5sNM9Jqm+y98horWVvN66Gu7YIcEpFYZc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "f8ef4541bb8a54a8b52f19b52912119e689529b3", "rev": "9786661d57c476021c8a0c3e53bf9fa2b4f3328b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -397,11 +397,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1737325400, "lastModified": 1737373716,
"narHash": "sha256-B8+1x5rDA9GtzX+LWlceIbLBwncKH5uDrGqEN0EoOQw=", "narHash": "sha256-GRI9WugYv8QlnhZlINfY8gHIR+xn/AsEXhQP3+FjUh0=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "aad9ae8e2b07ed5d37743f3ae87c42528e2d172c", "rev": "5aa5e53601ff1d93ae6b4dc6f833c73fc8de6466",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -430,11 +430,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737211438, "lastModified": 1737370409,
"narHash": "sha256-XPcV2rV7Vy7lLeZMhTOwd0t/sRwNquXI7CH7+3Aftt0=", "narHash": "sha256-khoHHrpP/yArGEm94H/GtZytGzfJECsAEGmB9DLWb7M=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "818248457210f5101459ea7d7066d12c456c8a97", "rev": "7f025da5b6edb1d77e785ba6a6450ab10788ad8f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -466,11 +466,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1737274611, "lastModified": 1737401148,
"narHash": "sha256-tmD7875tu1P0UvhI3Q/fXvIe8neJo7H9ZrPQ+QF7Q3E=", "narHash": "sha256-8YfoGyE89rWpG6NjCmYrJeV8EPAKvnZf2lN402WbC/A=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "50165c4f7eb48ce82bd063e1fb8047a0f515f8ce", "rev": "7ceed4f800bec4c12c9b21c54bb76cb28a80e259",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -587,11 +587,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1737308837, "lastModified": 1737385899,
"narHash": "sha256-Sro74XNFgGgIIW4uo/YSVGafZhKnZwPLJNBvMsgpl4k=", "narHash": "sha256-/zyvdstDpPhc5lhFMtKgyQdU2oXGXDb0cg4BY91NKvg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "8fb2fe22c237b25b8af346870e126fdaeaff688b", "rev": "115994f18e439a1cca9cdaaf15c004870256814d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -714,11 +714,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737107480, "lastModified": 1737411508,
"narHash": "sha256-GXUE9+FgxoZU8v0p6ilBJ8NH7k8nKmZjp/7dmMrCv3o=", "narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6", "rev": "015d461c16678fc02a2f405eb453abb509d4e1d4",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -46,11 +46,15 @@
"https://cache.cything.io/central" "https://cache.cything.io/central"
"https://niri.cachix.org" "https://niri.cachix.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://cache.garnix.io"
"https://cything.cachix.org"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg=" "central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"cything.cachix.org-1:xqW1W5NNL+wrM9wfSELb0MLj/harD2ZyB4HbdaMyvPI="
]; ];
builders-use-substitutes = true; builders-use-substitutes = true;
}; };
@ -111,7 +115,6 @@
overlays = [ overlays = [
inputs.niri.overlays.niri inputs.niri.overlays.niri
inputs.rust-overlay.overlays.default inputs.rust-overlay.overlays.default
inputs.ghostty.overlays.default
] ++ import ./overlay; ] ++ import ./overlay;
}; };
in in

6
garnix.yaml Normal file
View file

@ -0,0 +1,6 @@
builds:
include:
- 'nixosConfigurations.*'
- 'homeConfigurations.*'
- '*.aarch64-linux.*'
- '*.x86_64-linux.*'

View file

@ -17,40 +17,32 @@
blink = "yes"; blink = "yes";
blink-rate = 500; blink-rate = 500;
beam-thickness = 1.5; beam-thickness = 1.5;
color = "161821 c6c8d1";
}; };
mouse = { mouse = {
hide-when-typing = "yes"; hide-when-typing = "yes";
}; };
colors = { colors = {
background = "161821";
foreground = "c6c8d1"; foreground = "c6c8d1";
background = "161821";
selection-background = "1e2132"; regular0 = "1e2132";
selection-foreground = "c6c8d1";
regular0 = "161821";
bright0 = "6b7089";
regular1 = "e27878"; regular1 = "e27878";
bright1 = "e98989";
regular2 = "b4be82"; regular2 = "b4be82";
bright2 = "c0ca8e";
regular3 = "e2a478"; regular3 = "e2a478";
bright3 = "e9b189";
regular4 = "84a0c6"; regular4 = "84a0c6";
bright4 = "91acd1";
regular5 = "a093c7"; regular5 = "a093c7";
bright5 = "ada0d3";
regular6 = "89b8c2"; regular6 = "89b8c2";
bright6 = "95c4ce";
regular7 = "c6c8d1"; regular7 = "c6c8d1";
bright0 = "6b7089";
bright1 = "e98989";
bright2 = "c0ca8e";
bright3 = "e9b189";
bright4 = "91acd1";
bright5 = "ada0d3";
bright6 = "95c4ce";
bright7 = "d2d4de"; bright7 = "d2d4de";
selection-foreground = "161821";
selection-background = "c6c8d1";
}; };
key-bindings = { key-bindings = {

View file

@ -1,10 +1,12 @@
{ ... }: { { inputs, ... }: {
programs.ghostty = { programs.ghostty = {
enable = true; enable = true;
package = inputs.ghostty.packages.x86_64-linux.ghostty;
enableZshIntegration = true; enableZshIntegration = true;
settings = { settings = {
theme = "gruvbox-dark";
font-family = "IBM Plex Mono"; font-family = "IBM Plex Mono";
font-size = 8; font-size = "12";
window-decoration = false; window-decoration = false;
}; };
}; };

18
home/irssi.nix Normal file
View file

@ -0,0 +1,18 @@
{...}: {
programs.irssi = {
enable = true;
networks.liberachat = {
nick = "cy7";
server = {
address = "irc.libera.chat";
port = 6697;
autoConnect = true;
};
channels = {
nixos.autoJoin = true;
linux.autoJoin = true;
rust.autoJoin = true;
};
};
};
}

View file

@ -6,7 +6,7 @@
}: }:
let let
wallpaper = "${./nixos-c-book.png}"; wallpaper = "${./nixos-c-book.png}";
terminal = "ghostty"; terminal = "foot";
menu = [ menu = [
"fuzzel" "fuzzel"
"-w" "-w"
@ -32,6 +32,14 @@ in
]; ];
} }
{ command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; } { command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; }
{
command = [
"wl-paste"
"--watch"
"cliphist"
"store"
];
}
]; ];
hotkey-overlay.skip-at-startup = true; hotkey-overlay.skip-at-startup = true;
@ -48,14 +56,15 @@ in
environment = { environment = {
DISPLAY = ":0"; # for xwayland-satellite DISPLAY = ":0"; # for xwayland-satellite
ANKI_WAYLAND = "1";
}; };
layout = { layout = {
gaps = 4; gaps = 0;
focus-ring = { focus-ring = {
width = 4; width = 4;
active.color = "#00000055"; active.color = "#4c7899";
inactive.color = "#505050"; inactive.color = "#333333";
}; };
always-center-single-column = true; always-center-single-column = true;
border.enable = false; border.enable = false;

View file

@ -7,6 +7,7 @@
./common.nix ./common.nix
../foot.nix ../foot.nix
../niri ../niri
../irssi.nix
../ghostty.nix ../ghostty.nix
]; ];
home = { home = {
@ -41,11 +42,6 @@
}; };
}; };
home.sessionVariables = {
ANKI_WAYLAND = "1";
DISPLAY = ":0";
};
home.packages = with pkgs; [ home.packages = with pkgs; [
firefox firefox
ungoogled-chromium ungoogled-chromium
@ -103,6 +99,7 @@
seahorse seahorse
github-cli github-cli
fuzzel fuzzel
nixpkgs-review
]; ];
programs.waybar.enable = true; programs.waybar.enable = true;

View file

@ -7,9 +7,12 @@
virtualisation.oci-containers.containers.element = { virtualisation.oci-containers.containers.element = {
image = "vectorim/element-web"; image = "vectorim/element-web";
autoStart = true; autoStart = true;
ports = [ "127.0.0.1:8089:80" ]; ports = [ "127.0.0.1:8089:8089" ];
pull = "newer"; pull = "newer";
networks = [ "element-net" ]; networks = [ "element-net" ];
environment = {
ELEMENT_WEB_PORT = "8089";
};
}; };
systemd.services.create-element-net = { systemd.services.create-element-net = {

View file

@ -20,6 +20,7 @@
}; };
actions.ENABLED = false; actions.ENABLED = false;
repository.ENABLE_PUSH_CREATE_USER = true; repository.ENABLE_PUSH_CREATE_USER = true;
indexer.REPO_INDEXER_ENABLED = true;
}; };
database = { database = {
type = "postgres"; type = "postgres";

View file

@ -41,7 +41,7 @@
efi.canTouchEfiVariables = false; # toggle when installing efi.canTouchEfiVariables = false; # toggle when installing
}; };
tmp.cleanOnBoot = true; tmp.cleanOnBoot = true;
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxKernel.packages.linux_zen;
extraModulePackages = with config.boot.kernelPackages; [ extraModulePackages = with config.boot.kernelPackages; [
rtl8821ce rtl8821ce
]; ];

View file

@ -2,6 +2,7 @@ let
overlays = [ overlays = [
./conduwuit ./conduwuit
./attic ./attic
./kernel.nix
]; ];
importedOverlays = map (m: import m) overlays; importedOverlays = map (m: import m) overlays;
in in

11
overlay/kernel.nix Normal file
View file

@ -0,0 +1,11 @@
final: prev:
let
inherit (prev) lib;
in
{
linuxKernels.kernels.linux_zen = prev.linuxKernels.kernels.linux_zen.override (old: {
extraStructuredConfig = with lib.kernel; {
CONFIG_SCHED_MUQSS = yes;
};
});
}