Compare commits

..

74 commits
laptop ... main

Author SHA1 Message Date
f0c7f565c3 remove flake.nix:inputs.ags 2025-11-01 13:21:55 +10:00
540fd9c2a9 begin migrating hyprland config to home-manager 2025-11-01 13:21:32 +10:00
a03ea35af7 begin working on my nib library <3 2025-11-01 12:27:00 +10:00
91afb32049 add speedtest-cli 2025-11-01 12:09:28 +10:00
8f7a725fd5 JetBrains Rider requires Chromium browser 2025-11-01 12:08:58 +10:00
8a14f7e2fc remove dwarf-fortress & mindustry 2025-10-24 23:46:17 +10:00
8f222f454a add vscode + extensions to lolcathost nixpkgs allowed unfree 2025-10-24 23:45:29 +10:00
ca3fd4093f fix ugly nixpkgs.config.allowUnfreePredicate 2025-10-24 23:44:56 +10:00
c8d3fe1e6b add tmux 2025-10-24 23:39:00 +10:00
e2f641e553 use pkgs-unstable.msbuild
pkgs.msbuild use .NET6 (marked insecure), pkgs-unstable.msbuild uses
.NET8
2025-10-24 17:31:23 +10:00
728f933f39 increase nix.settings.download-buffer-size 2025-10-24 17:25:15 +10:00
ffb9b35d46 clean rider install + progress to latest on pkgs-unstable 2025-10-24 17:24:58 +10:00
2fb9171d92 replace ags -> fuzzel
ags usage changed after flake.lock progression
2025-10-24 17:24:11 +10:00
11b4c920fc patch mbedtls_2 now labelled insecure
occurred due to flake.lock progression
2025-10-24 17:23:28 +10:00
09db1c47e1 progress flake inputs to latest 2025-10-24 17:22:27 +10:00
17807752e5 packaging JetBrains Rider (UNSTABLE) 2025-10-24 11:53:42 +10:00
46ed077813 open minecraft server port 25565 (myputer) 2025-10-24 11:52:46 +10:00
596fcd5389 add Tor Browser 2025-10-24 11:52:24 +10:00
fd48d6af9a add Mozilla Thunderbird 2025-10-24 11:52:08 +10:00
892a1ae877 add MicroTik WinBox 2025-10-24 11:51:49 +10:00
1ee0ba1a4c fix vscode plugins not whitelisted 2025-10-24 11:50:00 +10:00
63c1f112d4 (temp) hide chameleonultra+flipperzero to improve build time 2025-10-24 11:48:49 +10:00
ce3eb7a6d8 vscode requires an OS keyring daemon 2025-10-24 11:47:58 +10:00
1d54b41347 replace vscodium -> vscode 2025-10-24 11:47:20 +10:00
1600fd2885 fix bashistrans (myputer) 2025-10-24 11:46:08 +10:00
8e2aad53be customise vscodium 2025-10-24 11:45:00 +10:00
a29c66e35d add mako notification daemon 2025-10-24 11:44:02 +10:00
f51ac822e0 enable vscodium 2025-10-08 11:15:21 +10:00
78c75ea740 add NetCoreDbg for helix 2025-10-08 10:59:14 +10:00
c46d9665a1 fix conditional .gitconfig 2025-10-08 10:39:41 +10:00
d26b8af26f add work conditional .gitconfig 2025-10-07 12:50:38 +10:00
4e615703a6 i dont need this anymore 2025-10-06 21:21:28 +10:00
328c628291 (temp) add notes on screensharing 2025-10-06 21:19:53 +10:00
8ec227aa10 add cute lil banner 2025-10-06 21:19:37 +10:00
d094fbb26f helix now supports C# LSP 2025-10-06 21:19:26 +10:00
dc0ec2f3f1 Merge branch 'merge2' 2025-10-06 09:46:58 +10:00
2dde0450c4 add discord 2025-10-06 09:46:15 +10:00
2da0075992 add radare2, gdb, perf-tools 2025-10-06 09:46:15 +10:00
a04641fc9d (temp) disable hyrule's minecraft server 2025-10-06 09:44:34 +10:00
c05db67974 progress hyrule home-manager 2025-10-06 09:44:34 +10:00
5c955e5232 (attempt) package CrazyCraft void launcher for my partner lol 2025-10-06 09:44:34 +10:00
70ed4a9a38 add hosts/modules/bashistrans.nix 2025-10-06 09:30:18 +10:00
120b753882 (attempt) fix dbus service for bluetui
manually configure resolvd with CloudFlare's WARP+ DNS
2025-10-06 09:24:16 +10:00
3e1d106179 add pstree + lz4 2025-10-06 09:21:56 +10:00
f9df463872 add dotnet9 2025-10-06 09:21:03 +10:00
bf22bfbcf4 enable NIX_SHELL_PRESERVE_PROMPT 2025-10-06 09:18:26 +10:00
81c7c25c6f add hexyl, timg, and other 2025-09-26 23:18:45 +10:00
cb6f984065 add pkgs.moreutils 2025-09-24 13:30:20 +10:00
75751e3085 always install derivation "man" ouputs 2025-09-18 19:48:09 +10:00
c94e75bb02 mark all dev outputs for install 2025-09-03 11:13:13 +10:00
eaea98a362 add hyprsunset (its 3am and im going blind............) 2025-09-03 03:27:12 +10:00
a35cedeecb add haskell lsp + formatter 2025-09-03 03:26:36 +10:00
6fbaf7fe89 add haskell support 2025-09-03 00:37:55 +10:00
364efb25ea dbus sucks i wanna cry :( 2025-09-03 00:24:41 +10:00
eb02262ae6 add x86-manpages derivation (ISA manpages) 2025-08-31 23:27:08 +10:00
95bf9fe6ad add nasm pkg 2025-08-31 23:26:30 +10:00
a33e8a0147 provide nixpkgs-unstable to homemanager (myputer) 2025-08-31 23:26:08 +10:00
1f35c727ed progress home-manager 2025-08-31 23:25:25 +10:00
99a0adb621 add list syscalls script 2025-08-31 23:23:10 +10:00
db0a34ebbd ltrace/strace for lolcathost 2025-08-31 15:19:51 +10:00
484a8df77b Merge branch 'laptop' 2025-08-31 15:17:53 +10:00
98244e7ecf (test) openvas on myputer 2025-08-31 14:56:23 +10:00
186c0c741a add binary debug utils 2025-08-31 14:56:01 +10:00
7ecf75bef5 add hypr screenshot utility 2025-08-31 14:55:27 +10:00
dc12ab717b remove gamescope.desktop entry, add GE Proton 2025-08-31 14:54:59 +10:00
60a6b07c9d comment programs.fish.vendor.* 2025-08-12 21:11:38 +10:00
7069840beb add gwenview + libreoffice apps 2025-08-12 21:11:08 +10:00
63e8a31e7f add fish function for file name searching 2025-08-08 20:20:13 +10:00
7ab29bfe07 add custom huggingface_hub packages (learning from hf-cli's authentication workflow) 2025-08-08 20:15:44 +10:00
d68132b8fb make fish dotfiles more verbose + add gitignore function to generate .gitignore files 2025-08-08 20:14:52 +10:00
d3a642fafb add "box" script for managing temp directories 2025-08-08 20:13:51 +10:00
0129fe2b97 renamed TODO -> +.md 2025-08-08 14:08:50 +10:00
ee7e38e7ba add git aliases 2025-08-08 11:28:11 +10:00
0eeb94b65c re-add nimble to lang pkgs 2025-08-07 10:45:00 +10:00
31 changed files with 1000 additions and 204 deletions

1
.gitignore vendored
View file

@ -1,5 +1,6 @@
ISSUES/ ISSUES/
secrets/ secrets/
nib/
result result
rebuild*.log rebuild*.log

11
SCREENSHARING Normal file
View file

@ -0,0 +1,11 @@
Excellent Resource
https://gist.github.com/brunoanc/2dea6ddf6974ba4e5d26c3139ffb7580#install-xdg-desktop-portal-and-friends
Hyprland official page on screensharing
https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/
Multiple sources seem to think that use xdg-desktop-portal-wlr works (but I can't stream individual applications)
but I suppose that's better than nothing?
Also check out xwaylandvideobridge

View file

@ -1,5 +1,4 @@
## Next Up ## Next Up
0. Rename TODO -> TODO.md
1. Rename user "ae" to "cry" or "vps" 1. Rename user "ae" to "cry" or "vps"
2. Add 404 page to nginx on hyrule 2. Add 404 page to nginx on hyrule
3. Add a user called "mirror" that stores important mirrors (inspiration: https://git.gay/mirror) 3. Add a user called "mirror" that stores important mirrors (inspiration: https://git.gay/mirror)

6
banner Normal file
View file

@ -0,0 +1,6 @@
.------------.
| oh my |
'------------'
^ (\_(\
'----- ( -.-)
o_(")(")

View file

@ -25,8 +25,9 @@ monitor=eDP-1, highres@highrr, auto, 1.0
# Set programs that you use # Set programs that you use
$terminal = ghostty #rio $terminal = ghostty #rio
$fileManager = thunar $fileManager = thunar
#$menu = wofi --show drun # $menu = wofi --show drun
$menu = ags -t "applauncher" # $menu = ags -t "applauncher"
$menu = fuzzel
$colorpicker = hyprpicker | head -c 7 | wl-copy $colorpicker = hyprpicker | head -c 7 | wl-copy
################# #################
@ -40,6 +41,7 @@ $colorpicker = hyprpicker | head -c 7 | wl-copy
# exec-once = nm-applet & # exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox # exec-once = waybar & hyprpaper & firefox
exec-once = swww-daemon & exec-once = swww-daemon &
exec-once = mako &
# TODO: or do I do `swww init` or `swww restore`? # TODO: or do I do `swww init` or `swww restore`?
# █▀▀ █▄░█ █░█   █░█ ▄▀█ █▀█ # █▀▀ █▄░█ █░█   █░█ ▄▀█ █▀█

111
flake.lock generated
View file

@ -1,30 +1,11 @@
{ {
"nodes": { "nodes": {
"ags": {
"inputs": {
"nixpkgs": "nixpkgs",
"systems": "systems"
},
"locked": {
"lastModified": 1728326430,
"narHash": "sha256-tV1ABHuA1HItMdCTuNdA8fMB+qw7LpjvI945VwMSABI=",
"owner": "Aylur",
"repo": "ags",
"rev": "60180a184cfb32b61a1d871c058b31a3b9b0743d",
"type": "github"
},
"original": {
"owner": "Aylur",
"repo": "ags",
"type": "github"
}
},
"colmena": { "colmena": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions", "nix-github-actions": "nix-github-actions",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"stable": "stable" "stable": "stable"
}, },
"locked": { "locked": {
@ -75,14 +56,14 @@
}, },
"grub2-themes": { "grub2-themes": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1730004881, "lastModified": 1757136219,
"narHash": "sha256-8xVIqIW25o2uCL0fxAmP4Sj9sdebarQXmd1+64yMe8o=", "narHash": "sha256-tKU+vq34KHu/A2wD7WdgP5A4/RCmSD8hB0TyQAUlixA=",
"owner": "vinceliuice", "owner": "vinceliuice",
"repo": "grub2-themes", "repo": "grub2-themes",
"rev": "42c232dfb46bf93c17506cbc1a574e5e89b5e09f", "rev": "80dd04ddf3ba7b284a7b1a5df2b1e95ee2aad606",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -113,38 +94,6 @@
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1725634671,
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1753939845,
"narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "94def634a20494ee057c76998843c015909d6311",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1734119587, "lastModified": 1734119587,
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=", "narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
@ -160,13 +109,29 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1730808093, "lastModified": 1761114652,
"narHash": "sha256-oOenwoxpzQsBNi7KltgnXqq6e0+CxlfNXKn3k27w6cQ=", "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c1a390f74b2c93f69a6805142f11a215a689cec1", "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1761269590,
"narHash": "sha256-yTr+PCi4wGbOEidrm8XyXBobLxLMqIBsbUyhwsN6wrc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d792a6e0cd4ba35c90ea787b717d72410f56dc40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -176,13 +141,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1752620740, "lastModified": 1761016216,
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=", "narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e", "rev": "481cf557888e05d3128a76f14c76397b7d7cc869",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -194,10 +159,9 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"ags": "ags",
"colmena": "colmena", "colmena": "colmena",
"grub2-themes": "grub2-themes", "grub2-themes": "grub2-themes",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable"
} }
}, },
@ -216,21 +180,6 @@
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -5,16 +5,9 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
#home-manager = { colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a";
# url = "github:nix-community/home-manager";
# inputs.nixpkgs.follows = "nixpkgs";
#};
grub2-themes.url = "github:vinceliuice/grub2-themes"; grub2-themes.url = "github:vinceliuice/grub2-themes";
ags.url = "github:Aylur/ags";
colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a";
}; };
outputs = { outputs = {

View file

@ -6,24 +6,31 @@
pkgs, pkgs,
pkgs-unstable, pkgs-unstable,
... ...
}: { } @ args: {
imports = [ imports = [
../modules/fish.nix
../modules/btop.nix
../modules/tmux.nix
../modules/term/foot.nix
../modules/git.nix ../modules/git.nix
../modules/bat.nix ../modules/bat.nix
../modules/fish.nix
../modules/editor/helix.nix
# ../modules/editor/vscodium.nix
../modules/btop.nix ../modules/editor/helix.nix
../modules/term/ghostty.nix (import ../modules/editor/vscode.nix args)
../modules/term/foot.nix
# ../modules/term/rio.nix
../modules/firefox.nix ../modules/firefox.nix
../modules/apps/thunderbird.nix
#../modules/wm/hypr/hypridle.nix #../modules/wm/hypr/hypridle.nix
../modules/wm/hypr/hyprlock.nix ../modules/wm/hypr/hyprlock.nix
../modules/kanshi.nix ../modules/kanshi.nix
../modules/ags ../modules/ags
../modules/mako.nix
];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.GetName pkg) [
"vscode-extension-ms-dotnettools-csharp"
]; ];
home = { home = {
@ -35,6 +42,10 @@
man = "batman"; # bat + man man = "batman"; # bat + man
}; };
sessionVariables = {
NIX_SHELL_PRESERVE_PROMPT = 1;
};
pointerCursor = { pointerCursor = {
gtk.enable = true; gtk.enable = true;
# x11.enable = true # dont enable since im on hyprland # x11.enable = true # dont enable since im on hyprland
@ -42,6 +53,18 @@
name = "Bibata-Modern-Ice"; name = "Bibata-Modern-Ice";
size = 16; size = 16;
}; };
packages = with pkgs; [
# for services.gnome-keyring
pkgs.gcr # provides org.gnome.keyring.SystemPrompter
seahorse # gui
tor-browser
fuzzel
speedtest-cli
];
}; };
gtk = { gtk = {
@ -136,8 +159,12 @@
}; };
}; };
services = {
# enable OpenSSH private key agent # enable OpenSSH private key agent
services.ssh-agent.enable = true; ssh-agent.enable = true;
gnome-keyring.enable = true;
};
# the ssh-agent won't set this for itself... # the ssh-agent won't set this for itself...
systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent"; systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent";
# Nicely reload system units when changing configs # Nicely reload system units when changing configs

View file

@ -0,0 +1,10 @@
{...}: {
programs.thunderbird = {
enable = true;
profiles = {
"me" = {
isDefault = true;
};
};
};
}

View file

@ -136,6 +136,28 @@
formatter.command = "${pkgs.clang-tools}/bin/clang-format"; formatter.command = "${pkgs.clang-tools}/bin/clang-format";
language-servers = ["clangd"]; language-servers = ["clangd"];
} }
{
name = "haskell";
auto-format = true;
formatter.command = "${pkgs.ormolu}/bin/ormolu";
language-servers = ["haskell-language-server"];
}
# {
# name = "c-sharp";
# source = "source.cs";
# file-types = ["cs"];
# indent = {
# tab-width = 4;
# unit = " ";
# };
# block-comment-tokens = {
# start = "/*";
# end = "*/";
# };
# # auto-format = false;
# # formatter.command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
# # language-servers = ["OmniSharp"];
# }
]; ];
language-server = { language-server = {
@ -149,6 +171,15 @@
clangd = { clangd = {
command = "${pkgs.clang-tools}/bin/clangd"; command = "${pkgs.clang-tools}/bin/clangd";
}; };
haskell-language-server = {
command = "${pkgs.haskell-language-server}/bin/haskell-language-server-wrapper";
};
# C# language services
OmniSharp = {
command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
};
}; };
}; };
}; };

View file

@ -0,0 +1,134 @@
{
config,
lib,
pkgs,
vscodium ? false,
secret-service ? "gnome-libsecret",
vscode-argv ? ".vscode/argv.json",
...
}: {
nixpkgs.overlays = [
(
self: super: {
vscode-extensions = super.vscode-extensions.overrideAttrs (prev: let
mkVscMarketplaceExtension = {
publisher,
name,
version,
hash,
description ? "",
homepage ? null,
changelog ? null,
license ? null,
maintainers ? [lib.maintainers.emileclarkb],
}:
with pkgs.vscode-utils.buildVscodeMarketplaceExtension; {
${publisher}.${name} = buildVscodeMarketplaceExtension {
mktplcRef = {
inherit
publisher
name
version
hash
;
};
meta = {
inherit
(
if license != null
then {license = license;}
else {}
)
description
homepage
maintainers
;
downloadPage = "https://marketplace.visualstudio.com/items?itemName=${publisher}.${name}";
changelog =
if changelog != null
then changelog
else "https://marketplace.visualstudio.com/items/${publisher}.${name}/changelog";
};
};
};
in
lib.mergeAttrsList [
(mkVscMarketplaceExtension {
publisher = "ms-dotnettools";
name = "dotnet-maui";
version = "1.11.14";
hash = lib.fakeHash;
description = "Extend C# Dev Kit with tools for building .NET Multi-platform App UI (MAUI) apps";
homepage = "https://github.com/microsoft/vscode-dotnettools";
license = lib.licenses.unfree;
})
]);
}
)
];
# REF: https://home-manager-options.extranix.com/?query=vscode&release=release-25.05
programs.vscode = {
enable = true;
# TODO: clean up
package =
(
if vscodium
then pkgs.vscodium
else pkgs.vscode
).overrideAttrs (oldAttrs: {
# runtimeDependencies = oldAttrs.runtimeDependencies ++ []
});
mutableExtensionsDir = true;
profiles.default = {
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
# extension format: USER.PACKAGENAME
extensions = with pkgs.vscode-extensions; [
# .NET
ms-dotnettools.csharp
ms-dotnettools.csdevkit
ms-dotnettools.vscode-dotnet-runtime
# TODO: these extensions aren't packaged :(
# deitry.solution-syntax
# ms-dotnettools.vscode-dotnet-pack
# ms-dotnettools.dotnet-maui
# Python
ms-python.python
# GitLens by GitKraken
eamodio.gitlens
ms-azuretools.vscode-docker
github.copilot
github.copilot-chat
# Colors & Themes
dracula-theme.theme-dracula
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
mvllow.rose-pine
];
userSettings = {
"workbench.colorTheme" = "Dracula Theme";
"github.copilot.nextEditSuggestions.enabled" = true;
};
};
};
# TODO: this is super ugly, make sure the JSON is formatted!!
home.file.${vscode-argv}.text = builtins.toJSON {
password-store = secret-service;
disable-hardware-acceleration = false;
disable-color-correct-rendering = false;
enable-crash-reporter = false;
# crash-report-id = ...;
};
}

View file

@ -1,9 +1,37 @@
{pkgs, ...}: { {
lib,
pkgs,
...
}: {
# REF: https://home-manager-options.extranix.com/?query=vscode&release=release-25.05
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs.vscodium; package = pkgs.vscodium;
mutableExtensionsDir = true;
profiles.default = {
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
# extension format: USER.PACKAGENAME
extensions = with pkgs.vscode-extensions; [ extensions = with pkgs.vscode-extensions; [
# .NET
ms-dotnettools.csharp
ms-dotnettools.csdevkit
ms-dotnettools.vscode-dotnet-runtime
# ms-dotnettools.vscode-dotnet-pack
# ms-dotnettools.dotnet-maui
# Colors & Themes
dracula-theme.theme-dracula
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
mvllow.rose-pine
]; ];
userSettings = {
"workbench.colorTheme" = "Dracula Theme";
};
};
}; };
} }

View file

@ -12,6 +12,14 @@
config = { config = {
programs.fish = { programs.fish = {
enable = true; enable = true;
generateCompletions = true;
# vendor = {
# config.enable = true;
# functions.enable = true;
# completions.enable = true;
# };
interactiveShellInit = '' interactiveShellInit = ''
# add dotnet completions if it exists (ie we're in a virtual environment) # add dotnet completions if it exists (ie we're in a virtual environment)
if type -q dotnet if type -q dotnet
@ -27,6 +35,15 @@
echo -n $greetings[(random 1 (count $greetings))] echo -n $greetings[(random 1 (count $greetings))]
end end
function gitignore -a type
curl -sL "https://www.gitignore.io/api/$type"
end
# ripgrep on files
function rgf
rg --files | rg $args
end
set -g fish_greeting (rand_greet) set -g fish_greeting (rand_greet)

View file

@ -5,6 +5,19 @@
}: { }: {
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true;
userName = "Emile Clark-Boman";
userEmail = "eclarkboman@gmail.com";
aliases = {
s = "status";
d = "diff";
l = "log";
c = "commit";
p = "push";
};
extraConfig = { extraConfig = {
color.ui = true; color.ui = true;
core.editor = "hx"; core.editor = "hx";
@ -20,10 +33,20 @@
"github:" "github:"
]; ];
}; };
"https://gitlab.com/" = {
insteadOf = [
"gl:"
"gitlab:"
];
};
}; };
}; };
userName = "Emile Clark-Boman"; includes = [
userEmail = "eclarkboman@gmail.com"; {
path = "/home/me/agribit/.gitconfig";
condition = "gitdir:/home/me/agribit/**";
}
];
}; };
} }

54
homes/modules/mako.nix Normal file
View file

@ -0,0 +1,54 @@
{...}: let
dracula = rec {
background = "#282A36";
border = cyan;
cyan = "#8BE9FD";
yellow = "#F1FA8C";
red = "#FF5555";
};
theme = dracula;
in {
# notification daemon for Wayland
services.mako = {
enable = true;
settings = {
actions = true;
anchor = "top-right";
layer = "overlay";
sort = "-time";
height = 100;
width = 300;
margin = 50;
background-color = theme.background;
border-color = theme.border;
border-radius = 20;
border-size = 4;
font = "monospace 10";
markup = true;
icons = true;
max-icon-size = 64;
default-timeout = 5000;
ignore-timeout = false;
"actionable=true" = {
anchor = "top-left";
};
"urgency=low" = {
border-color = theme.border;
};
"urgency=normal" = {
border-color = theme.yellow;
};
"urgency=high" = {
default-timeout = 0;
border-color = theme.red;
};
};
};
}

5
homes/modules/tmux.nix Normal file
View file

@ -0,0 +1,5 @@
{...}: {
programs.tmux = {
enable = true;
};
}

View file

@ -1,2 +1,43 @@
# NOTE: hyprland must be enabled in BOTH your host config (for running hyprland) # NOTE: hyprland must be enabled in BOTH your host config (for running hyprland)
# and your home-manager config (for managing hyprland's config files) # and your home-manager config (for managing hyprland's config files)
{
pkgs,
pkgs-unstable,
inputs,
config,
lib,
...
}: {
options.hyprland = {
enable = lib.mkEnableOption "Hyprland";
};
config = lib.mkIf config.hyprland.enable {
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland; # pkgs-unstable.hyprland;
xwayland.enable = true;
systemd = {
enable = true;
# enable autostart of applications
# REF: `man 8 systemd-xdg-autostart-generator`
enableXdgAutostart = true;
};
plugins = with inputs; [
split-monitor-workspaces.packages.${pkgs.system}.split
];
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
# TODO: finish this
};
}

View file

@ -7,15 +7,16 @@
}: let }: let
home-manager = builtins.fetchTarball { home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz"; url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz";
sha256 = "026rvynmzmpigax9f8gy9z67lsl6dhzv2p6s8wz4w06v3gjvspm1"; sha256 = "0d41gr0c89a4y4lllzdgmbm54h9kn9fjnmavwpgw0w9xwqwnzpax";
}; };
in { in {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
(import "${home-manager}/nixos") (import "${home-manager}/nixos")
./mailserver.nix # TEMP: location # ./mailserver.nix # TEMP: location
./minecraft-server.nix # TEMP: location # ./minecraft-server.nix # TEMP: location
#../modules/server/nginx.nix #../modules/server/nginx.nix
#../modules/server/ssh.nix #../modules/server/ssh.nix
#../modules/server/fail2ban.nix #../modules/server/fail2ban.nix

View file

@ -15,6 +15,8 @@ in {
./hardware-configuration.nix ./hardware-configuration.nix
(import "${home-manager}/nixos") (import "${home-manager}/nixos")
../modules/bashistrans.nix
../modules/wm/hyprland.nix ../modules/wm/hyprland.nix
# ../modules/wm/river.nix # ../modules/wm/river.nix
../modules/wm/crywl.nix ../modules/wm/crywl.nix
@ -33,13 +35,30 @@ in {
]; ];
nixpkgs.config.allowUnfreePredicate = let nixpkgs.config.allowUnfreePredicate = let
whitelist = map lib.getName [ vscext = pkgs.vscode-extensions;
pkgs.obsidian whitelist = with pkgs;
pkgs.gitkraken map lib.getName [
pkgs.steam discord
pkgs.steamcmd steam
pkgs.steam-unwrapped steamcmd
pkgs.dwarf-fortress steam-unwrapped
winbox
obsidian
gitkraken
vscode
vscext.ms-dotnettools.csharp
vscext.ms-dotnettools.csdevkit
vscext.github.copilot
vscext.github.copilot-chat
# XXX: DEBUG
# rider-override
# XXX: DEBUG
# jetbrains.rider
]; ];
in in
pkg: builtins.elem (lib.getName pkg) whitelist; pkg: builtins.elem (lib.getName pkg) whitelist;
@ -100,10 +119,30 @@ in {
networkmanager.enable = true; networkmanager.enable = true;
firewall.enable = false; firewall.enable = false;
# Use CloudFlare's WARP+ 1.1.1.1 DNS service
nameservers = [
"1.1.1.1#one.one.one.one"
"1.0.0.1#one.one.one.one"
];
}; };
# ----- SERVICES ----- # ----- SERVICES -----
services = { services = {
# systemd-resolved provides network name resolution
# to local processes via a D-Bus interface.
resolved = {
enable = true;
dnssec = "true";
domains = ["~."];
# Use CloudFlare's WARP+ 1.1.1.1 DNS service
fallbackDns = [
"1.1.1.1#one.one.one.one"
"1.0.0.1#one.one.one.one"
];
dnsovertls = "true";
};
# Set display manager (login screen) # Set display manager (login screen)
displayManager = { displayManager = {
# sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects # sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects
@ -121,11 +160,11 @@ in {
); );
}; };
dbus = { # dbus = {
# NOTE: programs.uwsm.enable sets implementation to dbus-broker, # # NOTE: programs.uwsm.enable sets implementation to dbus-broker,
# NOTE: however this seems to break dbus # # NOTE: however this seems to break dbus
implementation = lib.mkForce "dbus"; # implementation = lib.mkForce "dbus";
}; # };
# Multimedia Framework # Multimedia Framework
# With backwards compatability for alsa/pulseaudio/jack # With backwards compatability for alsa/pulseaudio/jack
@ -198,13 +237,18 @@ in {
}; };
# ---- ENVIRONMENT VARIABLES ---- # ---- ENVIRONMENT VARIABLES ----
environment.sessionVariables = { environment = {
# always install "dev" derivation outputs
extraOutputsToInstall = ["dev" "man"];
sessionVariables = {
# folder names with capitalisation look awful! # folder names with capitalisation look awful!
XDG_DOWNLOAD_DIR = "$HOME/downloads"; XDG_DOWNLOAD_DIR = "$HOME/downloads";
# Hint Electrons apps to use Wayland # Hint Electrons apps to use Wayland
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
}; };
};
# ---- SYSTEM PACKAGES ----- # ---- SYSTEM PACKAGES -----
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -229,23 +273,49 @@ in {
fish fish
shellcheck shellcheck
grc # colorise command outputs grc # colorise command outputs
moreutils
# Systems Emulation # Systems Emulation
qemu # Fellice Bellard's Quick Emulator qemu # Fellice Bellard's Quick Emulator
# GNU Utils # GNU Utils
gnumake gnumake
# Binaries
binutils binutils
strace
ltrace
perf-tools # ftrace + perf
radare2
gdb
hexyl
# ASM
nasm
(callPackage ../packages/x86-manpages {})
# C Family # C Family
gcc gcc
clang clang
clang-tools clang-tools
# Rust # Rust
cargo cargo
rustc rustc
# Nim
nim
# Go # Go
go go
# Nim
nim
nimble
# Haskell
ghc
ghcid
haskell-language-server
ormolu
# Nix
# TODO: once upgraded past Nix-24.07 this line won't be necessary (I think)
# helix will support nixd by default
# SOURCE: https://github.com/nix-community/nixd/blob/main/nixd/docs/editor-setup.md#Helix
nixd # lsp for nix
nix-prefetch-git
nix-index
# Python # Python
python312 # I use 3.12 since it's in a pretty stable state now python312 # I use 3.12 since it's in a pretty stable state now
@ -254,6 +324,11 @@ in {
# Sage # Sage
sageWithDoc # SageMath + HTML Documentation sageWithDoc # SageMath + HTML Documentation
# .NET
dotnetCorePackages.dotnet_9.sdk
dotnetCorePackages.dotnet_9.aspnetcore
dotnetCorePackages.dotnet_9.runtime
openvpn openvpn
inetutils inetutils
@ -270,23 +345,18 @@ in {
zoxide zoxide
doggo doggo
tldr tldr
# btop btop
eza eza
yazi yazi
lazygit lazygit
ripgrep ripgrep
viddy # modern `watch` command viddy # modern `watch` command
thefuck thefuck
timg # terminal image (sixel) viewer
# TODO: once upgraded past Nix-24.07 this line won't be necessary (I think)
# helix will support nixd by default
# SOURCE: https://github.com/nix-community/nixd/blob/main/nixd/docs/editor-setup.md#Helix
nixd # lsp for nix
# Pretty necessary # Pretty necessary
git git
git-filter-repo git-filter-repo
nix-prefetch-git
brightnessctl brightnessctl
acpi acpi
# upower # upower
@ -298,8 +368,10 @@ in {
file file
wget wget
tree tree
pstree
unzip unzip
unrar-free unrar-free
lz4
man-pages man-pages
man-pages-posix man-pages-posix
@ -309,8 +381,6 @@ in {
libargon2 libargon2
# Games # Games
mindustry
dwarf-fortress
prismlauncher # minecraft prismlauncher # minecraft
]; ];
@ -326,22 +396,6 @@ in {
nix-ld.enable = true; nix-ld.enable = true;
# I want to use fish as my login shell but it always goes terrible
# cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^)
bash = {
blesh.enable = false; # ble.sh replacement for GNU readline
completion.enable = true;
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
# Thunar also uses: `services.tumbler` & `services.gvfs` # Thunar also uses: `services.tumbler` & `services.gvfs`
thunar = { thunar = {
enable = true; enable = true;

View file

@ -0,0 +1,36 @@
{
pkgs,
pkgs-unstable,
...
}: {
environment.systemPackages = with pkgs; [
# Ensure latest stable Rider version (not necessarily stable on NixOS)
pkgs-unstable.jetbrains.rider
# NOTE: Blazor requires a Chromium-based browser
chromium
# arc-browser
# .NET
dotnetCorePackages.dotnet_9.sdk
dotnetCorePackages.dotnet_9.aspnetcore
dotnetCorePackages.dotnet_9.runtime
# Mono
mono
# NOTE: nixpkgs-unstable uses .NET8 SDK
# WARNING: nixpkgs-25.05 uses .NET6 SDK (now marked insecure)
pkgs-unstable.msbuild
# .NET Framework Tools/Services
omnisharp-roslyn
netcoredbg
];
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
icu
];
};
}

View file

@ -0,0 +1,6 @@
{...}: {
programs.winbox = {
enable = true;
openFirewall = false; # port: 5678
};
}

View file

@ -0,0 +1,23 @@
{pkgs, ...}: {
# I want to use fish as my login shell but it always goes terrible
# cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^)
programs.bash = {
blesh.enable = false; # ble.sh replacement for GNU readline
completion.enable = true;
interactiveShellInit = ''
# help bash transition into a beautiful fish!
if [[ -z $CRY_BASH_IS_TRANS ]]
then
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
fi
# bash is trans now! (no more transitioning required)
export CRY_BASH_IS_TRANS=true
'';
};
}

View file

@ -3,22 +3,38 @@
lib, lib,
... ...
}: { }: {
nixpkgs.config.allowUnfreePredicate = pkg: # nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ # builtins.elem (lib.getName pkg) [
"steam" # "steam"
"steam-original" # "steam-original"
"steam-unwrapped" # "steam-unwrapped"
"steam-run" # "steam-run"
# ];
nixpkgs.overlays = [
(self: super: {
lutris = super.lutris.overrideAttrs (final: prev: {
# WARNING: pkgs.mbedtls_2 is marked insecure!
# Replace pkgs.mbedtls_2 (v2.28.10) with pkgs.mbedtls (v3.6.4)
targetPkgs = pkgs: (
(builtins.filter (p: p != pkgs.mbedtls_2) (prev.targetPkgs pkgs))
++ [pkgs.mbedtls]
);
});
})
]; ];
programs = { programs = {
steam = { steam = {
enable = true; enable = true;
gamescopeSession.enable = true; gamescopeSession.enable = false; # .desktop entry for gamescope
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true; localNetworkGameTransfers.openFirewall = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
}; };
gamemode.enable = true; gamemode.enable = true;
@ -29,7 +45,12 @@
mangohud mangohud
protonup-qt protonup-qt
lutris
# XXX: DEBUG: disable lutris
# XXX: NOTE: pkgs.lutris depends on pkgs.mbedtls_2 which is marked insecure!
# XXX: NOTE: Use the provided overlay to patch pkgs.mbedtls_2 -> pkgs.mbedtls
# lutris
bottles bottles
heroic heroic
]; ];

View file

@ -1,4 +1,8 @@
{...}: { {pkgs, ...}: {
environment.defaultPackages = with pkgs; [
hyprsunset
];
programs = { programs = {
hyprland = { hyprland = {
enable = true; enable = true;

View file

@ -1,41 +1,74 @@
{ {
lib, lib,
pkgs, pkgs,
pkgs-unstable,
inputs, inputs,
config, config,
... ...
}: let }: let
home-manager = builtins.fetchTarball { home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz"; url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz";
sha256 = "026rvynmzmpigax9f8gy9z67lsl6dhzv2p6s8wz4w06v3gjvspm1"; sha256 = "0q3lv288xlzxczh6lc5lcw0zj9qskvjw3pzsrgvdh8rl8ibyq75s";
}; };
in { in {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
(import "${home-manager}/nixos") (import "${home-manager}/nixos")
../modules/bashistrans.nix
../modules/wm/hyprland.nix ../modules/wm/hyprland.nix
../modules/steam.nix ../modules/steam.nix
../modules/obsidian.nix
../modules/flipperzero.nix ../modules/obsidian.nix
../modules/chameleonultragui.nix ../modules/apps/rider.nix
../modules/apps/winbox.nix
#../modules/flipperzero.nix
#../modules/chameleonultragui.nix
]; ];
nix.settings.experimental-features = [ nix.settings = {
experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
download-buffer-size = 524288000; # 500 MiB
};
# nixpkgs.overlays = [
# (self: super: {
# jdk17 = super.jdk17.override (prev: {
# enableJavaFX = true;
# });
# })
# ];
nixpkgs.config.allowUnfreePredicate = let nixpkgs.config.allowUnfreePredicate = let
whitelist = map lib.getName [ vscext = pkgs.vscode-extensions;
pkgs.obsidian whitelist = with pkgs;
pkgs.gitkraken map lib.getName [
pkgs.steam discord
pkgs.steamcmd steam
pkgs.steam-unwrapped steamcmd
pkgs.dwarf-fortress steam-unwrapped
winbox
obsidian
gitkraken
vscode
vscext.ms-dotnettools.csharp
vscext.ms-dotnettools.csdevkit
vscext.github.copilot
vscext.github.copilot-chat
# XXX: DEBUG
# rider-override
# XXX: DEBUG
# jetbrains.rider
]; ];
in in
pkg: builtins.elem (lib.getName pkg) whitelist; pkg: builtins.elem (lib.getName pkg) whitelist;
@ -96,7 +129,16 @@ in {
hostName = "myputer"; hostName = "myputer";
networkmanager.enable = true; networkmanager.enable = true;
firewall.enable = true; firewall = {
enable = true;
allowedTCPPorts = [
22 # SSH
80 # HTTP
443 # HTTPS
5678 # MikroTik WinBox
25565 # Minecraft LAN
];
};
}; };
# ----- SERVICES ----- # ----- SERVICES -----
@ -183,19 +225,25 @@ in {
home-manager = { home-manager = {
users.me = import ../../homes/me; users.me = import ../../homes/me;
extraSpecialArgs = {inherit inputs pkgs pkgs-unstable;};
sharedModules = [ sharedModules = [
inputs.ags.homeManagerModules.default inputs.ags.homeManagerModules.default
]; ];
}; };
# ---- ENVIRONMENT VARIABLES ---- # ---- ENVIRONMENT VARIABLES ----
environment.sessionVariables = { environment = {
# always install "dev" derivation outputs
extraOutputsToInstall = ["dev" "man"];
sessionVariables = {
# folder names with capitalisation look awful! # folder names with capitalisation look awful!
XDG_DOWNLOAD_DIR = "$HOME/downloads"; XDG_DOWNLOAD_DIR = "$HOME/downloads";
# Hint Electrons apps to use Wayland # Hint Electrons apps to use Wayland
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
}; };
};
# ---- SYSTEM PACKAGES ----- # ---- SYSTEM PACKAGES -----
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -208,8 +256,16 @@ in {
bluetui bluetui
wl-clipboard # clipboard for wayland wl-clipboard # clipboard for wayland
hyprpicker hyprpicker
hyprshot # screenshot utility
qbittorrent qbittorrent
signal-desktop signal-desktop
kdePackages.gwenview # image viewer
libreoffice
# TEST: WARNING
# ospd-openvas
# openvas-scanner
# openvas-smb
(callPackage ../sddm-theme-corners.nix {}).sddm-theme-corners (callPackage ../sddm-theme-corners.nix {}).sddm-theme-corners
# dependencies for my sddm theme: # dependencies for my sddm theme:
@ -220,23 +276,52 @@ in {
fish fish
shellcheck shellcheck
grc # colorise command outputs grc # colorise command outputs
moreutils
# Systems Emulation # Systems Programming & Compilation
qemu # Fellice Bellard's Quick Emulator qemu # Fellice Bellard's Quick Emulator
# GNU Utils # GNU Utils
gnumake gnumake
# Binaries
binutils binutils
strace
ltrace
perf-tools # ftrace + perf
radare2
gdb
# ASM
nasm
(callPackage ../packages/x86-manpages {})
# C Family # C Family
gcc gcc
clang clang
clang-tools clang-tools
# Rust # Rust
cargo cargo
rustc rustc
# Nim
nim
# Go # Go
go go
# Nim
nim
nimble
# Haskell
ghc
ghcid
haskell-language-server
ormolu
# Java
# jdk17
# (jre8.overrideAttrs
# (oldAttrs: {
# enableJavaFX = true;
# }))
# (jdk8.overrideAttrs
# (oldAttrs: {
# enableJavaFX = true;
# }))
visualvm
# Python # Python
python312 # I use 3.12 since it's in a pretty stable state now python312 # I use 3.12 since it's in a pretty stable state now
@ -290,8 +375,10 @@ in {
file file
wget wget
tree tree
pstree
unzip unzip
unrar-free unrar-free
lz4
man-pages man-pages
man-pages-posix man-pages-posix
@ -340,21 +427,6 @@ in {
}; };
}; };
# I want to use fish as my login shell but it always goes terrible
# cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^)
bash = {
completion.enable = true;
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
# Thunar also (optionally) requires: `services.tumbler` & `services.gvfs` # Thunar also (optionally) requires: `services.tumbler` & `services.gvfs`
thunar = { thunar = {
enable = true; enable = true;
@ -367,6 +439,18 @@ in {
# mozilla's email client # mozilla's email client
thunderbird.enable = true; thunderbird.enable = true;
java = let
# XXX: WARNING: TEST :WARNING: XXX
# Test for CrazyCraft VoidLauncher
myjdk = pkgs.jdk17.override {
enableJavaFX = true;
# openjfx_jdk = pkgs.openjfx17.override {withWebKit = true;};
};
in {
enable = true;
package = myjdk;
};
}; };
# ----- FONTS ----- # ----- FONTS -----

View file

@ -0,0 +1,35 @@
# Template: https://nixos-and-flakes.thiscute.world/development/intro
{
description = "Humanity's Last Exam - Devshell";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
};
outputs = {nixpkgs, ...}: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
};
python = pkgs.python312.override {
self = python;
packageOverrides = pyfinal: pyprev: {
huggingface-hub = pyfinal.callPackage ./huggingface_hub.nix {};
hf-xet = pyfinal.callPackage ./hf-xet.nix {};
};
};
in {
devShells."${system}".default = pkgs.mkShell {
packages = [
(python.withPackages (pypkgs: [
pypkgs.huggingface-hub
]))
];
shell = "${pkgs.bash}/bin/bash";
shellHook = ''
alias hf=huggingface-cli
'';
};
};
}

View file

@ -0,0 +1,56 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pkg-config,
rustPlatform,
openssl,
}:
buildPythonPackage rec {
pname = "hf-xet";
version = "1.1.5";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "xet-core";
tag = "v${version}";
hash = "sha256-udjZcXTH+Mc4Gvj6bSPv1xi4MyXrLeCYav+7CzKWyhY=";
};
sourceRoot = "${src.name}/hf_xet";
cargoDeps = rustPlatform.fetchCargoVendor {
inherit
pname
version
src
sourceRoot
;
hash = "sha256-PTzYubJHFvhq6T3314R4aqBAJlwehOqF7SbpLu4Jo6E=";
};
nativeBuildInputs = [
pkg-config
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
];
buildInputs = [
openssl
];
env.OPENSSL_NO_VENDOR = 1;
pythonImportsCheck = ["hf_xet"];
# No tests (yet?)
doCheck = false;
meta = {
description = "Xet client tech, used in huggingface_hub";
homepage = "https://github.com/huggingface/xet-core/tree/main/hf_xet";
changelog = "https://github.com/huggingface/xet-core/releases/tag/v${version}";
license = lib.licenses.asl20;
};
}

View file

@ -0,0 +1,62 @@
/*
* WARNING: Just use `pkgs.python312Packages.huggingface-hub` (or change python version)
* WARNING: I didn't realise it existed when I packaged this.
*
* Nix Resources:
* 1. https://wiki.nixos.org/wiki/Python
* 2. https://nixos.org/manual/nixpkgs/unstable/#developing-with-python
*
* Hugging Face Resources:
* 1. https://github.com/huggingface/huggingface_hub
* 2. https://huggingface.co/docs/huggingface_hub/main/en/guides/cli
*/
{
lib,
buildPythonPackage,
fetchPypi,
# build time dependencies
setuptools,
# runtime dependencies
filelock,
fsspec,
hf-xet,
pyyaml,
requests,
tqdm,
typing-extensions,
}:
buildPythonPackage rec {
pname = "huggingface_hub";
version = "0.34.3";
src = fetchPypi {
inherit pname version;
hash = "sha256-1YEw/VqnQISAaBR1SRwKvX6DVEIIL7w+9NRbbDn4OFM=";
};
pyproject = true;
doCheck = false; # skip unit testing
pythonImportsCheck = ["huggingface_hub"];
# buildtime dependencies
build-system = [
setuptools
];
# runtime dependencies
dependencies = [
filelock
fsspec
hf-xet
pyyaml
requests
tqdm
typing-extensions
];
meta = rec {
description = "The official Python client for the Huggingface Hub.";
homepage = "https://github.com/huggingface/huggingface_hub";
changelog = "${homepage}/releases/tag/v${version}";
license = lib.licenses.asl20; # Apache License 2.0
};
}

View file

@ -0,0 +1,32 @@
{pkgs, ...}:
pkgs.stdenv.mkDerivation {
pname = "x86-manpages";
version = "0.0.1";
src = pkgs.fetchFromGitHub {
owner = "ttmo-O";
repo = "x86-manpages";
## Recommended
# rev = "0e199a8b4d90be7eb715291c21cf41de8527beac";
# sha256 = "0im596j0pf90npg933gkq6wpw23c47fcwv0n64qfqn5mcy92qbcb";
rev = "94902f9c45de0efe803c32b6c3e88d6623881866";
sha256 = "0k6nsfabzqwnhjiyw2kyg0z49nzrsxn515f6dcjh1rn7bzih5562";
};
installPhase = ''
mkdir -p $out/man/man7
shopt -u nullglob
for m in man7/*.7; do
install -m 644 "$m" "$out/man/man7"
done
'';
meta = with pkgs.lib; {
description = "Manpages for x86 instructions";
homepage = "https://github.com/ttmo-O/x86-manpages";
license = licenses.mit;
platforms = platforms.all;
};
}

44
scripts/box Executable file
View file

@ -0,0 +1,44 @@
#!/usr/bin/env bash
USAGE="Usage: box [--enter]"
# ===== Configuration ===== #
DATA_DIR="$HOME/.data/box"
# ========================= #
function setup {
mkdir -p "$DATA_DIR" &>/dev/null
}
function box {
mktemp -d
# TODO: use a custom name instead
}
set -euo pipefail
ENTER=false
for arg in $@; do
case "$arg" in
-e|--enter)
ENTER=true
shift
;;
-h|--help)
echo "$USAGE"
;;
-*)
echo "[!] Unknown opt \"$arg\"" >&2
;;
*)
echo "[!] Unknown arg \"$arg\"" >&2
;;
esac
done
setup
BOX=$(box)
if [[ "$ENTER" == true ]]; then
cd "$BOX"
fi

7
scripts/lsyscalls Executable file
View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
# USAGE: lsyscalls | sort [-nk2]
echo -e '#include <sys/syscall.h>'\
| cpp -dM \
| grep "#define __NR_.*[0-9]$" \
| cut -d_ -f 4-