Compare commits

...

16 commits

Author SHA1 Message Date
github-actions[bot]
b9e0ed6fe5 flake.lock: Update
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/9b7ae25ae83b5b0d6f61fe542391301a57d31270' (2024-03-26)
  → 'github:hyprwm/Hyprland/77f26997fd00aaec958463414269fa3d8f62bb63' (2024-03-30)
• Updated input 'hyprland/hyprcursor':
    'github:hyprwm/hyprcursor/6a92473237f430399a417e1c2da9d7fcd4970086' (2024-03-21)
  → 'github:hyprwm/hyprcursor/d3876f34779cc03ee51e4aafc0d00a4f187c7544' (2024-03-26)
• Updated input 'hyprland/hyprlang':
    'github:hyprwm/hyprlang/a2f39421144d42541c057be235154ce21b76c0f6' (2024-03-20)
  → 'github:hyprwm/hyprlang/b3e430f81f3364c5dd1a3cc9995706a4799eb3fa' (2024-03-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c726225724e681b3626acc941c6f95d2b0602087' (2024-03-25)
  → 'github:nixos/nixpkgs/807c549feabce7eddbf259dbdcec9e0600a0660d' (2024-03-29)
• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/771508700b2666436887b9404aad9c1ec99a9a1a' (2024-03-26)
  → 'github:nix-community/nixpkgs-wayland/11544449e6b696e209463aae094e736368eef757' (2024-03-30)
• Updated input 'stable':
    'github:nixos/nixpkgs/56528ee42526794d413d6f244648aaee4a7b56c0' (2024-03-22)
  → 'github:nixos/nixpkgs/219951b495fc2eac67b1456824cc1ec1fd2ee659' (2024-03-28)
2024-03-31 00:39:54 +00:00
1c33ff1edc
hide completions flag :P 2024-03-27 17:28:29 -05:00
1df7c557a3
use from method and change path->output 2024-03-27 12:38:44 -05:00
5973c4d8e7
formatting 2024-03-27 11:55:06 -05:00
779c1cc710
add support for zsh completions 2024-03-27 11:54:33 -05:00
933f7e1ae0
remove todos 2024-03-27 03:34:58 -05:00
dd827cdf55
make oizys versions one level deeper 2024-03-27 03:33:39 -05:00
1065433ba5
make subcommand required 2024-03-27 03:31:29 -05:00
c27b4dde70
actually use pixos-rebuild unless asked otherwise 2024-03-26 16:39:05 -05:00
a7625a12fe
oizys is dead! long live oizys! 2024-03-26 16:29:41 -05:00
8733cd769d
add recursive 2024-03-26 10:40:00 -05:00
35c2706692
use dedicated pkgs dir 2024-03-26 10:27:50 -05:00
6d3cb34c70
flake.lock: Update
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/2d5fda4810f706a1b6e2c0a1021ce57c8ad2e7a9?narHash=sha256-gMBgRKFQG7TmayqT2XoF74mdkV1GNqeQ2oTSwbHfh2I%3D' (2024-03-23)
  → 'github:hyprwm/Hyprland/9b7ae25ae83b5b0d6f61fe542391301a57d31270?narHash=sha256-YUnZ%2Bqy4ScRIWpb4/ejSv0fHewIGNHnVSLp0FN6elyY%3D' (2024-03-26)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/e25efda85e39fcdc845e371971ac4384989c4295?narHash=sha256-0fjbN5GYYDKPyPay0l8gYoH%2BtFfNqPPwP5sxxBreeA4%3D' (2024-03-17)
  → 'github:nix-community/nix-index-database/34519f3bb678a5abbddf7b200ac5347263ee781b?narHash=sha256-h/NQECj6mIzF4XR6AQoSpkCnwqAM%2Bol4%2BqOdYi2ykmQ%3D' (2024-03-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/20bc93ca7b2158ebc99b8cef987a2173a81cde35?narHash=sha256-dkJmk/ET/tRV4007O6kU101UEg1svUwiyk/zEEX9Tdg%3D' (2024-03-23)
  → 'github:nixos/nixpkgs/c726225724e681b3626acc941c6f95d2b0602087?narHash=sha256-2xu0jVSjuKhN97dqc4bVtvEH52Rwh6%2BuyI1XCnzoUyI%3D' (2024-03-25)
• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/0d291a959d01bb5d2bd2e20689b78258fa842cca?narHash=sha256-glCjdonAlkP5vwZpP8FYD1WCaGYALF5FYRv09XsWu5c%3D' (2024-03-23)
  → 'github:nix-community/nixpkgs-wayland/771508700b2666436887b9404aad9c1ec99a9a1a?narHash=sha256-PK29HGNEu/5m0j8WW1W7yNvd0QumauTtzmPHLR2mnUo%3D' (2024-03-26)
• Updated input 'nixpkgs-wayland/lib-aggregate':
    'github:nix-community/lib-aggregate/f890211817b941d9ed9de48d62ba8553fa2c20f3?narHash=sha256-yqjXunc%2BZvqf6rcH7W9wMvhr18jMZhDvIdnretlfj78%3D' (2024-03-17)
  → 'github:nix-community/lib-aggregate/120535dff702c551ec76a125a181d90131407264?narHash=sha256-s6z371miAZonduv53LQzjthvNCs4R%2BoTbv9cRu%2BiyL8%3D' (2024-03-24)
• Updated input 'nixpkgs-wayland/lib-aggregate/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/fa827dda806c5aa98f454da4c567991ab8ce422c?narHash=sha256-/kB%2BZWSdkZjbZ0FTqm0u84sf2jFS%2B30ysaEajmBjtoY%3D' (2024-03-17)
  → 'github:nix-community/nixpkgs.lib/b2a1eeef8c185f6bd27432b053ff09d773244cbc?narHash=sha256-knrTvpl81yGFHIpm1SsLDApe0thFkw1cl3ISAMPmP/0%3D' (2024-03-24)
2024-03-26 09:42:29 -05:00
3c678f1573
simpler 2024-03-26 09:42:25 -05:00
e3e37a87ac
use more of hypr tools 2024-03-24 14:26:30 -05:00
1754c2cb69
refactor boot 2024-03-24 12:27:14 -05:00
15 changed files with 1063 additions and 48 deletions

View file

@ -68,11 +68,11 @@
]
},
"locked": {
"lastModified": 1711035742,
"narHash": "sha256-5vvhCSUGG9TA2G1eIRgokuYizhRnZu0ZbcU1MXfHsUE=",
"lastModified": 1711466786,
"narHash": "sha256-sArxGyUBiCA1in+q6t0QqT+ZJiZ1PyBp7cNPKLmREM0=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "6a92473237f430399a417e1c2da9d7fcd4970086",
"rev": "d3876f34779cc03ee51e4aafc0d00a4f187c7544",
"type": "github"
},
"original": {
@ -94,11 +94,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1711228347,
"narHash": "sha256-gMBgRKFQG7TmayqT2XoF74mdkV1GNqeQ2oTSwbHfh2I=",
"lastModified": 1711818062,
"narHash": "sha256-YjuzqScxPOQGLxO7eswX9WDFp2K+vBFUTd+4EKEnX1A=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "2d5fda4810f706a1b6e2c0a1021ce57c8ad2e7a9",
"rev": "77f26997fd00aaec958463414269fa3d8f62bb63",
"type": "github"
},
"original": {
@ -188,11 +188,11 @@
]
},
"locked": {
"lastModified": 1710960526,
"narHash": "sha256-tt0UgVKWeLQ+tFzvqrm4uAZbzONwdGshpfiLHAQ1P2c=",
"lastModified": 1711250455,
"narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "a2f39421144d42541c057be235154ce21b76c0f6",
"rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
"type": "github"
},
"original": {
@ -207,11 +207,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1710677371,
"narHash": "sha256-yqjXunc+Zvqf6rcH7W9wMvhr18jMZhDvIdnretlfj78=",
"lastModified": 1711282133,
"narHash": "sha256-s6z371miAZonduv53LQzjthvNCs4R+oTbv9cRu+iyL8=",
"owner": "nix-community",
"repo": "lib-aggregate",
"rev": "f890211817b941d9ed9de48d62ba8553fa2c20f3",
"rev": "120535dff702c551ec76a125a181d90131407264",
"type": "github"
},
"original": {
@ -270,11 +270,11 @@
]
},
"locked": {
"lastModified": 1710644923,
"narHash": "sha256-0fjbN5GYYDKPyPay0l8gYoH+tFfNqPPwP5sxxBreeA4=",
"lastModified": 1711249705,
"narHash": "sha256-h/NQECj6mIzF4XR6AQoSpkCnwqAM+ol4+qOdYi2ykmQ=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "e25efda85e39fcdc845e371971ac4384989c4295",
"rev": "34519f3bb678a5abbddf7b200ac5347263ee781b",
"type": "github"
},
"original": {
@ -285,11 +285,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1711200738,
"narHash": "sha256-dkJmk/ET/tRV4007O6kU101UEg1svUwiyk/zEEX9Tdg=",
"lastModified": 1711715736,
"narHash": "sha256-9slQ609YqT9bT/MNX9+5k5jltL9zgpn36DpFB7TkttM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "20bc93ca7b2158ebc99b8cef987a2173a81cde35",
"rev": "807c549feabce7eddbf259dbdcec9e0600a0660d",
"type": "github"
},
"original": {
@ -301,11 +301,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1710636348,
"narHash": "sha256-/kB+ZWSdkZjbZ0FTqm0u84sf2jFS+30ysaEajmBjtoY=",
"lastModified": 1711241261,
"narHash": "sha256-knrTvpl81yGFHIpm1SsLDApe0thFkw1cl3ISAMPmP/0=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "fa827dda806c5aa98f454da4c567991ab8ce422c",
"rev": "b2a1eeef8c185f6bd27432b053ff09d773244cbc",
"type": "github"
},
"original": {
@ -324,11 +324,11 @@
]
},
"locked": {
"lastModified": 1711218979,
"narHash": "sha256-glCjdonAlkP5vwZpP8FYD1WCaGYALF5FYRv09XsWu5c=",
"lastModified": 1711786745,
"narHash": "sha256-3vyZvKs35aVzOa+/vRenR/052aapmxRH4L3+wh+wG2E=",
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"rev": "0d291a959d01bb5d2bd2e20689b78258fa842cca",
"rev": "11544449e6b696e209463aae094e736368eef757",
"type": "github"
},
"original": {
@ -387,11 +387,11 @@
},
"stable": {
"locked": {
"lastModified": 1711124224,
"narHash": "sha256-l0zlN/3CiodvWDtfBOVxeTwYSRz93muVbXWSpaMjXxM=",
"lastModified": 1711668574,
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "56528ee42526794d413d6f244648aaee4a7b56c0",
"rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659",
"type": "github"
},
"original": {

View file

@ -1,8 +1,7 @@
{
description = "nix begat oizys";
outputs = inputs @ {self, ...}:
(import ./lib {inherit self inputs;}).oizysFlake;
outputs = inputs: (import ./lib inputs).oizysFlake;
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";

View file

@ -42,10 +42,14 @@ in {
networking.hostName = "othalan";
time.timeZone = "US/Central";
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.consoleMode = "max";
boot.loader.efi.canTouchEfiVariables = true;
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader = {
systemd-boot =
enabled
// {
consoleMode = "max";
};
efi.canTouchEfiVariables = true;
};
# don't delete this you foo bar
system.stateVersion = "23.11"; # Did you read the comment?

View file

@ -1,8 +1,5 @@
{
inputs,
self,
}: let
inherit (inputs) nixpkgs;
inputs: let
inherit (inputs) nixpkgs self;
lib = nixpkgs.lib.extend (import ./extended.nix);
inherit (builtins) mapAttrs readDir filter listToAttrs;
@ -35,7 +32,8 @@ in rec {
oizysHosts = mapAttrs (name: _: mkSystem name) (readDir ../hosts);
oizysPkg = forAllSystems (
pkgs: rec {
oizys = pkgs.callPackage ../oizys {};
oizys-nim = pkgs.callPackage ../pkgs/oizys/oizys-nim {};
oizys = pkgs.callPackage ../pkgs/oizys/oizys-rs {};
default = oizys;
}
);

View file

@ -10,6 +10,7 @@ in {
fonts.fontconfig.enable = true;
fonts.packages = with pkgs; [
(nerdfonts.override {fonts = ["FiraCode"];})
recursive
];
};
}

View file

@ -20,11 +20,9 @@ in
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.systemPackages = with pkgs; [
swayidle
wlr-randr
kanshi
lock
brightnessctl
udiskie
eww
@ -35,12 +33,17 @@ in
# utils
grimblast
ksnip
wl-clipboard
rofi-wayland
pavucontrol
catppuccin-cursors.mochaDark
hyprpaper
#hypr ecosystem
hyprlock
hypridle
swww
];

19
pkgs/oizys/oizys-rs/.gitignore vendored Normal file
View file

@ -0,0 +1,19 @@
# Created by https://www.toptal.com/developers/gitignore/api/rust
# Edit at https://www.toptal.com/developers/gitignore?templates=rust
### Rust ###
# Generated by Cargo
# will have compiled files and executables
debug/
target/
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
# These are backup files generated by rustfmt
**/*.rs.bk
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
# End of https://www.toptal.com/developers/gitignore/api/rust

772
pkgs/oizys/oizys-rs/Cargo.lock generated Normal file
View file

@ -0,0 +1,772 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_system_properties"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
dependencies = [
"libc",
]
[[package]]
name = "anstream"
version = "0.6.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"utf8parse",
]
[[package]]
name = "anstyle"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
[[package]]
name = "anstyle-parse"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "anstyle-wincon"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
dependencies = [
"anstyle",
"windows-sys 0.52.0",
]
[[package]]
name = "autocfg"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bumpalo"
version = "3.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
[[package]]
name = "cc"
version = "1.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
version = "0.4.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3313f40d6fa9e783bbb01e814800bde9618da2207c72e9782f35e8dc7c77dabc"
dependencies = [
"android-tzdata",
"iana-time-zone",
"num-traits",
"serde",
"windows-targets 0.52.4",
]
[[package]]
name = "clap"
version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
dependencies = [
"clap_builder",
"clap_derive",
]
[[package]]
name = "clap_builder"
version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim",
]
[[package]]
name = "clap_complete"
version = "4.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
dependencies = [
"clap",
]
[[package]]
name = "clap_derive"
version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "clap_lex"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
[[package]]
name = "colorchoice"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "core-foundation-sys"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "futures"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
dependencies = [
"futures-channel",
"futures-core",
"futures-executor",
"futures-io",
"futures-sink",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-channel"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
dependencies = [
"futures-core",
"futures-sink",
]
[[package]]
name = "futures-core"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-executor"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
dependencies = [
"futures-core",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-io"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
[[package]]
name = "futures-macro"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "futures-sink"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
[[package]]
name = "futures-task"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
[[package]]
name = "futures-util"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
"futures-channel",
"futures-core",
"futures-io",
"futures-macro",
"futures-sink",
"futures-task",
"memchr",
"pin-project-lite",
"pin-utils",
"slab",
]
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "homedir"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22074da8bba2ef26fc1737ae6c777b5baab5524c2dc403b5c6a76166766ccda5"
dependencies = [
"cfg-if",
"nix",
"serde",
"widestring",
"windows-sys 0.48.0",
"wmi",
]
[[package]]
name = "hostname"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
dependencies = [
"libc",
"match_cfg",
"winapi",
]
[[package]]
name = "iana-time-zone"
version = "0.1.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
"windows-core",
]
[[package]]
name = "iana-time-zone-haiku"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
dependencies = [
"cc",
]
[[package]]
name = "js-sys"
version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "libc"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "log"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "match_cfg"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
[[package]]
name = "memchr"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]
[[package]]
name = "nix"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [
"bitflags",
"cfg-if",
"libc",
"memoffset",
"pin-utils",
]
[[package]]
name = "num-traits"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
dependencies = [
"autocfg",
]
[[package]]
name = "oizys"
version = "0.1.0"
dependencies = [
"clap",
"clap_complete",
"homedir",
"hostname",
]
[[package]]
name = "once_cell"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "pin-project-lite"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
[[package]]
name = "pin-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "proc-macro2"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
[[package]]
name = "serde"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "slab"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
"autocfg",
]
[[package]]
name = "strsim"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
[[package]]
name = "syn"
version = "2.0.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "thiserror"
version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "utf8parse"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "wasm-bindgen"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
name = "widestring"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
dependencies = [
"windows-core",
"windows-implement",
"windows-interface",
"windows-targets 0.52.4",
]
[[package]]
name = "windows-core"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
"windows-targets 0.52.4",
]
[[package]]
name = "windows-implement"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "windows-interface"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"windows-targets 0.48.5",
]
[[package]]
name = "windows-sys"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets 0.52.4",
]
[[package]]
name = "windows-targets"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
"windows_aarch64_gnullvm 0.48.5",
"windows_aarch64_msvc 0.48.5",
"windows_i686_gnu 0.48.5",
"windows_i686_msvc 0.48.5",
"windows_x86_64_gnu 0.48.5",
"windows_x86_64_gnullvm 0.48.5",
"windows_x86_64_msvc 0.48.5",
]
[[package]]
name = "windows-targets"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
dependencies = [
"windows_aarch64_gnullvm 0.52.4",
"windows_aarch64_msvc 0.52.4",
"windows_i686_gnu 0.52.4",
"windows_i686_msvc 0.52.4",
"windows_x86_64_gnu 0.52.4",
"windows_x86_64_gnullvm 0.52.4",
"windows_x86_64_msvc 0.52.4",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
[[package]]
name = "wmi"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc2f0a4062ca522aad4705a2948fd4061b3857537990202a8ddd5af21607f79a"
dependencies = [
"chrono",
"futures",
"log",
"serde",
"thiserror",
"windows",
]

View file

@ -0,0 +1,12 @@
[package]
name = "oizys"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = { version = "4.5.4", features = ["derive"] }
clap_complete = "4.5.1"
homedir = "0.2.1"
hostname = "0.3.1"

View file

@ -0,0 +1,19 @@
{
installShellFiles,
rustPlatform,
}:
rustPlatform.buildRustPackage {
pname = "oizys";
version = "unstable";
src = ./.;
cargoLock = {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = [installShellFiles];
postInstall = ''
installShellCompletion --cmd oizys \
--zsh <($out/bin/oizys --completions zsh)
'';
}

View file

@ -0,0 +1,193 @@
use clap::{CommandFactory, Parser, Subcommand};
use clap_complete::{generate, Generator, Shell};
use std::{env, io, path::PathBuf, process::Command};
#[derive(Parser)]
#[command(version, about, long_about = None)]
struct Cli {
/// increase verbosity
#[arg(short, long,global=true, action = clap::ArgAction::Count)]
verbose: u8,
/// path to flake ($OIZYS_DIR or $HOME/oizys)
#[arg(short, long, global = true)]
flake: Option<PathBuf>,
/// host name (current host)
#[arg(long, global = true)]
host: Option<String>,
/// don't use pinix
#[arg(long, global=true, action = clap::ArgAction::SetTrue)]
no_pinix: bool,
/// generate shell completion
#[arg(long, value_enum, hide=true)]
completions: Option<Shell>,
#[command(subcommand)]
command: Option<Commands>,
}
#[derive(Debug, Subcommand)]
enum Commands {
/// poor man's nix flake check
Dry {},
/// nixos rebuild boot
Boot {},
/// nixos rebuild switch
Switch {},
/// build and push to cachix
Cache {
/// name of cachix binary cache
#[arg(short, long, default_value = "daylin")]
name: String,
},
///build nixos (w/ nix build)
Build {},
/// print nix flake output
Output {},
}
fn print_completions<G: Generator>(gen: G, cmd: &mut clap::Command) {
generate(gen, cmd, cmd.get_name().to_string(), &mut io::stdout());
}
#[derive(Debug)]
struct Oizys {
host: String,
flake: PathBuf,
no_pinix: bool,
verbose: u8,
}
impl Oizys {
fn from(cli: &Cli) -> Oizys {
let host = cli
.host
.clone()
.unwrap_or(hostname::get().unwrap().to_string_lossy().to_string());
let flake = cli.flake.clone().unwrap_or(env::var("OIZYS_DIR").map_or(
homedir::get_my_home().unwrap().unwrap().join("oizys"),
PathBuf::from,
));
Oizys {
host,
flake,
no_pinix: cli.no_pinix,
verbose: cli.verbose,
}
}
fn output(self: &Oizys) -> String {
format!(
"{}#nixosConfigurations.{}.config.system.build.toplevel",
self.flake.to_string_lossy(),
self.host
)
}
fn nix(self: &Oizys) -> String {
(if self.no_pinix { "nix" } else { "pix" }).to_string()
}
fn nixos_rebuild_cmd(self: &Oizys) -> String {
self.nix() + "os-rebuild"
}
fn show_cmd(self: &Oizys, cmd: &Command) {
println!("executing: {}", format!("{:?}", cmd).replace('"', ""));
}
fn build(self: &Oizys, dry: bool) {
let nix = self.nix();
let flake_output = self.output();
let mut args = vec!["build", &flake_output.as_str()];
if dry {
args.push("--dry-run")
}
let mut cmd = Command::new(&nix);
cmd.args(args);
if self.verbose >= 2 {
self.show_cmd(&cmd);
}
cmd.status()
.unwrap_or_else(|_| panic!("failed to run build w/{nix}"));
}
fn nixos_rebuild(self: &Oizys, subcommand: &str) {
let flake_output = format!("{}#{}", self.flake.to_string_lossy(), self.host);
let mut cmd = Command::new("sudo");
cmd.args([
&self.nixos_rebuild_cmd(),
subcommand,
"--flake",
&flake_output,
]);
if self.verbose >= 2 {
self.show_cmd(&cmd);
}
cmd.status()
.unwrap_or_else(|_| panic!("failed to run nixos-rebuild {subcommand}"));
}
fn cache(self: &Oizys, name: &String) {
let flake_output = self.output();
let mut cmd = Command::new("cachix");
cmd.args([
"watch-exec",
&name,
"--",
"nix",
"build",
&flake_output,
"--print-build-logs",
"--accept-flake-config",
]);
if self.verbose >= 2 {
self.show_cmd(&cmd);
}
cmd.status()
.unwrap_or_else(|_| panic!("failed to run cachix watch-exec"));
}
}
fn main() {
let cli = Cli::parse();
let oizys = Oizys::from(&cli);
if let Some(completions) = cli.completions {
let mut cmd = Cli::command();
eprintln!("Generating completion for {completions:?}");
print_completions(completions, &mut cmd);
std::process::exit(0);
}
if oizys.verbose > 2 {
println!("-vv is max verbosity")
}
if oizys.verbose >= 1 {
println!("{:?}", oizys)
}
if let Some(command) = &cli.command {
match command {
Commands::Dry {} => oizys.build(true),
Commands::Build {} => oizys.build(false),
Commands::Output {} => println!("{}", oizys.output()),
Commands::Boot {} => oizys.nixos_rebuild("boot"),
Commands::Switch {} => oizys.nixos_rebuild("switch"),
Commands::Cache { name } => oizys.cache(name),
}
} else {
eprintln!("No subcommand provided..");
let mut cmd = Cli::command();
cmd.print_help().unwrap();
}
}

View file

@ -1,10 +1,5 @@
# oizys todo's
- [-] add graceful fall back for oizys-cli if pinix isn't installed system-wide yet
- [ ] trackdown wezterm bug... (try building from flake?)
> https://github.com/wez/wezterm/issues/5067
- [ ] Check if vivaldi-ffmpeg-codecs are out of date
https://forum.vivaldi.net/topic/88884/page-crash-due-to-read-out-of-range-on-nixos/12
<!-- nothing ...-->
<!-- generated with <3 by daylinmorgan/todo -->