1
0
Fork 0
forked from foxora/nix

Compare commits

...

No commits in common. "6a011236e48a3aeeedebf18b3a0b0851e280938c" and "0a72c0387c7189a9883b7656d28bba2ed285a00a" have entirely different histories.

27 changed files with 397 additions and 607 deletions

36
flake.lock generated
View file

@ -145,7 +145,7 @@
"inputs": {
"deploy-rs": "deploy-rs",
"nixpkgs": [
"nixpkgs"
"nixpkgs-unstable"
],
"nixpkgs-unstable": [
"nixpkgs-unstable"
@ -156,17 +156,14 @@
]
},
"locked": {
"lastModified": 1771048834,
"narHash": "sha256-rkhrNJIjCQeABf0zgWZvz4Rb99TJvK+ioOmgy3tIOMs=",
"owner": "emilelcb",
"repo": "Cerulean",
"rev": "f329d48223d8addd340f14c9c653960544b3ce2c",
"type": "github"
"lastModified": 1771048427,
"narHash": "sha256-pGqtZ6LH3hcmtSiCy8bMnRxkBBT0CU18pIHlEm9yCs4=",
"path": "/home/me/cry/mk/Cerulean",
"type": "path"
},
"original": {
"owner": "emilelcb",
"repo": "Cerulean",
"type": "github"
"path": "/home/me/cry/mk/Cerulean",
"type": "path"
}
},
"crane": {
@ -1257,22 +1254,6 @@
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1771043024,
"narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1769461804,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
@ -1489,7 +1470,6 @@
"nix-alien": "nix-alien",
"nixcats": "nixcats",
"nixcord": "nixcord",
"nixpkgs": "nixpkgs_10",
"nixpkgs-staging": "nixpkgs-staging",
"nixpkgs-unstable": "nixpkgs-unstable",
"sddm-silent": "sddm-silent",
@ -1756,7 +1736,7 @@
"zen": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_11"
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1770910552,

View file

@ -4,7 +4,6 @@
inputs = {
systems.url = "github:nix-systems/default";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-staging.url = "github:NixOS/nixpkgs/staging-next";
@ -18,14 +17,10 @@
inputs = {
systems.follows = "systems";
nixpkgs.follows = "nixpkgs-unstable";
nixpkgs-unstable.follows = "nixpkgs-unstable";
};
};
microvm = {
url = "github:microvm-nix/microvm.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
cachyos.url = "github:xddxdd/nix-cachyos-kernel";
nix-alien = {

View file

@ -1,6 +0,0 @@
{ ... }: {
nix.settings = {
experimental-features = ["nix-command" "flakes"];
download-buffer-size = 524288000;
};
}

View file

@ -1,17 +0,0 @@
{ ... }: {
nix.settings = {
trusted-users = ["root" "@wheel"];
};
security = {
sudo = {
enable = true;
wheelNeedsPassword = true;
};
pam = {
sshAgentAuth.enable = true;
services.sudo.sshAgentAuth = true; # pam_ssh_agent_auth module
};
};
}

View file

@ -1,9 +0,0 @@
{
lib,
config,
...
}: {
nixpkgs.channels.default = {
default = lib.mkForce config.nixpkgs.channels.default.upkgs;
};
}

View file

@ -71,7 +71,6 @@
# fonts
nerd-fonts.departure-mono # pretty pixel art font i love!! x3
nerd-fonts.jetbrains-mono
# cli / tui tools and commands!
eza # replaces: ls (rust)

View file

@ -1,142 +0,0 @@
configuration {
modes: [ combi ];
combi-modes: [ window, drun, run ];
}
@theme "colors"
window {
background-color: @background;
border-color: @color10;
border-radius: 12px;
border: 2;
padding: 16;
transparency: "real";
opacity: 90;
}
mainbox {
background-color: transparent;
opacity: 90;
border: 0;
}
message {
border: 2px 0px 0px;
border-color: @color14;
padding: 1px;
}
inputbar {
background-color: transparent;
text-color: @foreground;
spacing: 8;
}
textbox {
background-color: @background;
text-color: @foreground;
}
prompt {
background-color: transparent;
text-color: @color12;
}
entry {
placeholder: "~ rawr :3 ~ *pounces on u* <3 ~ >w< ~";
cursor: pointer;
background-color: transparent;
text-color: @color13;
}
case-indicator {
background-color: transparent;
text-color: @color12;
}
listview {
fixed-height: 0;
border: 2px 0px 0px;
border-color: transparent;
background-color: transparent;
spacing: 2px;
scrollbar: true;
padding: 2px 0px 0px;
}
element {
orientation: horizontal;
spacing: 8;
border: 0;
border-radius: 4;
}
element-icon {
size: 24;
}
element-text {
vertical-align: 0.5;
}
element.normal.normal {
background-color: transparent;
text-color: @foreground;
}
element.alternate.normal {
background-color: transparent;
text-color: @color06;
}
element.selected.normal {
background-color: @color13;
text-color: @background;
}
element.normal.urgent {
background-color: @color14;
text-color: @background;
}
element.alternate.urgent {
background-color: transparent;
text-color: @color14;
}
element.selected.urgent {
background-color: @color13;
text-color: @background;
}
element.normal.active {
background-color: @color12;
text-color: @background;
}
element.alternate.active {
background-color: @background;
text-color: @color14;
}
element.selected.active {
background-color: @color13;
text-color: @background;
}
element-text, element-icon {
background-color: inherit;
text-color: inherit;
}
button.selected {
background-color: transparent;
text-color: @foreground;
}
scrollbar {
background-color: transparent;
handle-color: @color12;
width: 4px;
border: 0;
handle-width: 8px;
padding: 0;
}
mode-switcher {
border: 2px 0px 0px ;
border-color: @color14;
}

View file

@ -3,7 +3,7 @@
enable = true;
font = "DepartureMono Nerd Font Mono 10";
theme = ./ichigo.rasi;
theme = ./theme.rasi;
extraConfig = {
#kb-row-up = "Up,Control+k";

View file

View file

@ -0,0 +1,203 @@
---packadd + after/plugin
---@type fun(names: string[]|string)
local load_w_after_plugin = require('nixCatsUtils.lzUtils').make_load_with_after({ "plugin" })
-- NOTE: packadd doesnt load after directories.
-- hence, the above function that you can get from luaUtils that exists to make that easy.
return {
{
"cmp-buffer",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"cmp-cmdline",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"cmp-cmdline-history",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"cmp-nvim-lsp",
on_plugin = { "nvim-cmp" },
dep_of = { "nvim-lspconfig" },
load = load_w_after_plugin,
},
{
"cmp-nvim-lsp-signature-help",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"cmp-nvim-lua",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"cmp-path",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"cmp_luasnip",
on_plugin = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"friendly-snippets",
dep_of = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"lspkind.nvim",
dep_of = { "nvim-cmp" },
load = load_w_after_plugin,
},
{
"luasnip",
dep_of = { "nvim-cmp" },
after = function (plugin)
local luasnip = require 'luasnip'
require('luasnip.loaders.from_vscode').lazy_load()
luasnip.config.setup {}
local ls = require('luasnip')
vim.keymap.set({ "i", "s" }, "<M-n>", function()
if ls.choice_active() then
ls.change_choice(1)
end
end)
end,
},
{
"nvim-cmp",
-- cmd = { "" },
event = { "DeferredUIEnter" },
on_require = { "cmp" },
-- ft = "",
-- keys = "",
-- colorscheme = "",
after = function (plugin)
-- [[ Configure nvim-cmp ]]
-- See `:help cmp`
local cmp = require 'cmp'
local luasnip = require 'luasnip'
local lspkind = require 'lspkind'
cmp.setup {
formatting = {
format = lspkind.cmp_format {
mode = 'text',
with_text = true,
maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first)
menu = {
buffer = '[BUF]',
nvim_lsp = '[LSP]',
nvim_lsp_signature_help = '[LSP]',
nvim_lsp_document_symbol = '[LSP]',
nvim_lua = '[API]',
path = '[PATH]',
luasnip = '[SNIP]',
},
},
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
['<C-p>'] = cmp.mapping.scroll_docs(-4),
['<C-n>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete {},
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = cmp.config.sources {
-- The insertion order influences the priority of the sources
{ name = 'nvim_lsp'--[[ , keyword_length = 3 ]] },
{ name = 'nvim_lsp_signature_help'--[[ , keyword_length = 3 ]]},
{ name = 'path' },
{ name = 'luasnip' },
{ name = 'buffer' },
},
enabled = function()
return vim.bo[0].buftype ~= 'prompt'
end,
experimental = {
native_menu = false,
ghost_text = false,
},
}
cmp.setup.filetype('lua', {
sources = cmp.config.sources {
{ name = 'nvim_lua' },
{ name = 'nvim_lsp'--[[ , keyword_length = 3 ]]},
{ name = 'nvim_lsp_signature_help'--[[ , keyword_length = 3 ]]},
{ name = 'path' },
{ name = 'luasnip' },
{ name = 'buffer' },
},{
{
name = 'cmdline',
option = {
ignore_cmds = { 'Man', '!' },
},
},
},
})
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'nvim_lsp_document_symbol'--[[ , keyword_length = 3 ]]},
{ name = 'buffer' },
{ name = 'cmdline_history' },
},
view = {
entries = { name = 'wildmenu', separator = '|' },
},
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources {
{ name = 'cmdline' },
-- { name = 'cmdline_history' },
{ name = 'path' },
},
})
end,
},
}

View file

@ -1,17 +0,0 @@
vim.api.nvim_create_autocmd("FileType", {
pattern = "lua",
callback = function()
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.expandtab = true
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "nix",
callback = function()
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.expandtab = true
end,
})

View file

@ -2,5 +2,4 @@ require("lze").load {
{ import = "lsp.completion", },
}
require("lsp.indentation")
require("lsp.lsp")

View file

@ -21,10 +21,6 @@ servers.lua_ls = {
},
}
servers.nil_ls = {
settings = {},
}
local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD")
servers.rust_analyzer = {
cmd = { rust_analyzer_cmd },
@ -59,10 +55,6 @@ servers.gleam = {
settings = {},
}
servers.hls = {
settings = {},
}
local java_home = os.getenv("JAVA_HOME")
servers.jdtls = {
settings = {
@ -128,3 +120,4 @@ require("lze").load {
end,
},
}

View file

@ -0,0 +1,135 @@
--[[
This directory is the luaUtils template.
You can choose what things from it that you would like to use.
And then delete the rest.
Everything in this directory is optional.
--]]
local M = {}
-- NOTE: This file contains 2 utilities for making good use of lze and lz.n with nixCats
-- The function for loading after directories is useful for both plugins, and also for lazy loading without a plugin,
-- but the custom handler will only work with lze.
-- If you dont use these plugins, you probably don't need this file.
---This function is useful for sourcing the after directories of lazily loaded plugins
---because vim.cmd.packadd does not do this for you.
---
---This might be useful when doing lazy loading the vanilla way
---as well as when using plugins like lz.n for lazy loading
---It is primarily useful for lazily loading nvim-cmp sources,
---as they often rely on the after directory to work
---
---Recieves the names of directories from a plugin's after directory
---that you wish to source files from.
---Will return a load function that can take a name, or list of names,
---and will load a plugin and its after directories.
---The function returned is a suitable substitute for the load field of a plugin spec.
---
---Only makes sense for plugins added via optionalPlugins
---or some other opt directory on your packpath
---
---e.g. in the following example:
---load_with_after_plugin will load the plugin names it is given, and their after/plugin dir
---
---local load_with_after_plugin = require('nixCatsUtils').make_load_with_after({ 'plugin' })
---load_with_after_plugin('some_plugin')
---@overload fun(dirs: string[]|string): fun(names: string|string[])
---It also optionally recieves a function that should load a plugin and return its path
---for if the plugin is not on the packpath, or return nil
---to load from the packpath or nixCats list as normal
---@overload fun(dirs: string[]|string, load: fun(name: string):string|nil): fun(names: string|string[])
function M.make_load_with_after(dirs, load)
dirs = (type(dirs) == "table" and dirs) or { dirs }
local fromPackpath = function(name)
for _, packpath in ipairs(vim.opt.packpath:get()) do
local plugin_path = vim.fn.globpath(packpath, "pack/*/opt/" .. name, nil, true, true)
if plugin_path[1] then
return plugin_path[1]
end
end
return nil
end
---@param plugin_names string[]|string
return function(plugin_names)
local names = type(plugin_names) == "table" and plugin_names or { plugin_names }
local to_source = {}
for _, name in ipairs(names) do
if type(name) == "string" then
local path = (type(load) == "function" and load(name)) or nil
if type(path) == "string" then
table.insert(to_source, { name = name, path = path })
else
local ok, err = pcall(vim.cmd.packadd, name)
if ok then
table.insert(to_source, { name = name, path = nil })
else
vim.notify(
'"packadd '
.. name
.. '" failed, and path provided by custom load function (if provided) was not a string\n'
.. err,
vim.log.levels.WARN,
{ title = "nixCatsUtils.load_with_after" }
)
end
end
else
vim.notify(
"plugin name was not a string and was instead of value:\n" .. vim.inspect(name),
vim.log.levels.WARN,
{ title = "nixCatsUtils.load_with_after" }
)
end
end
for _, info in pairs(to_source) do
local plugpath = info.path or vim.tbl_get(package.loaded, "nixCats", "pawsible", "allPlugins", "opt", info.name) or fromPackpath(info.name)
if type(plugpath) == "string" then
local afterpath = plugpath .. "/after"
for _, dir in ipairs(dirs) do
if vim.fn.isdirectory(afterpath) == 1 then
local plugin_dir = afterpath .. "/" .. dir
if vim.fn.isdirectory(plugin_dir) == 1 then
local files = vim.fn.glob(plugin_dir .. "/*", false, true)
for _, file in ipairs(files) do
if vim.fn.filereadable(file) == 1 then
vim.cmd("source " .. file)
end
end
end
end
end
end
end
end
end
-- A nixCats specific lze handler that you can use to conditionally enable by category easier.
-- at the start of your config, register with
-- require('lze').register_handlers(require('nixCatsUtils.lzUtils').for_cat)
-- before any calls to require('lze').load using the handler have been made.
-- accepts:
-- for_cat = { "your" "cat" }; for_cat = { cat = { "your" "cat" }, default = bool }
-- for_cat = "your.cat"; for_cat = { cat = "your.cat", default = bool }
-- where default is an alternate value for when nixCats was NOT used to install the config
M.for_cat = {
spec_field = "for_cat",
set_lazy = false,
modify = function(plugin)
if type(plugin.for_cat) == "table" then
if plugin.for_cat.cat ~= nil then
if vim.g[ [[nixCats-special-rtp-entry-nixCats]] ] ~= nil then
plugin.enabled = (nixCats(plugin.for_cat.cat) and true) or false
else
plugin.enabled = nixCats(plugin.for_cat.default)
end
else
plugin.enabled = (nixCats(plugin.for_cat) and true) or false
end
else
plugin.enabled = (nixCats(plugin.for_cat) and true) or false
end
return plugin
end,
}
return M

View file

@ -4,4 +4,5 @@ require("lze").load {
{ import = "plugins.treesitter", },
{ import = "plugins.fyler", },
{ import = "plugins.mini-hipatterns", },
--{ import = "plugins.neocord", },
}

View file

@ -0,0 +1,5 @@
return {
{
"neocord",
},
}

View file

@ -75,10 +75,6 @@ in {
gleam = with pkgs; [
gleam
];
haskell = with pkgs; [
haskell-language-server
ormolu
];
java = with pkgs; [
jdt-language-server
javaPackages.compiler.openjdk17
@ -142,6 +138,9 @@ in {
nvim-jdtls
];
};
discord = with pkgs.vimPlugins; [
neocord # discord presence plugin :3
];
};
# shared libraries to be added to LD_LIBRARY_PATH
@ -214,6 +213,7 @@ in {
lsp = true;
completion = true;
treesitter = true;
discord = false;
lang = {
lua = true;
@ -222,7 +222,6 @@ in {
zig = true;
elixir = true;
gleam = true;
haskell = true;
java = true;
};
};

View file

@ -1,20 +0,0 @@
* {
background: rgba({{ background | rgb }},0.9);
foreground: rgba({{ foreground | rgb }},0.9);
color00: rgba({{ color0 | rgb }},0.9);
color01: rgba({{ color1 | rgb }},0.9);
color02: rgba({{ color2 | rgb }},0.9);
color03: rgba({{ color3 | rgb }},0.9);
color04: rgba({{ color4 | rgb }},0.9);
color05: rgba({{ color5 | rgb }},0.9);
color06: rgba({{ color6 | rgb }},0.9);
color07: rgba({{ color7 | rgb }},0.9);
color08: rgba({{ color8 | rgb }},0.9);
color09: rgba({{ color9 | rgb }},0.9);
color10: rgba({{ color10 | rgb }},0.9);
color11: rgba({{ color11 | rgb }},0.9);
color12: rgba({{ color12 | rgb }},0.9);
color13: rgba({{ color13 | rgb }},0.9);
color14: rgba({{ color14 | rgb }},0.9);
color15: rgba({{ color15 | rgb }},0.9);
}

View file

@ -22,9 +22,6 @@ hyprland.target = "~/.config/hypr/colors.conf"
waybar.template = "waybar-template.css"
waybar.target = "~/.config/waybar/colors.css"
rofi.template = "rofi-template.rasi"
rofi.target = "~/.config/rofi/colors.rasi"
neovim.template = "neovim-template"
neovim.target = "~/.cache/nvim/neovim-colors"

View file

@ -278,15 +278,12 @@
];
layerrule = [
#"blur, aurorashell"
#"ignorealpha 0.7, aurorashell"
"blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar"
"blur on, match:namespace rofi"
"xray on, match:namespace rofi"
"ignore_alpha 0, match:namespace rofi"
#"blur, rofi"
#"ignorezero, rofi"
#"blur, aurorashell"
#"ignorealpha 0.7, aurorashell"
"blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar"
];
env = [

View file

@ -1,117 +0,0 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
networking.hostName = "arcturus";
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
boot = {
kernelPackages = pkgs.linuxPackages_latest;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
networking = {
useNetworkd = false;
useDHCP = false;
nftables.enable = true;
firewall = {
allowedTCPPorts = [
2222
];
};
};
systemd.network = {
enable = true;
netdevs = {
"10-bond0" = {
netdevConfig = {
Kind = "bond";
Name = "bond0";
};
bondConfig = {
Mode = "802.3ad";
TransmitHashPolicy = "layer3+4";
LACPTransmitRate = "fast";
MIIMonitorSec = "100ms";
};
};
};
networks = {
"30-eno1" = {
matchConfig.Name = "eno1";
networkConfig.Bond = "bond0";
};
"30-eno2" = {
matchConfig.Name = "eno2";
networkConfig.Bond = "bond0";
};
"40-bond0" = {
matchConfig.Name = "bond0";
linkConfig = {
RequiredForOnline = "carrier";
};
networkConfig.LinkLocalAddressing = "no";
networkConfig.DHCP = "yes";
vlan = [ "vlan1" ];
};
};
};
services = {
openssh = {
enable = true;
ports = [2222];
settings = {
PasswordAuthentication = false;
PermitRootLogin = "no";
AllowUsers = ["foxora"];
UseDns = false; # enables rDNS lookup
X11Forwarding = false;
};
};
};
users.users.foxora = {
isNormalUser = true;
extraGroups = [ "wheel" ];
packages = with pkgs; [
tree
];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE7NLaT/J1S/lwFp0YRHN5oTGhFoDYd2yaRKKsBVpqIv aurora@nixarawrui"
];
};
environment = {
systemPackages = with pkgs; [
neovim
git
wget
];
variables = {
EDITOR = "nvim";
};
};
system.stateVersion = "25.11";
}

View file

@ -1,33 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "ehci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/7f22e35f-7536-49c4-9c04-88874e87f266";
fsType = "btrfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/0213-F9A0";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/0d04172b-aed8-42ea-9cb8-e5dcbf960200"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,94 +0,0 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
networking.hostName = "lyra";
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
boot = {
kernelPackages = pkgs.linuxPackages_latest;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
networking = {
networkmanager.enable = true;
firewall = {
allowedTCPPorts = [
2222
];
};
};
services = {
openssh = {
enable = true;
ports = [2222];
settings = {
PasswordAuthentication = false;
PermitRootLogin = "no";
AllowUsers = ["foxora"];
UseDns = false; # enables rDNS lookup
X11Forwarding = false;
};
};
};
virtualisation.containers.enable = true;
virtualisation = {
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
};
users.users.foxora = {
isNormalUser = true;
extraGroups = [ "wheel" ];
packages = with pkgs; [
tree
];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID4d6Pt4fFTP0/ZfesNL+MX+j/OqoMRBOh61gqHNWpnH aurora@nixarawrui"
];
};
programs = {
nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 14d --keep 8";
flake = "/etc/nixos";
};
};
environment = {
systemPackages = with pkgs; [
neovim
git
wget
];
variables = {
EDITOR = "nvim";
};
};
system.stateVersion = "25.11";
}

View file

@ -1,33 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1bc53888-6db8-46df-aa28-975b710c5de8";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/60643004-6916-46b3-8655-66fdc28cf5ad"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -10,6 +10,12 @@
./modules/amdgpu-ignore-ctx-privileges.nix
];
# Enable the Flakes feature and the accompaying new nix command-line tool
nix.settings = {
experimental-features = ["nix-command" "flakes"];
download-buffer-size = 524288000;
};
# Use the systemd-boot EFI boot loader.
boot = rec {
initrd.kernelModules = ["amdgpu"];
@ -149,6 +155,7 @@
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
udev = {
@ -329,5 +336,27 @@
inputs.nix-alien.packages.${stdenv.hostPlatform.system}.nix-alien
];
system.stateVersion = "24.11";
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# 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.
#
# 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
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "24.11"; # Did you read the comment?
}

View file

@ -4,16 +4,7 @@
...
} @ args: {
nixpkgs.channels.default = rec {
default = pkgs;
# nixpkgs
pkgs = {
inherit system;
source = inputs.nixpkgs;
overlays = [];
config.allowUnfree = true;
};
default = upkgs;
# nixpkgs-unstable
upkgs = {
inherit system;
@ -28,7 +19,6 @@
config.allowUnfree = true;
};
# nixpkgs-staging
spkgs = {
inherit system;

View file

@ -7,57 +7,13 @@ cerulean.mkNexus ./. (self: {
home-manager.nixosModules.home-manager
];
groups = {
unstable-base = {};
servers = {};
};
nodes = let
inherit
(self.nexus)
groups
;
in
{
nodes = {
nixarawrui = {
system = "x86_64-linux";
groups = [
groups.unstable-base
];
extraModules = with inputs; [
sddm-silent.nixosModules.default
];
};
arcturus = {
system = "x86_64-linux";
groups = [
groups.servers
];
deploy.ssh = {
host = "10.16.1.163";
port = 2222;
user = "foxora";
};
};
lyra = {
system = "x86_64-linux";
groups = [
groups.servers
];
deploy.ssh = {
host = "10.16.1.58";
port = 2222;
user = "foxora";
};
};
};
};
})