1
0
Fork 0
forked from foxora/nix

#1 hater of infinite recursion

This commit is contained in:
do butterflies cry? 2026-02-13 23:27:35 +10:00
parent 43b04c3f8a
commit a5bb1d1cc1
31 changed files with 946 additions and 851 deletions

View file

@ -1,10 +1,10 @@
{ config, inputs, lib, pkgs, ... }:
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
inputs.iamb.packages."${stdenv.hostPlatform.system}".default
inputs,
system,
...
}: {
home.packages = [
inputs.iamb.packages.${system}.default
];
xdg.configFile."iamb/config.toml" = {

View file

@ -1,4 +1,8 @@
{ config, lib, inputs, upkgs, ... }: let
{
inputs,
spkgs,
...
}: let
utils = inputs.nixcats.utils;
in {
imports = [
@ -14,93 +18,105 @@ in {
# this will add the overlays from ./overlays and also,
# add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins
# It will not apply to overall system, just nixCats.
addOverlays = /* (import ./overlays inputs) ++ */ [
(utils.standardPluginOverlay inputs)
];
addOverlays =
/*
(import ./overlays inputs) ++
*/
[
(utils.standardPluginOverlay inputs)
];
# see the packageDefinitions below.
# This says which of those to install.
packageNames = [ "auroranvim" ];
packageNames = ["auroranvim"];
luaPath = "${./.}";
# the .replace vs .merge options are for modules based on existing configurations,
# they refer to how multiple categoryDefinitions get merged together by the module.
# for useage of this section, refer to :h nixCats.flake.outputs.categories
categoryDefinitions.replace = ({ pkgs, settings, categories, extra, name, mkNvimPlugin, ... }@packageDef: {
categoryDefinitions.replace = {
pkgs,
settings,
categories,
extra,
name,
mkNvimPlugin,
...
} @ packageDef: {
lspsAndRuntimeDeps = {
general = with pkgs; [
ripgrep
fd
];
treesitter = with pkgs; [
tree-sitter
];
lang = with pkgs; {
lua = [
lua-language-server
];
nix = [
nil
nix-doc
];
rust = with pkgs; [
cargo
ripgrep
fd
];
treesitter = with pkgs; [
tree-sitter
];
lang = with pkgs; {
lua = [
lua-language-server
];
nix = [
nil
nix-doc
];
rust = with pkgs; [
cargo
rust-analyzer
];
zig = with pkgs; [
upkgs.zls # FIX: using upkgs version as zls is broken rn ;-;
];
elixir = with pkgs; [
elixir-ls
];
gleam = with pkgs; [
gleam
];
java = with pkgs; [
jdt-language-server
];
zig = with pkgs; [
spkgs.zls # FIX: using spkgs version as zls is broken rn ;-;
];
elixir = with pkgs; [
elixir-ls
];
gleam = with pkgs; [
gleam
];
java = with pkgs; [
jdt-language-server
javaPackages.compiler.openjdk17
javaPackages.compiler.openjdk21
];
};
];
};
};
startupPlugins = {
general = with pkgs.vimPlugins; [
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = with pkgs.vimPlugins; [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = with pkgs.vimPlugins; [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
};
optionalPlugins = {
general = with pkgs.vimPlugins; [
];
ui = with pkgs.vimPlugins; [
dressing-nvim
];
qol = with pkgs.vimPlugins; [
undotree
];
ui = with pkgs.vimPlugins; [
dressing-nvim
];
qol = with pkgs.vimPlugins; [
undotree
mini-hipatterns
];
telescope = with pkgs.vimPlugins; [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = with pkgs.vimPlugins; [
fyler-nvim
];
lsp = with pkgs.vimPlugins; [
nvim-lspconfig
];
completion = with pkgs.vimPlugins; [
blink-cmp
];
telescope = with pkgs.vimPlugins; [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = with pkgs.vimPlugins; [
fyler-nvim
];
lsp = with pkgs.vimPlugins; [
nvim-lspconfig
];
completion = with pkgs.vimPlugins; [
blink-cmp
nvim-cmp
luasnip
friendly-snippets
@ -113,15 +129,15 @@ in {
cmp-nvim-lsp-signature-help
cmp-cmdline-history
lspkind-nvim
];
lang = with pkgs.vimPlugins; {
java = [
nvim-jdtls
];
};
discord = with pkgs.vimPlugins; [
neocord # discord presence plugin :3
];
];
lang = with pkgs.vimPlugins; {
java = [
nvim-jdtls
];
};
discord = with pkgs.vimPlugins; [
neocord # discord presence plugin :3
];
};
# shared libraries to be added to LD_LIBRARY_PATH
@ -132,25 +148,25 @@ in {
];
};
environmentVariables = {
lang = {
lang = {
rust = {
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
RUST_ANALYZER_CMD = "${pkgs.rust-analyzer}/bin/rust-analyzer";
};
elixir = {
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
};
java = {
java = {
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
};
};
};
};
};
extraWrapperArgs = {
test = [
'' --set CATTESTVAR2 "It worked again!"''
''--set CATTESTVAR2 "It worked again!"''
];
};
# lists of the functions you would have passed to
@ -161,50 +177,50 @@ in {
# vim.g.python3_host_prog
# or run from nvim terminal via :!<packagename>-python3
extraPython3Packages = {
test = (_:[]);
test = _: [];
};
# populates $LUA_PATH and $LUA_CPATH
extraLuaPackages = {
test = [ (_:[]) ];
test = [(_: [])];
};
});
};
# see :help nixCats.flake.outputs.packageDefinitions
packageDefinitions.replace = {
# these are the names of your packages
# you can include as many as you wish.
auroranvim = {pkgs , ... }: {
auroranvim = {pkgs, ...}: {
# they contain a settings set defined above
# see :help nixCats.flake.outputs.settings
settings = {
wrapRc = true;
# IMPORTANT:
# your alias may not conflict with your other packages.
aliases = [ "auroravim" "auravim" "foxyvim" "avix" "fvix" "auim" ];
aliases = ["auroravim" "auravim" "foxyvim" "avix" "fvix" "auim"];
};
# and a set of categories that you want
# (and other information to pass to lua)
categories = {
general = true;
ui = true;
qol = true;
telescope = true;
fyler = true;
lsp = true;
completion = true;
treesitter = true;
discord = false;
ui = true;
qol = true;
telescope = true;
fyler = true;
lsp = true;
completion = true;
treesitter = true;
discord = false;
lang = {
lua = true;
nix = true;
rust = true;
zig = true;
elixir = true;
gleam = true;
java = true;
};
lang = {
lua = true;
nix = true;
rust = true;
zig = true;
elixir = true;
gleam = true;
java = true;
};
};
};
};

View file

@ -1,5 +1,4 @@
{ config, inputs, lib, pkgs, ... }:
{
{inputs, ...}: {
imports = [
inputs.nixcord.homeModules.nixcord
];
@ -20,125 +19,125 @@
];
plugins = {
anonymiseFileNames = {
enable = true;
anonymiseByDefault = true;
method = 0;
randomisedLength = 16;
};
betterSessions = {
backgroundCheck = true;
checkInterval = 1;
};
biggerStreamPreview.enable = true;
callTimer.enable = true;
fixYoutubeEmbeds.enable = true;
fixSpotifyEmbeds.enable = true;
tidalEmbeds.enable = true;
youtubeAdblock.enable = true;
followVoiceUser.enable = true;
friendsSince.enable = true;
ircColors = {
enable = true;
lightness = 80;
memberListColors = true;
applyColorOnlyInDms = false;
applyColorOnlyToUsersWithoutColor = false;
};
messageLogger = {
enable = true;
showEditDiffs = true;
separatedDiffs = false;
};
fakeNitro.enable = true;
ghosted.enable = true;
noF1.enable = true;
noMaskedUrlPaste.enable = true;
messageLatency = {
enable = false;
latency = -1;
showMillis = true;
};
openInApp.enable = true;
crashHandler.enable = true;
disableCallIdle.enable = true;
experiments.enable = true;
expressionCloner.enable = true;
favoriteGifSearch.enable = true;
fixImagesQuality.enable = true;
forceOwnerCrown.enable = true;
forwardAnywhere.enable = true;
spotifyCrack.enable = true;
spotifyShareCommands.enable = true;
spotifyControls.enable = true;
fullUserInChatbox.enable = true;
gifPaste.enable = true;
ignoreActivities = {
enable = true;
ignorePlaying = true;
ignoreStreaming = true;
ignoreListening = true;
ignoreWatching = true;
ignoreCompeting = true;
};
imageLink.enable = true;
imageZoom.enable = true;
memberCount.enable = true;
noDevtoolsWarning.enable = true;
noUnblockToJump.enable = true;
pauseInvitesForever.enable = true;
permissionsViewer.enable = true;
pictureInPicture = {
enable = true;
loop = true;
};
platformIndicators.enable = true;
previewMessage.enable = true;
relationshipNotifier.enable = true;
revealAllSpoilers.enable = true;
serverInfo.enable = true;
serverListIndicators.enable = true;
showHiddenChannels.enable = true;
showHiddenThings.enable = true;
showTimeoutDuration = {
enable = true;
displayStyle = "tooltip";
};
silentTyping = {
enable = true;
enabledGlobally = false;
};
startupTimings.enable = true;
typingIndicator.enable = true;
unlockedAvatarZoom = {
enable = true;
zoomMultiplier = 4.0;
};
userMessagesPronouns.enable = true;
validUser.enable = true;
validReply.enable = true;
viewIcons = {
enable = true;
format = "webp";
imgSize = "4096";
};
voiceChatDoubleClick.enable = true;
voiceDownload.enable = true;
voiceMessages = {
enable = true;
noiseSuppression = false;
echoCancellation = true;
};
volumeBooster.enable = true;
webKeybinds.enable = true;
webScreenShareFixes.enable = true;
whoReacted.enable = true;
whosWatching.enable = true;
quickReply.enable = true;
questCompleter.enable = true;
shikiCodeblocks = {
enable = true;
useDevIcon = "COLOR";
theme = "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/kanagawa-wave.json";
enable = true;
anonymiseByDefault = true;
method = 0;
randomisedLength = 16;
};
betterSessions = {
backgroundCheck = true;
checkInterval = 1;
};
biggerStreamPreview.enable = true;
callTimer.enable = true;
fixYoutubeEmbeds.enable = true;
fixSpotifyEmbeds.enable = true;
tidalEmbeds.enable = true;
youtubeAdblock.enable = true;
followVoiceUser.enable = true;
friendsSince.enable = true;
ircColors = {
enable = true;
lightness = 80;
memberListColors = true;
applyColorOnlyInDms = false;
applyColorOnlyToUsersWithoutColor = false;
};
messageLogger = {
enable = true;
showEditDiffs = true;
separatedDiffs = false;
};
fakeNitro.enable = true;
ghosted.enable = true;
noF1.enable = true;
noMaskedUrlPaste.enable = true;
messageLatency = {
enable = false;
latency = -1;
showMillis = true;
};
openInApp.enable = true;
crashHandler.enable = true;
disableCallIdle.enable = true;
experiments.enable = true;
expressionCloner.enable = true;
favoriteGifSearch.enable = true;
fixImagesQuality.enable = true;
forceOwnerCrown.enable = true;
forwardAnywhere.enable = true;
spotifyCrack.enable = true;
spotifyShareCommands.enable = true;
spotifyControls.enable = true;
fullUserInChatbox.enable = true;
gifPaste.enable = true;
ignoreActivities = {
enable = true;
ignorePlaying = true;
ignoreStreaming = true;
ignoreListening = true;
ignoreWatching = true;
ignoreCompeting = true;
};
imageLink.enable = true;
imageZoom.enable = true;
memberCount.enable = true;
noDevtoolsWarning.enable = true;
noUnblockToJump.enable = true;
pauseInvitesForever.enable = true;
permissionsViewer.enable = true;
pictureInPicture = {
enable = true;
loop = true;
};
platformIndicators.enable = true;
previewMessage.enable = true;
relationshipNotifier.enable = true;
revealAllSpoilers.enable = true;
serverInfo.enable = true;
serverListIndicators.enable = true;
showHiddenChannels.enable = true;
showHiddenThings.enable = true;
showTimeoutDuration = {
enable = true;
displayStyle = "tooltip";
};
silentTyping = {
enable = true;
enabledGlobally = false;
};
startupTimings.enable = true;
typingIndicator.enable = true;
unlockedAvatarZoom = {
enable = true;
zoomMultiplier = 4.0;
};
userMessagesPronouns.enable = true;
validUser.enable = true;
validReply.enable = true;
viewIcons = {
enable = true;
format = "webp";
imgSize = "4096";
};
voiceChatDoubleClick.enable = true;
voiceDownload.enable = true;
voiceMessages = {
enable = true;
noiseSuppression = false;
echoCancellation = true;
};
volumeBooster.enable = true;
webKeybinds.enable = true;
webScreenShareFixes.enable = true;
whoReacted.enable = true;
whosWatching.enable = true;
quickReply.enable = true;
questCompleter.enable = true;
shikiCodeblocks = {
enable = true;
useDevIcon = "COLOR";
theme = "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/kanagawa-wave.json";
};
};
};

View file

@ -1,8 +1,12 @@
{ inputs, lib, pkgs, ... }:
let
spicetifyPkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
{
inputs,
upkgs,
system,
...
}: let
spicetifyPkgs = inputs.spicetify-nix.legacyPackages.${system};
in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
imports = [inputs.spicetify-nix.homeManagerModules.default];
programs.spicetify = {
enable = true;
@ -10,15 +14,17 @@ in {
adblock
shuffle
keyboardShortcut
({
src = (pkgs.fetchFromGitHub {
owner = "Spikerko";
repo = "spicy-lyrics";
rev = "568c83326aa6aba6ded28c95df6fcfb25cab3648";
hash = "sha256-lej93EDzGkmyrg5YMdPSqzrxlIfKsfaDBZosTvxoTNw=";
}) + /builds;
name = "spicy-lyrics.mjs";
})
{
src =
(upkgs.fetchFromGitHub {
owner = "Spikerko";
repo = "spicy-lyrics";
rev = "568c83326aa6aba6ded28c95df6fcfb25cab3648";
hash = "sha256-lej93EDzGkmyrg5YMdPSqzrxlIfKsfaDBZosTvxoTNw=";
})
+ /builds;
name = "spicy-lyrics.mjs";
}
];
theme = spicetifyPkgs.themes.comfy;
colorScheme = "Sakura";

View file

@ -1,8 +1,8 @@
{ config, inputs, lib, pkgs, ... }:
{
{upkgs, ...}: {
# optional dependencies can be found here:
# https://yazi-rs.github.io/docs/installation/
home.packages = with pkgs; [ # dependencies
home.packages = with upkgs; [
# dependencies
ripdrag
];
@ -22,9 +22,15 @@
keymap = {
mgr.prepend_keymap = [
# drag and drop!!
{ on = [ "<S-c>" ]; run = ''shell "ripdrag -x -a \"$@\"" --confirm''; }
{
on = ["<S-c>"];
run = ''shell "ripdrag -x -a \"$@\"" --confirm'';
}
# copy hovered file to clipboard
{ on = [ "<S-y>" ]; run = ''shell -- path=%h; echo "file://$path" | wl-copy -t text/uri-list''; }
{
on = ["<S-y>"];
run = ''shell -- path=%h; echo "file://$path" | wl-copy -t text/uri-list'';
}
];
};
@ -34,36 +40,122 @@
theme = {
icon = {
dirs = [
{ name = ".config"; text = ""; fg = "red"; }
{ name = ".git"; text = ""; fg = "blue"; }
{ name = ".github"; text = ""; fg = "blue"; }
{ name = ".npm"; text = ""; fg = "blue"; }
{ name = "Desktop"; text = ""; fg = "magenta"; }
{ name = "Documents"; text = ""; fg = "magenta"; }
{ name = "Downloads"; text = ""; fg = "red"; }
{ name = "Library"; text = ""; fg = "magenta"; }
{ name = "Movies"; text = ""; fg = "magenta"; }
{ name = "Music"; text = ""; fg = "magenta"; }
{ name = "Pictures"; text = ""; fg = "magenta"; }
{ name = "Public"; text = ""; fg = "magenta"; }
{ name = "Videos"; text = ""; fg = "red"; }
{
name = ".config";
text = "";
fg = "red";
}
{
name = ".git";
text = "";
fg = "blue";
}
{
name = ".github";
text = "";
fg = "blue";
}
{
name = ".npm";
text = "";
fg = "blue";
}
{
name = "Desktop";
text = "";
fg = "magenta";
}
{
name = "Documents";
text = "";
fg = "magenta";
}
{
name = "Downloads";
text = "";
fg = "red";
}
{
name = "Library";
text = "";
fg = "magenta";
}
{
name = "Movies";
text = "";
fg = "magenta";
}
{
name = "Music";
text = "";
fg = "magenta";
}
{
name = "Pictures";
text = "";
fg = "magenta";
}
{
name = "Public";
text = "";
fg = "magenta";
}
{
name = "Videos";
text = "";
fg = "red";
}
];
conds = [
# special files
{ "if" = "orphan"; text = ""; }
{ "if" = "link"; text = ""; }
{ "if" = "block"; text = ""; }
{ "if" = "char"; text = ""; }
{ "if" = "fifo"; text = ""; }
{ "if" = "sock"; text = ""; }
{ "if" = "sticky"; text = ""; }
{ "if" = "dummy"; text = ""; }
conds = [
# special files
{
"if" = "orphan";
text = "";
}
{
"if" = "link";
text = "";
}
{
"if" = "block";
text = "";
}
{
"if" = "char";
text = "";
}
{
"if" = "fifo";
text = "";
}
{
"if" = "sock";
text = "";
}
{
"if" = "sticky";
text = "";
}
{
"if" = "dummy";
text = "";
}
# fallback
{ "if" = "dir"; text = ""; fg = "blue"; }
{ "if" = "exec"; text = ""; }
{ "if" = "!dir"; text = ""; }
];
# fallback
{
"if" = "dir";
text = "";
fg = "blue";
}
{
"if" = "exec";
text = "";
}
{
"if" = "!dir";
text = "";
}
];
};
};
};
@ -76,7 +168,7 @@
force = true;
text = ''
[filechooser]
cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
cmd=${upkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
default_dir=$HOME
env=TERMCMD='kitty --title filechooser'
open_mode=suggested