Compare commits
No commits in common. "main" and "laptop" have entirely different histories.
31 changed files with 203 additions and 999 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,6 +1,5 @@
|
|||
ISSUES/
|
||||
secrets/
|
||||
nib/
|
||||
|
||||
result
|
||||
rebuild*.log
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
## Next Up
|
||||
0. Rename TODO -> TODO.md
|
||||
1. Rename user "ae" to "cry" or "vps"
|
||||
2. Add 404 page to nginx on hyrule
|
||||
3. Add a user called "mirror" that stores important mirrors (inspiration: https://git.gay/mirror)
|
||||
6
banner
6
banner
|
|
@ -1,6 +0,0 @@
|
|||
.------------.
|
||||
| oh my |
|
||||
'------------'
|
||||
^ (\_(\
|
||||
'----- ( -.-)
|
||||
o_(")(")
|
||||
|
|
@ -25,9 +25,8 @@ monitor=eDP-1, highres@highrr, auto, 1.0
|
|||
# Set programs that you use
|
||||
$terminal = ghostty #rio
|
||||
$fileManager = thunar
|
||||
# $menu = wofi --show drun
|
||||
# $menu = ags -t "applauncher"
|
||||
$menu = fuzzel
|
||||
#$menu = wofi --show drun
|
||||
$menu = ags -t "applauncher"
|
||||
$colorpicker = hyprpicker | head -c 7 | wl-copy
|
||||
|
||||
#################
|
||||
|
|
@ -41,7 +40,6 @@ $colorpicker = hyprpicker | head -c 7 | wl-copy
|
|||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
exec-once = swww-daemon &
|
||||
exec-once = mako &
|
||||
# TODO: or do I do `swww init` or `swww restore`?
|
||||
|
||||
# █▀▀ █▄░█ █░█ █░█ ▄▀█ █▀█
|
||||
|
|
|
|||
111
flake.lock
generated
111
flake.lock
generated
|
|
@ -1,11 +1,30 @@
|
|||
{
|
||||
"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": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"stable": "stable"
|
||||
},
|
||||
"locked": {
|
||||
|
|
@ -56,14 +75,14 @@
|
|||
},
|
||||
"grub2-themes": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757136219,
|
||||
"narHash": "sha256-tKU+vq34KHu/A2wD7WdgP5A4/RCmSD8hB0TyQAUlixA=",
|
||||
"lastModified": 1730004881,
|
||||
"narHash": "sha256-8xVIqIW25o2uCL0fxAmP4Sj9sdebarQXmd1+64yMe8o=",
|
||||
"owner": "vinceliuice",
|
||||
"repo": "grub2-themes",
|
||||
"rev": "80dd04ddf3ba7b284a7b1a5df2b1e95ee2aad606",
|
||||
"rev": "42c232dfb46bf93c17506cbc1a574e5e89b5e09f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -94,6 +113,38 @@
|
|||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1734119587,
|
||||
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
|
||||
|
|
@ -109,29 +160,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1761114652,
|
||||
"narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
|
||||
"lastModified": 1730808093,
|
||||
"narHash": "sha256-oOenwoxpzQsBNi7KltgnXqq6e0+CxlfNXKn3k27w6cQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"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",
|
||||
"rev": "c1a390f74b2c93f69a6805142f11a215a689cec1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -141,13 +176,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1761016216,
|
||||
"narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=",
|
||||
"lastModified": 1752620740,
|
||||
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "481cf557888e05d3128a76f14c76397b7d7cc869",
|
||||
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -159,9 +194,10 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"ags": "ags",
|
||||
"colmena": "colmena",
|
||||
"grub2-themes": "grub2-themes",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
},
|
||||
|
|
@ -180,6 +216,21 @@
|
|||
"repo": "nixpkgs",
|
||||
"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",
|
||||
|
|
|
|||
|
|
@ -5,9 +5,16 @@
|
|||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a";
|
||||
#home-manager = {
|
||||
# url = "github:nix-community/home-manager";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
#};
|
||||
|
||||
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
||||
|
||||
ags.url = "github:Aylur/ags";
|
||||
|
||||
colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
|
|
|
|||
|
|
@ -6,33 +6,26 @@
|
|||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
} @ args: {
|
||||
}: {
|
||||
imports = [
|
||||
../modules/fish.nix
|
||||
../modules/btop.nix
|
||||
../modules/tmux.nix
|
||||
../modules/term/foot.nix
|
||||
../modules/git.nix
|
||||
../modules/bat.nix
|
||||
|
||||
../modules/fish.nix
|
||||
../modules/editor/helix.nix
|
||||
(import ../modules/editor/vscode.nix args)
|
||||
# ../modules/editor/vscodium.nix
|
||||
|
||||
../modules/btop.nix
|
||||
../modules/term/ghostty.nix
|
||||
../modules/term/foot.nix
|
||||
# ../modules/term/rio.nix
|
||||
../modules/firefox.nix
|
||||
../modules/apps/thunderbird.nix
|
||||
|
||||
#../modules/wm/hypr/hypridle.nix
|
||||
../modules/wm/hypr/hyprlock.nix
|
||||
../modules/kanshi.nix
|
||||
../modules/ags
|
||||
../modules/mako.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.GetName pkg) [
|
||||
"vscode-extension-ms-dotnettools-csharp"
|
||||
];
|
||||
|
||||
home = {
|
||||
username = "me";
|
||||
homeDirectory = "/home/me";
|
||||
|
|
@ -42,10 +35,6 @@
|
|||
man = "batman"; # bat + man
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
NIX_SHELL_PRESERVE_PROMPT = 1;
|
||||
};
|
||||
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
# x11.enable = true # dont enable since im on hyprland
|
||||
|
|
@ -53,18 +42,6 @@
|
|||
name = "Bibata-Modern-Ice";
|
||||
size = 16;
|
||||
};
|
||||
|
||||
packages = with pkgs; [
|
||||
# for services.gnome-keyring
|
||||
pkgs.gcr # provides org.gnome.keyring.SystemPrompter
|
||||
seahorse # gui
|
||||
|
||||
tor-browser
|
||||
|
||||
fuzzel
|
||||
|
||||
speedtest-cli
|
||||
];
|
||||
};
|
||||
|
||||
gtk = {
|
||||
|
|
@ -159,12 +136,8 @@
|
|||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
# enable OpenSSH private key agent
|
||||
ssh-agent.enable = true;
|
||||
|
||||
gnome-keyring.enable = true;
|
||||
};
|
||||
# enable OpenSSH private key agent
|
||||
services.ssh-agent.enable = true;
|
||||
# the ssh-agent won't set this for itself...
|
||||
systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent";
|
||||
# Nicely reload system units when changing configs
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
{...}: {
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
"me" = {
|
||||
isDefault = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -136,28 +136,6 @@
|
|||
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||
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 = {
|
||||
|
|
@ -171,15 +149,6 @@
|
|||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,134 +0,0 @@
|
|||
{
|
||||
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 = ...;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,37 +1,9 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# REF: https://home-manager-options.extranix.com/?query=vscode&release=release-25.05
|
||||
{pkgs, ...}: {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
|
||||
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
|
||||
# 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";
|
||||
};
|
||||
};
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,14 +12,6 @@
|
|||
config = {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
generateCompletions = true;
|
||||
|
||||
# vendor = {
|
||||
# config.enable = true;
|
||||
# functions.enable = true;
|
||||
# completions.enable = true;
|
||||
# };
|
||||
|
||||
interactiveShellInit = ''
|
||||
# add dotnet completions if it exists (ie we're in a virtual environment)
|
||||
if type -q dotnet
|
||||
|
|
@ -35,15 +27,6 @@
|
|||
echo -n $greetings[(random 1 (count $greetings))]
|
||||
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)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,19 +5,6 @@
|
|||
}: {
|
||||
programs.git = {
|
||||
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 = {
|
||||
color.ui = true;
|
||||
core.editor = "hx";
|
||||
|
|
@ -33,20 +20,10 @@
|
|||
"github:"
|
||||
];
|
||||
};
|
||||
"https://gitlab.com/" = {
|
||||
insteadOf = [
|
||||
"gl:"
|
||||
"gitlab:"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
includes = [
|
||||
{
|
||||
path = "/home/me/agribit/.gitconfig";
|
||||
condition = "gitdir:/home/me/agribit/**";
|
||||
}
|
||||
];
|
||||
userName = "Emile Clark-Boman";
|
||||
userEmail = "eclarkboman@gmail.com";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
{...}: 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{...}: {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,43 +1,2 @@
|
|||
# NOTE: hyprland must be enabled in BOTH your host config (for running hyprland)
|
||||
# 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
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,16 +7,15 @@
|
|||
}: let
|
||||
home-manager = builtins.fetchTarball {
|
||||
url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz";
|
||||
sha256 = "0d41gr0c89a4y4lllzdgmbm54h9kn9fjnmavwpgw0w9xwqwnzpax";
|
||||
sha256 = "026rvynmzmpigax9f8gy9z67lsl6dhzv2p6s8wz4w06v3gjvspm1";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
(import "${home-manager}/nixos")
|
||||
|
||||
# ./mailserver.nix # TEMP: location
|
||||
# ./minecraft-server.nix # TEMP: location
|
||||
|
||||
./mailserver.nix # TEMP: location
|
||||
./minecraft-server.nix # TEMP: location
|
||||
#../modules/server/nginx.nix
|
||||
#../modules/server/ssh.nix
|
||||
#../modules/server/fail2ban.nix
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ in {
|
|||
./hardware-configuration.nix
|
||||
(import "${home-manager}/nixos")
|
||||
|
||||
../modules/bashistrans.nix
|
||||
|
||||
../modules/wm/hyprland.nix
|
||||
# ../modules/wm/river.nix
|
||||
../modules/wm/crywl.nix
|
||||
|
|
@ -35,31 +33,14 @@ in {
|
|||
];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = let
|
||||
vscext = pkgs.vscode-extensions;
|
||||
whitelist = with pkgs;
|
||||
map lib.getName [
|
||||
discord
|
||||
steam
|
||||
steamcmd
|
||||
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
|
||||
];
|
||||
whitelist = map lib.getName [
|
||||
pkgs.obsidian
|
||||
pkgs.gitkraken
|
||||
pkgs.steam
|
||||
pkgs.steamcmd
|
||||
pkgs.steam-unwrapped
|
||||
pkgs.dwarf-fortress
|
||||
];
|
||||
in
|
||||
pkg: builtins.elem (lib.getName pkg) whitelist;
|
||||
|
||||
|
|
@ -119,30 +100,10 @@ in {
|
|||
networkmanager.enable = true;
|
||||
|
||||
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 = {
|
||||
# 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)
|
||||
displayManager = {
|
||||
# sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||
|
|
@ -160,11 +121,11 @@ in {
|
|||
);
|
||||
};
|
||||
|
||||
# dbus = {
|
||||
# # NOTE: programs.uwsm.enable sets implementation to dbus-broker,
|
||||
# # NOTE: however this seems to break dbus
|
||||
# implementation = lib.mkForce "dbus";
|
||||
# };
|
||||
dbus = {
|
||||
# NOTE: programs.uwsm.enable sets implementation to dbus-broker,
|
||||
# NOTE: however this seems to break dbus
|
||||
implementation = lib.mkForce "dbus";
|
||||
};
|
||||
|
||||
# Multimedia Framework
|
||||
# With backwards compatability for alsa/pulseaudio/jack
|
||||
|
|
@ -237,17 +198,12 @@ in {
|
|||
};
|
||||
|
||||
# ---- ENVIRONMENT VARIABLES ----
|
||||
environment = {
|
||||
# always install "dev" derivation outputs
|
||||
extraOutputsToInstall = ["dev" "man"];
|
||||
environment.sessionVariables = {
|
||||
# folder names with capitalisation look awful!
|
||||
XDG_DOWNLOAD_DIR = "$HOME/downloads";
|
||||
|
||||
sessionVariables = {
|
||||
# folder names with capitalisation look awful!
|
||||
XDG_DOWNLOAD_DIR = "$HOME/downloads";
|
||||
|
||||
# Hint Electrons apps to use Wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
# Hint Electrons apps to use Wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
# ---- SYSTEM PACKAGES -----
|
||||
|
|
@ -273,49 +229,23 @@ in {
|
|||
fish
|
||||
shellcheck
|
||||
grc # colorise command outputs
|
||||
moreutils
|
||||
|
||||
# Systems Emulation
|
||||
qemu # Fellice Bellard's Quick Emulator
|
||||
# GNU Utils
|
||||
gnumake
|
||||
# Binaries
|
||||
binutils
|
||||
strace
|
||||
ltrace
|
||||
perf-tools # ftrace + perf
|
||||
radare2
|
||||
gdb
|
||||
hexyl
|
||||
# ASM
|
||||
nasm
|
||||
(callPackage ../packages/x86-manpages {})
|
||||
# C Family
|
||||
gcc
|
||||
clang
|
||||
|
||||
clang-tools
|
||||
# Rust
|
||||
cargo
|
||||
rustc
|
||||
# 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
|
||||
# Go
|
||||
go
|
||||
|
||||
# Python
|
||||
python312 # I use 3.12 since it's in a pretty stable state now
|
||||
|
|
@ -324,11 +254,6 @@ in {
|
|||
# Sage
|
||||
sageWithDoc # SageMath + HTML Documentation
|
||||
|
||||
# .NET
|
||||
dotnetCorePackages.dotnet_9.sdk
|
||||
dotnetCorePackages.dotnet_9.aspnetcore
|
||||
dotnetCorePackages.dotnet_9.runtime
|
||||
|
||||
openvpn
|
||||
inetutils
|
||||
|
||||
|
|
@ -345,18 +270,23 @@ in {
|
|||
zoxide
|
||||
doggo
|
||||
tldr
|
||||
btop
|
||||
# btop
|
||||
eza
|
||||
yazi
|
||||
lazygit
|
||||
ripgrep
|
||||
viddy # modern `watch` command
|
||||
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
|
||||
git
|
||||
git-filter-repo
|
||||
nix-prefetch-git
|
||||
brightnessctl
|
||||
acpi
|
||||
# upower
|
||||
|
|
@ -368,10 +298,8 @@ in {
|
|||
file
|
||||
wget
|
||||
tree
|
||||
pstree
|
||||
unzip
|
||||
unrar-free
|
||||
lz4
|
||||
man-pages
|
||||
man-pages-posix
|
||||
|
||||
|
|
@ -381,6 +309,8 @@ in {
|
|||
libargon2
|
||||
|
||||
# Games
|
||||
mindustry
|
||||
dwarf-fortress
|
||||
prismlauncher # minecraft
|
||||
];
|
||||
|
||||
|
|
@ -396,6 +326,22 @@ in {
|
|||
|
||||
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 = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{...}: {
|
||||
programs.winbox = {
|
||||
enable = true;
|
||||
openFirewall = false; # port: 5678
|
||||
};
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
{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
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -3,38 +3,22 @@
|
|||
lib,
|
||||
...
|
||||
}: {
|
||||
# nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
# builtins.elem (lib.getName pkg) [
|
||||
# "steam"
|
||||
# "steam-original"
|
||||
# "steam-unwrapped"
|
||||
# "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]
|
||||
);
|
||||
});
|
||||
})
|
||||
];
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
"steam-run"
|
||||
];
|
||||
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = false; # .desktop entry for gamescope
|
||||
gamescopeSession.enable = true;
|
||||
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
};
|
||||
|
||||
gamemode.enable = true;
|
||||
|
|
@ -45,12 +29,7 @@
|
|||
|
||||
mangohud
|
||||
protonup-qt
|
||||
|
||||
# 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
|
||||
|
||||
lutris
|
||||
bottles
|
||||
heroic
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
{pkgs, ...}: {
|
||||
environment.defaultPackages = with pkgs; [
|
||||
hyprsunset
|
||||
];
|
||||
|
||||
{...}: {
|
||||
programs = {
|
||||
hyprland = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,75 +1,42 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
home-manager = builtins.fetchTarball {
|
||||
url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz";
|
||||
sha256 = "0q3lv288xlzxczh6lc5lcw0zj9qskvjw3pzsrgvdh8rl8ibyq75s";
|
||||
sha256 = "026rvynmzmpigax9f8gy9z67lsl6dhzv2p6s8wz4w06v3gjvspm1";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
(import "${home-manager}/nixos")
|
||||
|
||||
../modules/bashistrans.nix
|
||||
|
||||
../modules/wm/hyprland.nix
|
||||
|
||||
../modules/steam.nix
|
||||
|
||||
../modules/obsidian.nix
|
||||
../modules/apps/rider.nix
|
||||
../modules/apps/winbox.nix
|
||||
|
||||
#../modules/flipperzero.nix
|
||||
#../modules/chameleonultragui.nix
|
||||
../modules/flipperzero.nix
|
||||
../modules/chameleonultragui.nix
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
download-buffer-size = 524288000; # 500 MiB
|
||||
};
|
||||
# nixpkgs.overlays = [
|
||||
# (self: super: {
|
||||
# jdk17 = super.jdk17.override (prev: {
|
||||
# enableJavaFX = true;
|
||||
# });
|
||||
# })
|
||||
# ];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = let
|
||||
vscext = pkgs.vscode-extensions;
|
||||
whitelist = with pkgs;
|
||||
map lib.getName [
|
||||
discord
|
||||
steam
|
||||
steamcmd
|
||||
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
|
||||
];
|
||||
whitelist = map lib.getName [
|
||||
pkgs.obsidian
|
||||
pkgs.gitkraken
|
||||
pkgs.steam
|
||||
pkgs.steamcmd
|
||||
pkgs.steam-unwrapped
|
||||
pkgs.dwarf-fortress
|
||||
];
|
||||
in
|
||||
pkg: builtins.elem (lib.getName pkg) whitelist;
|
||||
|
||||
|
|
@ -129,16 +96,7 @@ in {
|
|||
hostName = "myputer";
|
||||
networkmanager.enable = true;
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22 # SSH
|
||||
80 # HTTP
|
||||
443 # HTTPS
|
||||
5678 # MikroTik WinBox
|
||||
25565 # Minecraft LAN
|
||||
];
|
||||
};
|
||||
firewall.enable = true;
|
||||
};
|
||||
|
||||
# ----- SERVICES -----
|
||||
|
|
@ -225,24 +183,18 @@ in {
|
|||
|
||||
home-manager = {
|
||||
users.me = import ../../homes/me;
|
||||
extraSpecialArgs = {inherit inputs pkgs pkgs-unstable;};
|
||||
sharedModules = [
|
||||
inputs.ags.homeManagerModules.default
|
||||
];
|
||||
};
|
||||
|
||||
# ---- ENVIRONMENT VARIABLES ----
|
||||
environment = {
|
||||
# always install "dev" derivation outputs
|
||||
extraOutputsToInstall = ["dev" "man"];
|
||||
environment.sessionVariables = {
|
||||
# folder names with capitalisation look awful!
|
||||
XDG_DOWNLOAD_DIR = "$HOME/downloads";
|
||||
|
||||
sessionVariables = {
|
||||
# folder names with capitalisation look awful!
|
||||
XDG_DOWNLOAD_DIR = "$HOME/downloads";
|
||||
|
||||
# Hint Electrons apps to use Wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
# Hint Electrons apps to use Wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
# ---- SYSTEM PACKAGES -----
|
||||
|
|
@ -256,16 +208,8 @@ in {
|
|||
bluetui
|
||||
wl-clipboard # clipboard for wayland
|
||||
hyprpicker
|
||||
hyprshot # screenshot utility
|
||||
qbittorrent
|
||||
signal-desktop
|
||||
kdePackages.gwenview # image viewer
|
||||
libreoffice
|
||||
|
||||
# TEST: WARNING
|
||||
# ospd-openvas
|
||||
# openvas-scanner
|
||||
# openvas-smb
|
||||
|
||||
(callPackage ../sddm-theme-corners.nix {}).sddm-theme-corners
|
||||
# dependencies for my sddm theme:
|
||||
|
|
@ -276,52 +220,23 @@ in {
|
|||
fish
|
||||
shellcheck
|
||||
grc # colorise command outputs
|
||||
moreutils
|
||||
|
||||
# Systems Programming & Compilation
|
||||
# Systems Emulation
|
||||
qemu # Fellice Bellard's Quick Emulator
|
||||
# GNU Utils
|
||||
gnumake
|
||||
# Binaries
|
||||
binutils
|
||||
strace
|
||||
ltrace
|
||||
perf-tools # ftrace + perf
|
||||
radare2
|
||||
gdb
|
||||
# ASM
|
||||
nasm
|
||||
(callPackage ../packages/x86-manpages {})
|
||||
# C Family
|
||||
gcc
|
||||
clang
|
||||
clang-tools
|
||||
|
||||
# Rust
|
||||
cargo
|
||||
rustc
|
||||
# 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
|
||||
# Go
|
||||
go
|
||||
|
||||
# Python
|
||||
python312 # I use 3.12 since it's in a pretty stable state now
|
||||
|
|
@ -375,10 +290,8 @@ in {
|
|||
file
|
||||
wget
|
||||
tree
|
||||
pstree
|
||||
unzip
|
||||
unrar-free
|
||||
lz4
|
||||
man-pages
|
||||
man-pages-posix
|
||||
|
||||
|
|
@ -427,6 +340,21 @@ 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 = {
|
||||
enable = true;
|
||||
|
|
@ -439,18 +367,6 @@ in {
|
|||
|
||||
# mozilla's email client
|
||||
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 -----
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
# 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
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
/*
|
||||
* 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
|
||||
};
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{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
44
scripts/box
|
|
@ -1,44 +0,0 @@
|
|||
#!/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
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#!/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-
|
||||
Loading…
Add table
Add a link
Reference in a new issue