Skip to content

Instantly share code, notes, and snippets.

View shiryel's full-sized avatar
🙀
> Insert another bug joke here <

Shiryel shiryel

🙀
> Insert another bug joke here <
  • SP, Brazil
View GitHub Profile
@shiryel
shiryel / nix_cross_custom_stdenv.nix
Created August 22, 2024 00:55
How to cross-compile with a custom stdenv on Nix
{
outputs = { nixpkgs, ... }: {
pkgsWeb = import nixpkgs {
system = "x86_64-linux";
# NOTE: enabling setting crossSystem disables config.replaceStdenv
crossSystem = {
config = "wasm32-unknown-none";
rust.rustcTarget = "wasm32-unknown-unknown";
useLLVM = true;
};

Where:

  • r = reference
  • n = number
  • i = integer
  • c = compound_notes, note can be midi number, rest _, or compound note such as _60
  • s = symbol

Signals

imp frequency:n - impulse signal, it can be used as a trigger to a sampler or sawsynth
constsig n

{
description = "Android Emulator";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils/v1.0.0";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
@shiryel
shiryel / elixir_avro.exs
Created May 19, 2023 22:55
Using Avro on Elixir
###########
# MIX.EXS #
###########
[ {:avro_ex, "~> 2.0"} ]
###########
# CONTEXT #
###########
@shiryel
shiryel / flake.nix
Last active May 28, 2023 17:40
NixOS Flake: Flutter with Android Emulator
{
description = "Android Emulator";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils/v1.0.0";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
@shiryel
shiryel / nix_try_eval.patch
Last active May 29, 2024 22:51
Nixpkgs to JSON
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index bc253d0a3..e6c348d99 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -867,7 +867,7 @@ static void prim_tryEval(EvalState & state, const PosIdx pos, Value * * args, Va
state.forceValue(*args[0], pos);
attrs.insert(state.sValue, args[0]);
attrs.alloc("success").mkBool(true);
- } catch (AssertionError & e) {
+ } catch (EvalError & e) {
@shiryel
shiryel / setup.sh
Created July 6, 2022 23:02
simple encrypted disk with btrfs
# BASED_ON:
# https://wiki.archlinux.org/title/User:Altercation/Bullet_Proof_Arch_Install#Create_and_mount_BTRFS_subvolumes
# https://wiki.archlinux.org/title/Btrfs#Compression
# https://btrfs.readthedocs.io/en/latest/Administration.html?highlight=mount#mount-options
# https://grahamc.com/blog/erase-your-darlings
# download with:
# curl -L setup-disk.shiryel.com > setup.sh
# run with:
@shiryel
shiryel / flake.nix
Created June 16, 2022 07:00
Nix flake for Clang
{
description = "Clang Template";
inputs = {
nixpkgs_stable.url = "github:NixOS/nixpkgs/nixos-22.05";
flake-utils.url = "github:numtide/flake-utils/v1.0.0";
};
outputs = { self, nixpkgs_stable, flake-utils }:
flake-utils.lib.eachDefaultSystem
@shiryel
shiryel / .ghci
Created June 6, 2022 16:22 — forked from rpearce/.ghci
Flake for using Haskell in nix develop
:def hoogle \x -> return $ ":!hoogle --count=15 \"" ++ x ++ "\""
:def doc \x -> return $ ":!hoogle --info \"" ++ x ++ "\""
:set -Wall
:set -fno-warn-type-defaults -ferror-spans -freverse-errors -fprint-expanded-synonyms
:set prompt "\ESC[0;32m%s\n\ESC[m[ghci]\ESC[38;5;172mλ \ESC[m"
:set prompt-cont " \ESC[38;5;172m> \ESC[m"
@shiryel
shiryel / nix-ui.md
Created April 22, 2022 19:04 — forked from edolstra/nix-ui.md
Nix UI

General notes

  • nix-channel and ~/.nix-defexpr are gone. We'll use $NIX_PATH (or user environment specific overrides configured via nix set-path) to look up packages. Since $NIX_PATH supports URLs nowadays, this removes the need for channels: you can just set $NIX_PATH to e.g. https://nixos.org/channels/nixos-15.09/nixexprs.tar.xz and stay up to date automatically.

  • By default, packages are selected by attribute name, rather than the name attribute. Thus nix install hello is basically equivalent to nix-env -iA hello. The attribute name is recorded in the user environment manifest and used in upgrades. Thus (at least by default) hello won't be upgraded to helloVariant.

    @vcunat suggested making this an arbitrary Nix expression rather than an attrpath, e.g. firefox.override { enableFoo = true; }. However, such an expression would not have a key in the user environment, unlike an attrpath. Better to require an explicit flag for this.

TBD: How to deal with search path clashes.