#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

48
flake.lock generated
View file

@ -145,7 +145,7 @@
"inputs": { "inputs": {
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
], ],
"nixpkgs-unstable": [ "nixpkgs-unstable": [
"nixpkgs-unstable" "nixpkgs-unstable"
@ -156,11 +156,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770914135, "lastModified": 1770984934,
"narHash": "sha256-gAOwv1il9GUxsS7XGF612Ftm9+cMvd1QOINwJlWpCnQ=", "narHash": "sha256-5+/r1CFqmmzUIqZNjrGUjGgF4BxDkQ2NUrKkCsBBE9s=",
"owner": "emilelcb", "owner": "emilelcb",
"repo": "Cerulean", "repo": "Cerulean",
"rev": "b151f45dfbdb0849d3c24940af946f11652dd8bf", "rev": "3ba385ee25cc02c91fe4c245a734d59c54a1b1df",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -455,7 +455,7 @@
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
] ]
}, },
"locked": { "locked": {
@ -1224,13 +1224,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-staging": {
"locked": { "locked": {
"lastModified": 1770914792, "lastModified": 1770984692,
"narHash": "sha256-QpCRgIbupASO9adsg2kFNNUnOIQq0vJ9g6HCxlOA7v8=", "narHash": "sha256-n6HUgG2+cvLcQkZEgXu14qgl/SrKC4EZerQXod0HGDg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3b285f04c85ceacf7a53cfa21b2f5cb60a2d06e2", "rev": "e7b82c0fddf16a5e3fee29bbd8e0c8c67158176d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1240,13 +1240,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_10": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1770562336, "lastModified": 1770841267,
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f", "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1256,7 +1256,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_11": { "nixpkgs_10": {
"locked": { "locked": {
"lastModified": 1770197578, "lastModified": 1770197578,
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
@ -1272,7 +1272,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_12": { "nixpkgs_11": {
"locked": { "locked": {
"lastModified": 1769461804, "lastModified": 1769461804,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
@ -1423,15 +1423,15 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1770911021, "lastModified": 1770975056,
"narHash": "sha256-8FcXBu0CjeeZeq3uW2h/c5AV+hqELuyPiHsUogOSmZM=", "narHash": "sha256-ZXTz/P3zUbbM6lNXzt91u8EwfNqhXpYMu8+wvFZqQHE=",
"owner": "emilelcb", "owner": "cry128",
"repo": "nt", "repo": "nt",
"rev": "471e1617e8cc0bc749712a7a6af2b2e9f988ffbf", "rev": "f42dcdd49a7921a7f433512e83d5f93696632412",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "emilelcb", "owner": "cry128",
"repo": "nt", "repo": "nt",
"type": "github" "type": "github"
} }
@ -1489,7 +1489,7 @@
"nix-alien": "nix-alien", "nix-alien": "nix-alien",
"nixcats": "nixcats", "nixcats": "nixcats",
"nixcord": "nixcord", "nixcord": "nixcord",
"nixpkgs": "nixpkgs_10", "nixpkgs-staging": "nixpkgs-staging",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"sddm-silent": "sddm-silent", "sddm-silent": "sddm-silent",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
@ -1538,7 +1538,7 @@
"sddm-silent": { "sddm-silent": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
] ]
}, },
"locked": { "locked": {
@ -1557,7 +1557,7 @@
}, },
"spicetify-nix": { "spicetify-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_11", "nixpkgs": "nixpkgs_10",
"systems": "systems_5" "systems": "systems_5"
}, },
"locked": { "locked": {
@ -1766,7 +1766,7 @@
"zen": { "zen": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_12" "nixpkgs": "nixpkgs_11"
}, },
"locked": { "locked": {
"lastModified": 1770910552, "lastModified": 1770910552,

View file

@ -5,19 +5,19 @@
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
# WARNING: don't remove duplicate!! (cry64 will fix) # WARNING: don't remove duplicate!! (cry64 will fix)
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/staging-next"; nixpkgs-staging.url = "github:NixOS/nixpkgs/staging-next";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
cerulean = { cerulean = {
url = "github:emilelcb/Cerulean"; url = "github:emilelcb/Cerulean";
inputs = { inputs = {
systems.follows = "systems"; systems.follows = "systems";
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs-unstable";
nixpkgs-unstable.follows = "nixpkgs-unstable"; nixpkgs-unstable.follows = "nixpkgs-unstable";
}; };
}; };
@ -51,7 +51,7 @@
# temp theme until i bother creating my own </3 # temp theme until i bother creating my own </3
sddm-silent = { sddm-silent = {
url = "github:uiriansan/SilentSDDM"; url = "github:uiriansan/SilentSDDM";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
}; };
@ -59,34 +59,6 @@
extra-experimental-features = "pipe-operators"; extra-experimental-features = "pipe-operators";
}; };
outputs = {cerulean, ...} @ inputs: outputs = inputs:
cerulean.mkNexus ./. (self: { import ./snow.nix inputs;
nexus = {
overlays = with inputs; [
cachyos.overlays.pinned
millennium.overlays.default
(import ./overlays.nix)
];
specialArgs = {inherit inputs;};
extraPkgConfig = {
config.allowUnfree = true;
};
extraModules = with inputs; [
home-manager.nixosModules.home-manager
];
nodes = {
nixarawrui = {
system = "x86_64-linux";
extraModules = with inputs; [
sddm-silent.nixosModules.default
];
};
};
};
});
} }

View file

@ -2,9 +2,9 @@
# trans <3 # trans <3
{ {
inputs, inputs,
pkgs,
upkgs, upkgs,
root, root,
system,
... ...
}: { }: {
imports = [ imports = [
@ -62,10 +62,10 @@
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.file.".mozilla/native-messaging-hosts/tridactyl.json".source = "${pkgs.tridactyl-native}/lib/mozilla/native-messaging-hosts/tridactyl.json"; home.file.".mozilla/native-messaging-hosts/tridactyl.json".source = "${upkgs.tridactyl-native}/lib/mozilla/native-messaging-hosts/tridactyl.json";
# some packages are enabled from their own module in ./modules # some packages are enabled from their own module in ./modules
home.packages = with pkgs; [ home.packages = with upkgs; [
gcr # provides org.gnome.keyring.SystemPrompter gcr # provides org.gnome.keyring.SystemPrompter
dix # nix diff dix # nix diff
@ -266,7 +266,7 @@
kitty = { kitty = {
enable = true; enable = true;
package = pkgs.kitty; package = upkgs.kitty;
font = { font = {
name = "DepartureMono Nerd Font Mono"; name = "DepartureMono Nerd Font Mono";
@ -289,7 +289,7 @@
zen-browser = { zen-browser = {
enable = true; enable = true;
package = inputs.zen.packages."${pkgs.stdenv.hostPlatform.system}".twilight; package = inputs.zen.packages.${system}.twilight;
}; };
mpv = { mpv = {

View file

@ -1,10 +1,14 @@
{ config, inputs, lib, pkgs, ... }:
{ {
home.packages = with pkgs; [ inputs,
(inputs.awww.packages.${pkgs.stdenv.hostPlatform.system}.awww.overrideAttrs (old: { upkgs,
cargoBuildFlags = [ "--features=avif" ]; system,
buildInputs = (old.buildInputs or []) ++ [ pkgs.dav1d ]; ...
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkgs.pkg-config ]; }: {
home.packages = [
(inputs.awww.packages.${system}.awww.overrideAttrs (old: {
cargoBuildFlags = ["--features=avif"];
buildInputs = (old.buildInputs or []) ++ [upkgs.dav1d];
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [upkgs.pkg-config];
})) }))
]; ];
} }

View file

@ -1,8 +1,4 @@
{ config, inputs, pkgs, ... }: {...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = true;
@ -16,17 +12,17 @@ in
general = { general = {
disable_loading_bar = true; disable_loading_bar = true;
hide_cursor = true; hide_cursor = true;
immediate_render = true; immediate_render = true;
}; };
background = [ background = [
{ {
monitor = ""; monitor = "";
path = "screenshot"; path = "screenshot";
blur_passes = 3; blur_passes = 3;
blur_size = 4; blur_size = 4;
} }
]; ];
}; };
}; };
@ -38,4 +34,3 @@ in
source = ./hypr; source = ./hypr;
}; };
} }

View file

@ -1,8 +1,4 @@
{ config, inputs, pkgs, ... }: {...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
programs.rofi = { programs.rofi = {
enable = true; enable = true;

View file

@ -1,102 +1,98 @@
{ config, inputs, lib, pkgs, ... }: {upkgs, ...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
programs.waybar = { programs.waybar = {
enable = true; enable = true;
settings = { settings = {
mainBar = { mainBar = {
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 20; height = 20;
modules-left = [ "hyprland/workspaces" "wlr/taskbar" "custom/media" ]; modules-left = ["hyprland/workspaces" "wlr/taskbar" "custom/media"];
modules-center = [ "clock" ]; modules-center = ["clock"];
modules-right = [ "cpu" "memory" "network" "pulseaudio" "privacy" "tray" ]; modules-right = ["cpu" "memory" "network" "pulseaudio" "privacy" "tray"];
# left # left
"hyprland/workspaces" = { "hyprland/workspaces" = {
format = "{id}"; format = "{id}";
}; };
"wlr/taskbar" = { "wlr/taskbar" = {
format = "{icon}"; format = "{icon}";
icon-size = 12; icon-size = 12;
}; };
"custom/media" = { "custom/media" = {
exec = "auroramedia"; exec = "auroramedia";
return-type = "json"; return-type = "json";
escape = true; escape = true;
restart-interval = 1; restart-interval = 1;
}; };
# center # center
"clock" = { "clock" = {
format = "{:%Y %b %a %d %H:%M:%S}"; format = "{:%Y %b %a %d %H:%M:%S}";
interval = 1; interval = 1;
tooltip = false; tooltip = false;
}; };
# right # right
"cpu" = { "cpu" = {
format = " {usage}%"; format = " {usage}%";
interval = 1; interval = 1;
}; };
"memory" = { "memory" = {
format = " {used:0.1f} / {total:0.1f} GiB"; format = " {used:0.1f} / {total:0.1f} GiB";
interval = 1; interval = 1;
}; };
"network" = { "network" = {
format = "{bandwidthUpBytes} {bandwidthDownBytes} {ifname}"; format = "{bandwidthUpBytes} {bandwidthDownBytes} {ifname}";
format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes} "; format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes} ";
format-ethernet = "󰈀 {bandwidthUpBytes} {bandwidthDownBytes} "; format-ethernet = "󰈀 {bandwidthUpBytes} {bandwidthDownBytes} ";
format-disconnected = "no internet ~ rawr! ~ x3"; # empty format hides module format-disconnected = "no internet ~ rawr! ~ x3"; # empty format hides module
interval = 1; interval = 1;
max-length = 32; max-length = 32;
}; };
"pulseaudio" = { "pulseaudio" = {
format = "{icon} {volume}%"; format = "{icon} {volume}%";
format-muted = " {volume}%"; format-muted = " {volume}%";
format-icons = { format-icons = {
default = [ default = [
"" ""
"" ""
"" ""
]; ];
}; };
"scroll-step" = 5; "scroll-step" = 5;
}; };
"privacy" = { "privacy" = {
icon-size = 12; icon-size = 12;
icon-spacing = 5; icon-spacing = 5;
transition-duration = 200; transition-duration = 200;
modules = [ modules = [
{ {
type = "screenshare"; type = "screenshare";
tooltip = true; tooltip = true;
tooltip-icon-size = 12; tooltip-icon-size = 12;
} }
{ {
type = "audio-in"; type = "audio-in";
tooltip = true; tooltip = true;
tooltip-icon-size = 12; tooltip-icon-size = 12;
} }
]; ];
}; };
"tray" = { "tray" = {
icon-size = 12; icon-size = 12;
spacing = 10; spacing = 10;
# fixes spotify not showing up when "close button should minimize the Spotify window" is false # fixes spotify not showing up when "close button should minimize the Spotify window" is false
show-passive-items = true; show-passive-items = true;
}; };
# i only enable this for debugging of window rules lol # i only enable this for debugging of window rules lol
"hyprland/window" = { "hyprland/window" = {
format = "{class} | {title}"; format = "{class} | {title}";
}; };
}; };
}; };
style = pkgs.writeTextFile { style = upkgs.writeTextFile {
name = "waybar-style.css"; name = "waybar-style.css";
text = builtins.readFile ./style.css; text = builtins.readFile ./style.css;
}; };

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,
inputs.iamb.packages."${stdenv.hostPlatform.system}".default system,
...
}: {
home.packages = [
inputs.iamb.packages.${system}.default
]; ];
xdg.configFile."iamb/config.toml" = { xdg.configFile."iamb/config.toml" = {

View file

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

View file

@ -1,5 +1,4 @@
{ config, inputs, lib, pkgs, ... }: {inputs, ...}: {
{
imports = [ imports = [
inputs.nixcord.homeModules.nixcord inputs.nixcord.homeModules.nixcord
]; ];
@ -20,125 +19,125 @@
]; ];
plugins = { plugins = {
anonymiseFileNames = { anonymiseFileNames = {
enable = true; enable = true;
anonymiseByDefault = true; anonymiseByDefault = true;
method = 0; method = 0;
randomisedLength = 16; randomisedLength = 16;
}; };
betterSessions = { betterSessions = {
backgroundCheck = true; backgroundCheck = true;
checkInterval = 1; checkInterval = 1;
}; };
biggerStreamPreview.enable = true; biggerStreamPreview.enable = true;
callTimer.enable = true; callTimer.enable = true;
fixYoutubeEmbeds.enable = true; fixYoutubeEmbeds.enable = true;
fixSpotifyEmbeds.enable = true; fixSpotifyEmbeds.enable = true;
tidalEmbeds.enable = true; tidalEmbeds.enable = true;
youtubeAdblock.enable = true; youtubeAdblock.enable = true;
followVoiceUser.enable = true; followVoiceUser.enable = true;
friendsSince.enable = true; friendsSince.enable = true;
ircColors = { ircColors = {
enable = true; enable = true;
lightness = 80; lightness = 80;
memberListColors = true; memberListColors = true;
applyColorOnlyInDms = false; applyColorOnlyInDms = false;
applyColorOnlyToUsersWithoutColor = false; applyColorOnlyToUsersWithoutColor = false;
}; };
messageLogger = { messageLogger = {
enable = true; enable = true;
showEditDiffs = true; showEditDiffs = true;
separatedDiffs = false; separatedDiffs = false;
}; };
fakeNitro.enable = true; fakeNitro.enable = true;
ghosted.enable = true; ghosted.enable = true;
noF1.enable = true; noF1.enable = true;
noMaskedUrlPaste.enable = true; noMaskedUrlPaste.enable = true;
messageLatency = { messageLatency = {
enable = false; enable = false;
latency = -1; latency = -1;
showMillis = true; showMillis = true;
}; };
openInApp.enable = true; openInApp.enable = true;
crashHandler.enable = true; crashHandler.enable = true;
disableCallIdle.enable = true; disableCallIdle.enable = true;
experiments.enable = true; experiments.enable = true;
expressionCloner.enable = true; expressionCloner.enable = true;
favoriteGifSearch.enable = true; favoriteGifSearch.enable = true;
fixImagesQuality.enable = true; fixImagesQuality.enable = true;
forceOwnerCrown.enable = true; forceOwnerCrown.enable = true;
forwardAnywhere.enable = true; forwardAnywhere.enable = true;
spotifyCrack.enable = true; spotifyCrack.enable = true;
spotifyShareCommands.enable = true; spotifyShareCommands.enable = true;
spotifyControls.enable = true; spotifyControls.enable = true;
fullUserInChatbox.enable = true; fullUserInChatbox.enable = true;
gifPaste.enable = true; gifPaste.enable = true;
ignoreActivities = { ignoreActivities = {
enable = true; enable = true;
ignorePlaying = true; ignorePlaying = true;
ignoreStreaming = true; ignoreStreaming = true;
ignoreListening = true; ignoreListening = true;
ignoreWatching = true; ignoreWatching = true;
ignoreCompeting = true; ignoreCompeting = true;
}; };
imageLink.enable = true; imageLink.enable = true;
imageZoom.enable = true; imageZoom.enable = true;
memberCount.enable = true; memberCount.enable = true;
noDevtoolsWarning.enable = true; noDevtoolsWarning.enable = true;
noUnblockToJump.enable = true; noUnblockToJump.enable = true;
pauseInvitesForever.enable = true; pauseInvitesForever.enable = true;
permissionsViewer.enable = true; permissionsViewer.enable = true;
pictureInPicture = { pictureInPicture = {
enable = true; enable = true;
loop = true; loop = true;
}; };
platformIndicators.enable = true; platformIndicators.enable = true;
previewMessage.enable = true; previewMessage.enable = true;
relationshipNotifier.enable = true; relationshipNotifier.enable = true;
revealAllSpoilers.enable = true; revealAllSpoilers.enable = true;
serverInfo.enable = true; serverInfo.enable = true;
serverListIndicators.enable = true; serverListIndicators.enable = true;
showHiddenChannels.enable = true; showHiddenChannels.enable = true;
showHiddenThings.enable = true; showHiddenThings.enable = true;
showTimeoutDuration = { showTimeoutDuration = {
enable = true; enable = true;
displayStyle = "tooltip"; displayStyle = "tooltip";
}; };
silentTyping = { silentTyping = {
enable = true; enable = true;
enabledGlobally = false; enabledGlobally = false;
}; };
startupTimings.enable = true; startupTimings.enable = true;
typingIndicator.enable = true; typingIndicator.enable = true;
unlockedAvatarZoom = { unlockedAvatarZoom = {
enable = true; enable = true;
zoomMultiplier = 4.0; zoomMultiplier = 4.0;
}; };
userMessagesPronouns.enable = true; userMessagesPronouns.enable = true;
validUser.enable = true; validUser.enable = true;
validReply.enable = true; validReply.enable = true;
viewIcons = { viewIcons = {
enable = true; enable = true;
format = "webp"; format = "webp";
imgSize = "4096"; imgSize = "4096";
}; };
voiceChatDoubleClick.enable = true; voiceChatDoubleClick.enable = true;
voiceDownload.enable = true; voiceDownload.enable = true;
voiceMessages = { voiceMessages = {
enable = true; enable = true;
noiseSuppression = false; noiseSuppression = false;
echoCancellation = true; echoCancellation = true;
}; };
volumeBooster.enable = true; volumeBooster.enable = true;
webKeybinds.enable = true; webKeybinds.enable = true;
webScreenShareFixes.enable = true; webScreenShareFixes.enable = true;
whoReacted.enable = true; whoReacted.enable = true;
whosWatching.enable = true; whosWatching.enable = true;
quickReply.enable = true; quickReply.enable = true;
questCompleter.enable = true; questCompleter.enable = true;
shikiCodeblocks = { shikiCodeblocks = {
enable = true; enable = true;
useDevIcon = "COLOR"; useDevIcon = "COLOR";
theme = "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/kanagawa-wave.json"; 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 inputs,
spicetifyPkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; upkgs,
system,
...
}: let
spicetifyPkgs = inputs.spicetify-nix.legacyPackages.${system};
in { in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ]; imports = [inputs.spicetify-nix.homeManagerModules.default];
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
@ -10,15 +14,17 @@ in {
adblock adblock
shuffle shuffle
keyboardShortcut keyboardShortcut
({ {
src = (pkgs.fetchFromGitHub { src =
owner = "Spikerko"; (upkgs.fetchFromGitHub {
repo = "spicy-lyrics"; owner = "Spikerko";
rev = "568c83326aa6aba6ded28c95df6fcfb25cab3648"; repo = "spicy-lyrics";
hash = "sha256-lej93EDzGkmyrg5YMdPSqzrxlIfKsfaDBZosTvxoTNw="; rev = "568c83326aa6aba6ded28c95df6fcfb25cab3648";
}) + /builds; hash = "sha256-lej93EDzGkmyrg5YMdPSqzrxlIfKsfaDBZosTvxoTNw=";
name = "spicy-lyrics.mjs"; })
}) + /builds;
name = "spicy-lyrics.mjs";
}
]; ];
theme = spicetifyPkgs.themes.comfy; theme = spicetifyPkgs.themes.comfy;
colorScheme = "Sakura"; colorScheme = "Sakura";

View file

@ -1,8 +1,8 @@
{ config, inputs, lib, pkgs, ... }: {upkgs, ...}: {
{
# optional dependencies can be found here: # optional dependencies can be found here:
# https://yazi-rs.github.io/docs/installation/ # https://yazi-rs.github.io/docs/installation/
home.packages = with pkgs; [ # dependencies home.packages = with upkgs; [
# dependencies
ripdrag ripdrag
]; ];
@ -22,9 +22,15 @@
keymap = { keymap = {
mgr.prepend_keymap = [ mgr.prepend_keymap = [
# drag and drop!! # 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 # 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 = { theme = {
icon = { icon = {
dirs = [ dirs = [
{ name = ".config"; text = ""; fg = "red"; } {
{ name = ".git"; text = ""; fg = "blue"; } name = ".config";
{ name = ".github"; text = ""; fg = "blue"; } text = "";
{ name = ".npm"; text = ""; fg = "blue"; } fg = "red";
{ name = "Desktop"; text = ""; fg = "magenta"; } }
{ name = "Documents"; text = ""; fg = "magenta"; } {
{ name = "Downloads"; text = ""; fg = "red"; } name = ".git";
{ name = "Library"; text = ""; fg = "magenta"; } text = "";
{ name = "Movies"; text = ""; fg = "magenta"; } fg = "blue";
{ name = "Music"; text = ""; fg = "magenta"; } }
{ name = "Pictures"; text = ""; fg = "magenta"; } {
{ name = "Public"; text = ""; fg = "magenta"; } name = ".github";
{ name = "Videos"; text = ""; fg = "red"; } 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 = [ conds = [
# special files # special files
{ "if" = "orphan"; text = ""; } {
{ "if" = "link"; text = ""; } "if" = "orphan";
{ "if" = "block"; text = ""; } text = "";
{ "if" = "char"; text = ""; } }
{ "if" = "fifo"; text = ""; } {
{ "if" = "sock"; text = ""; } "if" = "link";
{ "if" = "sticky"; text = ""; } text = "";
{ "if" = "dummy"; text = ""; } }
{
"if" = "block";
text = "";
}
{
"if" = "char";
text = "";
}
{
"if" = "fifo";
text = "";
}
{
"if" = "sock";
text = "";
}
{
"if" = "sticky";
text = "";
}
{
"if" = "dummy";
text = "";
}
# fallback # fallback
{ "if" = "dir"; text = ""; fg = "blue"; } {
{ "if" = "exec"; text = ""; } "if" = "dir";
{ "if" = "!dir"; text = ""; } text = "";
]; fg = "blue";
}
{
"if" = "exec";
text = "";
}
{
"if" = "!dir";
text = "";
}
];
}; };
}; };
}; };
@ -76,7 +168,7 @@
force = true; force = true;
text = '' text = ''
[filechooser] [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 default_dir=$HOME
env=TERMCMD='kitty --title filechooser' env=TERMCMD='kitty --title filechooser'
open_mode=suggested open_mode=suggested

View file

@ -1,9 +1,5 @@
{ config, inputs, pkgs, ... }: {upkgs, ...}: {
let home.packages = with upkgs; [
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
libnotify libnotify
]; ];
@ -12,21 +8,21 @@ in
settings = { settings = {
global = { global = {
monitor = "DP-3"; # second monitor monitor = "DP-3"; # second monitor
origin = "top-left"; origin = "top-left";
layer = "top"; # above windows, below fullscreen layer = "top"; # above windows, below fullscreen
offset = "(16, 24)"; offset = "(16, 24)";
padding = 4; padding = 4;
gap_size = 4; gap_size = 4;
frame_width = 2; frame_width = 2;
font = "DepartureMono Nerd Font 8"; font = "DepartureMono Nerd Font 8";
corner_radius = 12; corner_radius = 12;
icon_corner_radius = 12; icon_corner_radius = 12;
progress_bar = true; progress_bar = true;
progress_bar_height = 16; progress_bar_height = 16;
}; };
}; };
}; };

View file

@ -1,20 +1,19 @@
{ config, inputs, lib, pkgs, ... }: {upkgs, ...}: {
{ home.packages = with upkgs; [
home.packages = with pkgs; [
keepassxc keepassxc
]; ];
systemd.user.services.keepassxc = { systemd.user.services.keepassxc = {
Unit = { Unit = {
Description = "KeePassXC password manager"; Description = "KeePassXC password manager";
After = [ "graphical-session-pre.target" ]; After = ["graphical-session-pre.target"];
PartOf = [ "graphical-session.target" ]; PartOf = ["graphical-session.target"];
}; };
Service = { Service = {
Description = "${pkgs.keepassxc}/bin/keepassxc"; Description = "${upkgs.keepassxc}/bin/keepassxc";
Restart = "on-failure"; Restart = "on-failure";
}; };
Install.WantedBy = [ "graphical-session.target" ]; Install.WantedBy = ["graphical-session.target"];
}; };
xdg.configFile."keepassxc/keepassxc.ini" = { xdg.configFile."keepassxc/keepassxc.ini" = {

View file

@ -1,7 +1,11 @@
{ inputs, lib, pkgs, config, osConfig, ... }: {
{ config,
osConfig,
...
}: {
# writes ./client.conf to ~/.config/pulse/client.conf # writes ./client.conf to ~/.config/pulse/client.conf
xdg.configFile."pulse/client.conf".text = builtins.replaceStrings xdg.configFile."pulse/client.conf".text =
builtins.replaceStrings
["{uid}"] ["{uid}"]
# make sure ur user id is set!!! # make sure ur user id is set!!!
["${toString osConfig.users.users.${config.home.username}.uid}"] ["${toString osConfig.users.users.${config.home.username}.uid}"]

View file

@ -1,5 +1,4 @@
{ inputs, lib, pkgs, config, ... }: {...}: {
{
# writes ./config to ~/.config/wireplumber # writes ./config to ~/.config/wireplumber
xdg.configFile."wireplumber" = { xdg.configFile."wireplumber" = {
recursive = true; recursive = true;

View file

@ -1,6 +1,5 @@
{ inputs, lib, pkgs, ... }: {upkgs, ...}: {
{ home.packages = with upkgs; [
home.packages = with pkgs; [
fastfetch # displays system info! x3 fastfetch # displays system info! x3
]; ];

View file

@ -1,5 +1,4 @@
{ inputs, lib, pkgs, ... }: {...}: {
{
programs = { programs = {
zoxide = { zoxide = {
enable = true; enable = true;
@ -12,14 +11,14 @@
hyfetch = { hyfetch = {
enable = true; enable = true;
settings = { settings = {
preset = "genderfae"; preset = "genderfae";
mode = "rgb"; mode = "rgb";
backend = "fastfetch"; backend = "fastfetch";
color_align = { color_align = {
mode = "vertical"; mode = "vertical";
}; };
auto_detect_light_dark = true; auto_detect_light_dark = true;
pride_month_disable = false; pride_month_disable = false;
}; };
}; };
}; };

View file

@ -1,8 +1,4 @@
{ inputs, lib, pkgs, ... }: {...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
# the theme file template for zellij is in wallust # the theme file template for zellij is in wallust
programs.zellij = { programs.zellij = {
@ -10,8 +6,8 @@ in
enableZshIntegration = false; enableZshIntegration = false;
extraConfig = '' extraConfig = ''
theme "test" theme "test"
show_startup_tips false show_startup_tips false
''; '';
}; };
} }

View file

@ -1,8 +1,4 @@
{ inputs, lib, pkgs, ... }: {upkgs, ...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
programs.zsh = { programs.zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
@ -12,22 +8,22 @@ in
plugins = [ plugins = [
{ {
name = "vi-mode"; name = "vi-mode";
src = pkgs.zsh-vi-mode; src = upkgs.zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
} }
]; ];
initContent = '' initContent = ''
# yazi wrapper!!! # yazi wrapper!!!
function yazi() { function yazi() {
local tmp="$(mktemp -p "/run/user/$UID" -t "yazi-cwd.XXXXXX")" cwd local tmp="$(mktemp -p "/run/user/$UID" -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp" command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d ''' cwd < "$tmp" IFS= read -r -d ''' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd" [ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp" rm -f -- "$tmp"
} }
hyfetch # oh i'm so gay!! :3 hyfetch # oh i'm so gay!! :3
''; '';
shellAliases = { shellAliases = {
@ -87,4 +83,3 @@ in
theme = "agnoster"; theme = "agnoster";
}; };
} }

View file

@ -1,20 +1,16 @@
{ config, inputs, lib, pkgs, ... }: {upkgs, ...}: {
let home.packages = with upkgs; [
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
hellwal hellwal
]; ];
# writes ./wallust.toml to ~/.config/hellwal/wallust.toml # writes ./wallust.toml to ~/.config/hellwal/wallust.toml
#xdg.configFile."wallust/wallust.toml" = { #xdg.configFile."wallust/wallust.toml" = {
#source = ./wallust.toml; #source = ./wallust.toml;
#}; #};
# writes ./templates to ~/.config/hellwal/templates # writes ./templates to ~/.config/hellwal/templates
#xdg.configFile."hellwal/templates" = { #xdg.configFile."hellwal/templates" = {
#recursive = true; #recursive = true;
#source = ./templates; #source = ./templates;
#}; #};
} }

View file

@ -1,9 +1,5 @@
{ config, inputs, lib, pkgs, ... }: {upkgs, ...}: {
let home.packages = with upkgs; [
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
home.packages = with pkgs; [
wallust wallust
]; ];

View file

@ -1,9 +1,4 @@
{ config, inputs, pkgs, ... }: {...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
hyprland-git = inputs.hyprland-git.packages.${pkgs.stdenv.hostPlatform.system};
in
{
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = null; package = null;
@ -37,44 +32,44 @@ in
# startup programs # startup programs
exec-once = [ exec-once = [
"waybar" "waybar"
"awww-daemon" "awww-daemon"
"wl-paste --type text --watch cliphist store" "wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store" "wl-paste --type image --watch cliphist store"
"wl-clip-persist --clipboard regular" "wl-clip-persist --clipboard regular"
"playerctld daemon" "playerctld daemon"
# swaps around the 3rd and 4th workspace because they always start # swaps around the 3rd and 4th workspace because they always start
# in the wrong order # in the wrong order
"hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 1" "hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 4 && hyprctl dispatch workspace 5 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 1"
]; ];
# monitor configuration # monitor configuration
monitor = [ monitor = [
# note: display stream compression pending for open source # note: display stream compression pending for open source
# amd gpu driver and my monitor (VG279QM) only supports DP 1.2 # amd gpu driver and my monitor (VG279QM) only supports DP 1.2
# so no >240hz atm # so no >240hz atm
"DP-2, 1920x1080@239.76, 0x0, 1" # main monitor "DP-2, 1920x1080@239.76, 0x0, 1" # main monitor
"DP-3, 1920x1080@143.61, 1920x0, 1" # second monitor "DP-3, 1920x1080@143.61, 1920x0, 1" # second monitor
"HDMI-A-2, 2560x1440@59.95, 3840x0, 1" # third monitor (drawing tablet) "HDMI-A-2, 2560x1440@59.95, 3840x0, 1" # third monitor (drawing tablet)
"HDMI-A-1, 1920x1080@60.00, -1920x0, 1" # tv "HDMI-A-1, 1920x1080@60.00, -1920x0, 1" # tv
]; ];
general = { general = {
gaps_in = 5; gaps_in = 5;
gaps_out = "0, 10, 10, 10"; gaps_out = "0, 10, 10, 10";
border_size = 2; border_size = 2;
layout = "dwindle"; layout = "dwindle";
}; };
plugin = { plugin = {
# options at https://github.com/hyprwm/hyprland-plugins/tree/main/hyprscrolling # options at https://github.com/hyprwm/hyprland-plugins/tree/main/hyprscrolling
hyprscrolling = { hyprscrolling = {
fullscreen_on_one_column = false; fullscreen_on_one_column = false;
column_width = 1.0; column_width = 1.0;
}; };
}; };
dwindle = { dwindle = {
@ -82,23 +77,23 @@ in
}; };
decoration = { decoration = {
rounding = 8; rounding = 8;
active_opacity = 1.00;
inactive_opacity = 1.00;
blur = { active_opacity = 1.00;
xray = true; inactive_opacity = 1.00;
size = 6;
passes = 2; blur = {
#vibrancy = 0.3; xray = true;
special = true; size = 6;
}; passes = 2;
#vibrancy = 0.3;
special = true;
};
}; };
bezier = [ bezier = [
"workspace_curve, 0.56,0.19,0.24,0.58" "workspace_curve, 0.56,0.19,0.24,0.58"
"workspace_in_curve, 0.56,0.19,0.56,0.99" "workspace_in_curve, 0.56,0.19,0.56,0.99"
]; ];
animation = [ animation = [
@ -109,11 +104,11 @@ in
input = { input = {
repeat_rate = 50; repeat_rate = 50;
repeat_delay = 300; repeat_delay = 300;
sensitivity = 0; # 0 = no modification sensitivity = 0; # 0 = no modification
accel_profile = "flat"; accel_profile = "flat";
force_no_accel = false; # not recommended to turn on force_no_accel = false; # not recommended to turn on
}; };
cursor.no_hardware_cursors = true; cursor.no_hardware_cursors = true;
@ -125,66 +120,66 @@ in
# bindings # bindings
bind = [ bind = [
# binds for applications # binds for applications
"$mod, t, exec, $terminal" "$mod, t, exec, $terminal"
"$mod, r, exec, $browser" "$mod, r, exec, $browser"
"$mod, e, exec, $explorer" "$mod, e, exec, $explorer"
# binds for rofi # binds for rofi
"$mod, d, exec, pkill -x rofi || rofi -show drun -show-icons" "$mod, d, exec, pkill -x rofi || rofi -show drun -show-icons"
"alt, tab, exec, pkill -x rofi || rofi -modi window -show window -show-icons" "alt, tab, exec, pkill -x rofi || rofi -modi window -show window -show-icons"
"$mod, v, exec, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy" "$mod, v, exec, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy"
# screenshots # screenshots
# todo: add active monitor # todo: add active monitor
"$mod, s, exec, grim -g \"\$(slurp -d)\" - | wl-copy" # region "$mod, s, exec, grim -g \"\$(slurp -d)\" - | wl-copy" # region
"$mod+alt, s, exec, grim -g \"\$(slurp -o)\" - | wl-copy" # monitor "$mod+alt, s, exec, grim -g \"\$(slurp -o)\" - | wl-copy" # monitor
"$mod+ctrl, s, exec, grim - | wl-copy" # all monitors "$mod+ctrl, s, exec, grim - | wl-copy" # all monitors
# hyprpicker # hyprpicker
"$mod, n, exec, hyprpicker -v" "$mod, n, exec, hyprpicker -v"
# hyprlock # hyprlock
"$mod+alt, y, exec, hyprlock" "$mod+alt, y, exec, hyprlock"
# task manager # task manager
"$mod+ctrl, escape, exec, task-manager.sh" "$mod+ctrl, escape, exec, task-manager.sh"
"$mod+ctrl, grave, exec, task-manager.sh" "$mod+ctrl, grave, exec, task-manager.sh"
# media binds (more in binde below) # media binds (more in binde below)
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, playerctl play-pause" ", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next" ", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous" ", XF86AudioPrev, exec, playerctl previous"
"Shift_R, XF86AudioPlay, exec, playerctl shuffle toggle" "Shift_R, XF86AudioPlay, exec, playerctl shuffle toggle"
"Shift_R, XF86AudioNext, exec, playerctl loop track" "Shift_R, XF86AudioNext, exec, playerctl loop track"
# manage windows / session # manage windows / session
"$mod+alt, c, killactive" "$mod+alt, c, killactive"
"$mod, f, fullscreen" "$mod, f, fullscreen"
"$mod, x, togglefloating" "$mod, x, togglefloating"
"$mod, i, togglesplit" "$mod, i, togglesplit"
"$mod+Alt, Delete, exit" # exit hyprland "$mod+Alt, Delete, exit" # exit hyprland
# move focus # move focus
"$mod, h, movefocus, l" "$mod, h, movefocus, l"
"$mod, j, movefocus, d" "$mod, j, movefocus, d"
"$mod, k, movefocus, u" "$mod, k, movefocus, u"
"$mod, l, movefocus, r" "$mod, l, movefocus, r"
# move window # move window
"$mod+alt, h, movewindow, l" "$mod+alt, h, movewindow, l"
"$mod+alt, j, movewindow, d" "$mod+alt, j, movewindow, d"
"$mod+alt, k, movewindow, u" "$mod+alt, k, movewindow, u"
"$mod+alt, l, movewindow, r" "$mod+alt, l, movewindow, r"
# swap window # swap window
"$mod+ctrl, h, swapwindow, l" "$mod+ctrl, h, swapwindow, l"
"$mod+ctrl, j, swapwindow, d" "$mod+ctrl, j, swapwindow, d"
"$mod+ctrl, k, swapwindow, u" "$mod+ctrl, k, swapwindow, u"
"$mod+ctrl, l, swapwindow, r" "$mod+ctrl, l, swapwindow, r"
# move column (hyprscrolling) # move column (hyprscrolling)
"$mod, period, layoutmsg, move +col" "$mod, period, layoutmsg, move +col"
"$mod, comma, layoutmsg, move -col" "$mod, comma, layoutmsg, move -col"
# focus monitor # focus monitor
#"$mod+Ctrl+Tab, 1, focusmonitor, DP-2" #"$mod+Ctrl+Tab, 1, focusmonitor, DP-2"
@ -192,114 +187,114 @@ in
#"$mod+Ctrl+Tab, 3, focusmonitor, HDMI-A-2" #"$mod+Ctrl+Tab, 3, focusmonitor, HDMI-A-2"
#"$mod+Ctrl+Tab, 4, focusmonitor, HDMI-A-1" #"$mod+Ctrl+Tab, 4, focusmonitor, HDMI-A-1"
# move workspace to monitor # move workspace to monitor
#"$mod+Tab, 1, movecurrentworkspacetomonitor, DP-2" #"$mod+Tab, 1, movecurrentworkspacetomonitor, DP-2"
#"$mod+Tab, 2, movecurrentworkspacetomonitor, DP-3" #"$mod+Tab, 2, movecurrentworkspacetomonitor, DP-3"
#"$mod+Tab, 3, movecurrentworkspacetomonitor, HDMI-A-2" #"$mod+Tab, 3, movecurrentworkspacetomonitor, HDMI-A-2"
#"$mod+Tab, 4, movecurrentworkspacetomonitor, HDMI-A-1" #"$mod+Tab, 4, movecurrentworkspacetomonitor, HDMI-A-1"
# special workspace # special workspace
"$mod, escape, togglespecialworkspace" "$mod, escape, togglespecialworkspace"
"$mod+shift, escape, movetoworkspace, special" "$mod+shift, escape, movetoworkspace, special"
"$mod+alt, escape, movetoworkspacesilent, special" "$mod+alt, escape, movetoworkspacesilent, special"
"$mod, grave, togglespecialworkspace" "$mod, grave, togglespecialworkspace"
"$mod+shift, grave, movetoworkspace, special" "$mod+shift, grave, movetoworkspace, special"
"$mod+alt, grave, movetoworkspacesilent, special" "$mod+alt, grave, movetoworkspacesilent, special"
# switch workspaces # switch workspaces
"$mod, 1, workspace, 1" "$mod, 1, workspace, 1"
"$mod, 2, workspace, 2" "$mod, 2, workspace, 2"
"$mod, 3, workspace, 3" "$mod, 3, workspace, 3"
"$mod, 4, workspace, 4" "$mod, 4, workspace, 4"
"$mod, 5, workspace, 5" "$mod, 5, workspace, 5"
"$mod, 6, workspace, 6" "$mod, 6, workspace, 6"
"$mod, 7, workspace, 7" "$mod, 7, workspace, 7"
"$mod, 8, workspace, 8" "$mod, 8, workspace, 8"
"$mod, 9, workspace, 9" "$mod, 9, workspace, 9"
"$mod, 0, workspace, 10" "$mod, 0, workspace, 10"
"$mod, minus, workspace, 11" "$mod, minus, workspace, 11"
"$mod, equal, workspace, 12" "$mod, equal, workspace, 12"
# move focused window to workspace # move focused window to workspace
"$mod+shift, 1, movetoworkspace, 1" "$mod+shift, 1, movetoworkspace, 1"
"$mod+shift, 2, movetoworkspace, 2" "$mod+shift, 2, movetoworkspace, 2"
"$mod+shift, 3, movetoworkspace, 3" "$mod+shift, 3, movetoworkspace, 3"
"$mod+shift, 4, movetoworkspace, 4" "$mod+shift, 4, movetoworkspace, 4"
"$mod+shift, 5, movetoworkspace, 5" "$mod+shift, 5, movetoworkspace, 5"
"$mod+shift, 6, movetoworkspace, 6" "$mod+shift, 6, movetoworkspace, 6"
"$mod+shift, 7, movetoworkspace, 7" "$mod+shift, 7, movetoworkspace, 7"
"$mod+shift, 8, movetoworkspace, 8" "$mod+shift, 8, movetoworkspace, 8"
"$mod+shift, 9, movetoworkspace, 9" "$mod+shift, 9, movetoworkspace, 9"
"$mod+shift, 0, movetoworkspace, 10" "$mod+shift, 0, movetoworkspace, 10"
"$mod+shift, minus, movetoworkspace, 11" "$mod+shift, minus, movetoworkspace, 11"
"$mod+shift, equal, movetoworkspace, 12" "$mod+shift, equal, movetoworkspace, 12"
# move focused window to workspace silently # move focused window to workspace silently
"$mod+alt, 1, movetoworkspacesilent, 1" "$mod+alt, 1, movetoworkspacesilent, 1"
"$mod+alt, 2, movetoworkspacesilent, 2" "$mod+alt, 2, movetoworkspacesilent, 2"
"$mod+alt, 3, movetoworkspacesilent, 3" "$mod+alt, 3, movetoworkspacesilent, 3"
"$mod+alt, 4, movetoworkspacesilent, 4" "$mod+alt, 4, movetoworkspacesilent, 4"
"$mod+alt, 5, movetoworkspacesilent, 5" "$mod+alt, 5, movetoworkspacesilent, 5"
"$mod+alt, 6, movetoworkspacesilent, 6" "$mod+alt, 6, movetoworkspacesilent, 6"
"$mod+alt, 7, movetoworkspacesilent, 7" "$mod+alt, 7, movetoworkspacesilent, 7"
"$mod+alt, 8, movetoworkspacesilent, 8" "$mod+alt, 8, movetoworkspacesilent, 8"
"$mod+alt, 9, movetoworkspacesilent, 9" "$mod+alt, 9, movetoworkspacesilent, 9"
"$mod+alt, 0, movetoworkspacesilent, 10" "$mod+alt, 0, movetoworkspacesilent, 10"
"$mod+alt, minus, movetoworkspacesilent, 11" "$mod+alt, minus, movetoworkspacesilent, 11"
"$mod+alt, equal, movetoworkspacesilent, 12" "$mod+alt, equal, movetoworkspacesilent, 12"
# move current workspace to monitor # move current workspace to monitor
"$mod+shift+alt, 1, movecurrentworkspacetomonitor, DP-2" "$mod+shift+alt, 1, movecurrentworkspacetomonitor, DP-2"
"$mod+shift+alt, 2, movecurrentworkspacetomonitor, DP-3" "$mod+shift+alt, 2, movecurrentworkspacetomonitor, DP-3"
"$mod+shift+alt, 3, movecurrentworkspacetomonitor, HDMI-A-2" "$mod+shift+alt, 3, movecurrentworkspacetomonitor, HDMI-A-2"
"$mod+shift+alt, 4, movecurrentworkspacetomonitor, HDMI-A-1" "$mod+shift+alt, 4, movecurrentworkspacetomonitor, HDMI-A-1"
]; ];
# bindings for mouse # bindings for mouse
bindm = [ bindm = [
"$mod, mouse:272, movewindow" # left click "$mod, mouse:272, movewindow" # left click
"$mod, mouse:273, resizewindow" # right click "$mod, mouse:273, resizewindow" # right click
]; ];
# repeating binds, repeats when held # repeating binds, repeats when held
binde = [ binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+" ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-" ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-"
"Shift_R, XF86AudioRaiseVolume, exec, playerctl volume 0.05+" "Shift_R, XF86AudioRaiseVolume, exec, playerctl volume 0.05+"
"Shift_R, XF86AudioLowerVolume, exec, playerctl volume 0.05-" "Shift_R, XF86AudioLowerVolume, exec, playerctl volume 0.05-"
# resize window # resize window
# variable for `resizeactive` is (x, y) # variable for `resizeactive` is (x, y)
# starting at 0, 0 in the top left # starting at 0, 0 in the top left
# meaning: # meaning:
# -x = left # -x = left
# +x = right # +x = right
# -y = up # -y = up
# +y = down # +y = down
"$mod+ctrl+shift, h, resizeactive, -10 0" "$mod+ctrl+shift, h, resizeactive, -10 0"
"$mod+ctrl+shift, j, resizeactive, 0 10" "$mod+ctrl+shift, j, resizeactive, 0 10"
"$mod+ctrl+shift, k, resizeactive, 0 -10" "$mod+ctrl+shift, k, resizeactive, 0 -10"
"$mod+ctrl+shift, l, resizeactive, 10 0" "$mod+ctrl+shift, l, resizeactive, 10 0"
]; ];
layerrule = [ layerrule = [
#"blur, rofi" #"blur, rofi"
#"ignorezero, rofi" #"ignorezero, rofi"
#"blur, aurorashell" #"blur, aurorashell"
#"ignorealpha 0.7, aurorashell" #"ignorealpha 0.7, aurorashell"
"blur on, match:namespace waybar" "blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar" "ignore_alpha 0, match:namespace waybar"
]; ];
env = [ env = [
"EDITOR,auravim" "EDITOR,auravim"
"XCURSOR_THEME,Bunny (Icy) and Strawberries" "XCURSOR_THEME,Bunny (Icy) and Strawberries"
"XCURSOR_SIZE,24" "XCURSOR_SIZE,24"
"HYPRCURSOR_THEME,Bunny (Icy) and Strawberries" "HYPRCURSOR_THEME,Bunny (Icy) and Strawberries"
"HYPRCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24"
"QT_QPA_PLATFORM,wayland" "QT_QPA_PLATFORM,wayland"
]; ];
}; };
}; };

View file

@ -1,14 +1,10 @@
{ config, inputs, pkgs, upkgs, ... }: {spkgs, ...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
wayland.windowManager.river = let wayland.windowManager.river = let
layout = "rivertile"; layout = "rivertile";
in { in {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
package = upkgs.river-classic; # FIX: using upkgs version as zls is broken rn ;-; package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-;
settings = let settings = let
main = "Super"; main = "Super";
@ -22,61 +18,61 @@ in
border-width = 1; border-width = 1;
spawn = [ spawn = [
''${layout}'' ''${layout}''
"awww-daemon" "awww-daemon"
"waybar" "waybar"
]; ];
map.normal = { map.normal = {
"${main} C" = "close"; # close focused window "${main} C" = "close"; # close focused window
"${main}+Alt Delete" = "exit"; # exit river "${main}+Alt Delete" = "exit"; # exit river
# app launcher # app launcher
"${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"''; "${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"'';
"Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"''; "Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"'';
# spawn applications # spawn applications
"${main} T" = ''spawn "${terminal}"''; "${main} T" = ''spawn "${terminal}"'';
"${main} R" = ''spawn "${browser}"''; "${main} R" = ''spawn "${browser}"'';
# move focused view to top of layout stack # move focused view to top of layout stack
"${main} N" = ''zoom''; "${main} N" = ''zoom'';
# focus next/previous view # focus next/previous view
"${main} J" = "focus-view previous"; "${main} J" = "focus-view previous";
"${main} K" = "focus-view next"; "${main} K" = "focus-view next";
# move to next/previous output # move to next/previous output
"${main} H" = "focus-output previous"; "${main} H" = "focus-output previous";
"${main} L" = "focus-output next"; "${main} L" = "focus-output next";
# swap next/previous view # swap next/previous view
"${main}+Alt J" = "swap previous"; "${main}+Alt J" = "swap previous";
"${main}+Alt K" = "swap next"; "${main}+Alt K" = "swap next";
# send view to next/previous output # send view to next/previous output
# and switch to that output (wip) # and switch to that output (wip)
"${main}+Alt H" = "send-to-output previous"; "${main}+Alt H" = "send-to-output previous";
#"${main}+Alt H" = "focus-output previous"; #"${main}+Alt H" = "focus-output previous";
"${main}+Alt L" = "send-to-output next"; "${main}+Alt L" = "send-to-output next";
#"${main}+Alt L" = "focus-output next"; #"${main}+Alt L" = "focus-output next";
# move views # move views
#"${main}+Alt H" = "move left 100"; #"${main}+Alt H" = "move left 100";
#"${main}+Alt J" = "move down 100"; #"${main}+Alt J" = "move down 100";
#"${main}+Alt K" = "move up 100"; #"${main}+Alt K" = "move up 100";
#"${main}+Alt L" = "move right 100"; #"${main}+Alt L" = "move right 100";
# snap views # snap views
#"${main}+Control H" = "snap left"; #"${main}+Control H" = "snap left";
#"${main}+Control J" = "snap down"; #"${main}+Control J" = "snap down";
#"${main}+Control K" = "snap up"; #"${main}+Control K" = "snap up";
#"${main}+Control L" = "snap right"; #"${main}+Control L" = "snap right";
# resize views # resize views
#"${main}+Shift H" = "resize horizontal -100"; #"${main}+Shift H" = "resize horizontal -100";
#"${main}+Shift J" = "resize vertical -100"; #"${main}+Shift J" = "resize vertical -100";
#"${main}+Shift K" = "resize vertical 100"; #"${main}+Shift K" = "resize vertical 100";
#"${main}+Shift L" = "resize horizontal 100"; #"${main}+Shift L" = "resize horizontal 100";
}; };
}; };
}; };

View file

@ -1,8 +1,4 @@
{ config, inputs, pkgs, ... }: {config, ...}: {
let
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
config = rec { config = rec {
@ -10,43 +6,43 @@ in
terminal = "kitty"; terminal = "kitty";
# disable sway bar # disable sway bar
bars = [ ]; bars = [];
# set border colors # set border colors
#colors = { #colors = {
#focused = #focused =
startup = [ startup = [
{ command = "awww-daemon"; } {command = "awww-daemon";}
{ command = "waybar"; } {command = "waybar";}
]; ];
keybindings = let keybindings = let
main = config.wayland.windowManager.sway.config.modifier; main = config.wayland.windowManager.sway.config.modifier;
terminal = config.wayland.windowManager.sway.config.terminal; terminal = config.wayland.windowManager.sway.config.terminal;
browser = "firefox"; browser = "firefox";
in { in {
"${main}+c" = "kill"; # close focused window "${main}+c" = "kill"; # close focused window
"${main}+Alt+Delete" = "exit"; # exit sway "${main}+Alt+Delete" = "exit"; # exit sway
# open launcher # open launcher
"${main}+d" = "exec pkill -x rofi || rofi -show drun -show-icons"; "${main}+d" = "exec pkill -x rofi || rofi -show drun -show-icons";
"Alt+Tab" = "exec pkill -x rofi || rofi -modi window -show window -show-icons"; "Alt+Tab" = "exec pkill -x rofi || rofi -modi window -show window -show-icons";
"${main}+t" = "exec ${terminal}"; # open terminal "${main}+t" = "exec ${terminal}"; # open terminal
"${main}+r" = "exec ${browser}"; # open browser "${main}+r" = "exec ${browser}"; # open browser
# move focus # move focus
"${main}+h" = "focus left"; "${main}+h" = "focus left";
"${main}+j" = "focus down"; "${main}+j" = "focus down";
"${main}+k" = "focus up"; "${main}+k" = "focus up";
"${main}+l" = "focus right"; "${main}+l" = "focus right";
# move focused window # move focused window
"${main}+Alt+h" = "move left"; "${main}+Alt+h" = "move left";
"${main}+Alt+j" = "move down"; "${main}+Alt+j" = "move down";
"${main}+Alt+k" = "move up"; "${main}+Alt+k" = "move up";
"${main}+Alt+l" = "move right"; "${main}+Alt+l" = "move right";
}; };
}; };
}; };

View file

@ -1,12 +1,10 @@
{ {
inputs, inputs,
pkgs,
upkgs, upkgs,
spkgs,
root, root,
... ...
}: let }: {
hyprland-git = inputs.hyprland-git.packages.${pkgs.stdenv.hostPlatform.system};
in {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
@ -19,8 +17,6 @@ in {
download-buffer-size = 524288000; download-buffer-size = 524288000;
}; };
nixpkgs.config.allowUnfree = true;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot = rec { boot = rec {
initrd.kernelModules = ["amdgpu"]; initrd.kernelModules = ["amdgpu"];
@ -30,8 +26,8 @@ in {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
# kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4; # kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4;
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = upkgs.linuxPackages_latest;
kernelModules = ["v4l2loopback"]; kernelModules = ["v4l2loopback"];
extraModulePackages = with kernelPackages; [v4l2loopback]; extraModulePackages = with kernelPackages; [v4l2loopback];
@ -107,7 +103,7 @@ in {
enable = true; enable = true;
}; };
extraPortals = with pkgs; [ extraPortals = with upkgs; [
xdg-desktop-portal-termfilechooser xdg-desktop-portal-termfilechooser
]; ];
@ -134,7 +130,7 @@ in {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
extraPackages = with pkgs; [ extraPackages = with upkgs; [
libva-vdpau-driver libva-vdpau-driver
libvdpau-va-gl libvdpau-va-gl
]; ];
@ -165,7 +161,7 @@ in {
udev = { udev = {
enable = true; enable = true;
packages = with pkgs; [ packages = with upkgs; [
# adds via support for keyboards and stuffs :3 (needs reboot) # adds via support for keyboards and stuffs :3 (needs reboot)
via via
@ -208,9 +204,9 @@ in {
uid = 1000; uid = 1000;
extraGroups = ["wheel" "disk" "input" "video" "audio" "networkmanager" "games"]; extraGroups = ["wheel" "disk" "input" "video" "audio" "networkmanager" "games"];
shell = pkgs.zsh; shell = upkgs.zsh;
packages = with pkgs; [ packages = with upkgs; [
flatpak flatpak
tree tree
]; ];
@ -220,14 +216,6 @@ in {
}; };
}; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.aurora = import ../../homes/aurora;
extraSpecialArgs = {inherit inputs upkgs root;};
};
programs = { programs = {
# nix-ld runs unpatched dynamic binaries on nixos :3 # nix-ld runs unpatched dynamic binaries on nixos :3
nix-ld.enable = true; nix-ld.enable = true;
@ -251,12 +239,12 @@ in {
# to work properly on hyprland # to work properly on hyprland
hyprland = { hyprland = {
enable = true; enable = true;
package = hyprland-git.hyprland; package = upkgs.hyprland-git.hyprland;
portalPackage = hyprland-git.xdg-desktop-portal-hyprland; portalPackage = upkgs.hyprland-git.xdg-desktop-portal-hyprland;
}; };
river-classic = { river-classic = {
package = upkgs.river-classic; # FIX: using upkgs version as zls is broken rn ;-; package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-;
enable = true; enable = true;
}; };
@ -268,7 +256,7 @@ in {
# steam has to be enabled here # steam has to be enabled here
steam = { steam = {
enable = true; enable = true;
package = pkgs.millennium-steam; package = upkgs.millennium-steam;
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true; localNetworkGameTransfers.openFirewall = true;
@ -277,7 +265,7 @@ in {
alvr = { alvr = {
enable = true; enable = true;
package = upkgs.alvr; package = spkgs.alvr;
openFirewall = true; openFirewall = true;
}; };
@ -300,7 +288,7 @@ in {
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with upkgs; [
# linux packages!!! # linux packages!!!
linuxPackages.v4l2loopback linuxPackages.v4l2loopback
@ -325,17 +313,17 @@ in {
# waydroid needs it apparently for clipboard sharing?? # waydroid needs it apparently for clipboard sharing??
wl-clipboard wl-clipboard
(waydroid.override { (waydroid.override {
python3Packages = pkgs.python312Packages; python3Packages = upkgs.python312Packages;
}) })
# game stuff :3 # game stuff :3
(lutris.override { (lutris.override {
extraPkgs = pkgs: [ extraupkgs = upkgs: [
libadwaita libadwaita
]; ];
}) })
(steam.override { (steam.override {
extraPkgs = pkgs: [ extraupkgs = upkgs: [
nss nss
xorg.libX11 xorg.libX11
xorg.libXScrnSaver xorg.libXScrnSaver
@ -356,7 +344,7 @@ in {
# Most users should NEVER change this value after the initial install, for any reason, # Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release. # even if you've upgraded your system to a new NixOS release.
# #
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from, # This value does NOT affect the Nixupkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that. # to actually do that.
# #

View file

@ -1,55 +1,58 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b"; device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@" ]; options = ["subvol=@"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b"; device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@home" ]; options = ["subvol=@home"];
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b"; device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@nix" ]; options = ["subvol=@nix"];
}; };
fileSystems."/games" = fileSystems."/games" = {
{ device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b"; device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@games" ]; options = ["subvol=@games"];
}; };
fileSystems."/data" = fileSystems."/data" = {
{ device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b"; device = "/dev/disk/by-uuid/257dd2c7-59b1-431e-a5a1-c7db00b3312b";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@data" ]; options = ["subvol=@data"];
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/63DC-1AEB"; device = "/dev/disk/by-uuid/63DC-1AEB";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,5 +1,5 @@
{ {
pkgs, upkgs,
lib, lib,
config, config,
... ...
@ -12,20 +12,22 @@ in {
}; };
config = lib.mkIf enabled { config = lib.mkIf enabled {
nixpkgs.overlays = [ nixpkgs.channels.default = {
(self: super: { upkgs.overlays = [
amdgpu-ignore-ctx-privileges = super.fetchpatch { (self: super: {
name = "cap_sys_nice_begone.patch"; amdgpu-ignore-ctx-privileges = super.fetchpatch {
url = "https://github.com/Frogging-Family/community-patches/raw/master/linux61-tkg/cap_sys_nice_begone.mypatch"; name = "cap_sys_nice_begone.patch";
hash = "sha256-Y3a0+x2xvHsfLax/uwycdJf3xLxvVfkfDVqjkxNaYEo="; url = "https://github.com/Frogging-Family/community-patches/raw/master/linux61-tkg/cap_sys_nice_begone.mypatch";
}; hash = "sha256-Y3a0+x2xvHsfLax/uwycdJf3xLxvVfkfDVqjkxNaYEo=";
}) };
]; })
];
};
boot.kernelPatches = [ boot.kernelPatches = [
{ {
name = "amdgpu-ignore-ctx-privileges"; name = "amdgpu-ignore-ctx-privileges";
patch = pkgs.amdgpu-ignore-ctx-privileges; patch = upkgs.amdgpu-ignore-ctx-privileges;
} }
]; ];
}; };

28
nixpkgs.nix Normal file
View file

@ -0,0 +1,28 @@
{
inputs,
system,
...
}: {
nixpkgs.channels.default = {
# nixpkgs-unstable
upkgs = {
inherit system;
source = inputs.nixpkgs-unstable;
overlays = with inputs; [
cachyos.overlays.pinned
millennium.overlays.default
(import ./overlays.nix {inherit inputs;})
];
config.allowUnfree = true;
};
# nixpkgs-staging
spkgs = {
inherit system;
source = inputs.nixpkgs-staging;
overlays = [];
config.allowUnfree = true;
};
};
}

View file

@ -1,3 +1,9 @@
# NOTE: `system` is provided by Cerulean
{
inputs,
system,
...
}: [
(self: super: { (self: super: {
ekphos = import ../packages/ekphos { ekphos = import ../packages/ekphos {
pkgs = super; pkgs = super;
@ -10,4 +16,7 @@
}) })
]; ];
}); });
hyprland-git = inputs.hyprland-git.packages.${system};
}) })
]

23
snow.nix Normal file
View file

@ -0,0 +1,23 @@
{cerulean, ...} @ inputs:
cerulean.mkNexus ./. (self: {
nexus = {
specialArgs = {inherit inputs;};
extraPkgConfig = {
config.allowUnfree = true;
};
extraModules = with inputs; [
home-manager.nixosModules.home-manager
];
nodes = {
nixarawrui = {
system = "x86_64-linux";
extraModules = with inputs; [
sddm-silent.nixosModules.default
];
};
};
};
})