mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-04-19 19:18:58 +00:00
feat: update system
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
cachix
|
||||
# lorri
|
||||
vulnix
|
||||
gccdiag
|
||||
|
||||
# browsers
|
||||
firefox
|
||||
@@ -44,17 +45,19 @@
|
||||
blender-hip
|
||||
|
||||
# development
|
||||
insomnia
|
||||
# TODO: .NET 6 avalonia-ilspy
|
||||
# ghidra
|
||||
# ida-free
|
||||
|
||||
# utils
|
||||
libqalculate
|
||||
ranger
|
||||
neofetch
|
||||
filezilla
|
||||
yubikey-manager
|
||||
# rquickshare
|
||||
(pkgs.writeShellApplication {
|
||||
name = "fix-yubikey";
|
||||
text = ''
|
||||
gpg-connect-agent --hex "scd apdu 00 f1 00 00" /bye
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.flatpak.update.auto = {
|
||||
enable = true;
|
||||
onCalendar = "weekly";
|
||||
};
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
rbw = {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
fork = true;
|
||||
font = {
|
||||
normal = [ "FiraCode Nerd Font" ];
|
||||
size = 12.75;
|
||||
size = 12;
|
||||
edging = "subpixelantialias";
|
||||
hinting = "full";
|
||||
features."FiraCode Nerd Font" = [
|
||||
|
||||
@@ -46,13 +46,17 @@
|
||||
enable = true;
|
||||
prettier = true;
|
||||
};
|
||||
spellcheck.enable = false;
|
||||
status-line.enable = true;
|
||||
syntax.enable = true;
|
||||
tree.enable = true;
|
||||
};
|
||||
languages = {
|
||||
angular.enable = true;
|
||||
c.enable = true;
|
||||
c = {
|
||||
enable = true;
|
||||
cppcheck = true;
|
||||
};
|
||||
css = {
|
||||
enable = true;
|
||||
stylelint = true;
|
||||
@@ -68,21 +72,64 @@
|
||||
python.enable = true;
|
||||
rust.enable = true;
|
||||
shell.enable = true;
|
||||
svelte.enable = true;
|
||||
};
|
||||
remaps = {
|
||||
half-page-scroll.enable = true;
|
||||
no-accidental-macro.enable = true;
|
||||
paste-keep-buffer.enable = true;
|
||||
wrapped-line-nav.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
extraPlugins = [ pkgs.vimPlugins.tiny-inline-diagnostic-nvim ];
|
||||
extraConfigLua = ''
|
||||
require("tiny-inline-diagnostic").setup({
|
||||
preset = "modern",
|
||||
hi = {
|
||||
arrow = "LineNr",
|
||||
background = "LineNr",
|
||||
},
|
||||
options = {
|
||||
show_source = true,
|
||||
use_icons_from_diagnostic = true,
|
||||
add_messages = true,
|
||||
throttle = 0,
|
||||
softwrap = 30,
|
||||
multiple_diag_under_cursor = true,
|
||||
multilines = {
|
||||
enabled = true,
|
||||
always_show = true,
|
||||
},
|
||||
show_all_diags_on_cursorline = false,
|
||||
enable_on_insert = true,
|
||||
enable_on_select = true,
|
||||
severity = {
|
||||
vim.diagnostic.severity.ERROR,
|
||||
vim.diagnostic.severity.WARN,
|
||||
vim.diagnostic.severity.INFO,
|
||||
vim.diagnostic.severity.HINT,
|
||||
},
|
||||
},
|
||||
})
|
||||
'';
|
||||
diagnostics.virtual_text = false;
|
||||
|
||||
plugins = {
|
||||
leap.enable = true;
|
||||
vim-surround.enable = true;
|
||||
which-key.enable = true;
|
||||
schemastore.enable = true;
|
||||
# TODO: looks weird with neovide
|
||||
# treesitter-context.enable = true;
|
||||
comment.enable = true;
|
||||
debugprint.enable = true;
|
||||
todo-comments.enable = true;
|
||||
treesitter-context = {
|
||||
enable = false; # TODO: looks weird with Neovide
|
||||
settings = {
|
||||
line_numbers = false;
|
||||
};
|
||||
};
|
||||
none-ls.settings.debug = true;
|
||||
|
||||
lsp.servers = {
|
||||
html.enable = true;
|
||||
@@ -97,7 +144,7 @@
|
||||
|
||||
copilot-lua = {
|
||||
enable = true;
|
||||
suggestion.autoTrigger = true;
|
||||
settings.suggestion.auto_trigger = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -41,8 +41,14 @@ in
|
||||
snippet.expand = # lua
|
||||
"function(args) require('luasnip').lsp_expand(args.body) end";
|
||||
window = {
|
||||
completion.border = "rounded";
|
||||
documentation.border = "rounded";
|
||||
completion = {
|
||||
border = "solid";
|
||||
zindex = 10;
|
||||
};
|
||||
documentation = {
|
||||
border = "solid";
|
||||
zindex = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -15,6 +15,7 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
extraConfigLuaPre = # lua
|
||||
''
|
||||
vim.lsp.set_log_level("off")
|
||||
require("actions-preview").setup({})
|
||||
|
||||
local signs = {
|
||||
@@ -28,15 +29,19 @@ in
|
||||
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
|
||||
end
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_text = true,
|
||||
signs = true,
|
||||
underline = true,
|
||||
update_in_insert = true,
|
||||
severity_sort = false,
|
||||
})
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "solid" })
|
||||
'';
|
||||
diagnostics = {
|
||||
signs.text = {
|
||||
"__rawKey__vim.diagnostic.severity.ERROR" = "";
|
||||
"__rawKey__vim.diagnostic.severity.WARN" = "";
|
||||
"__rawKey__vim.diagnostic.severity.INFO" = "";
|
||||
"__rawKey__vim.diagnostic.severity.HINT" = "";
|
||||
};
|
||||
underline = true;
|
||||
update_in_insert = true;
|
||||
severity_sort = true;
|
||||
};
|
||||
keymaps = [
|
||||
{
|
||||
key = "<leader>sa";
|
||||
@@ -70,9 +75,19 @@ in
|
||||
action.__raw = # lua
|
||||
"vim.lsp.buf.hover";
|
||||
}
|
||||
{
|
||||
key = "<leader>sh";
|
||||
mode = "n";
|
||||
options.silent = true;
|
||||
action.__raw = # lua
|
||||
"function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({0}), {0}) end";
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
lsp.enable = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
inlayHints = false;
|
||||
};
|
||||
telescope = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
@@ -81,7 +96,6 @@ in
|
||||
"<leader>si" = "lsp_implementations";
|
||||
"<leader>sw" = "lsp_workspace_symbols";
|
||||
"<leader>st" = "lsp_type_definitions";
|
||||
"<leader>sh" = "diagnostics";
|
||||
};
|
||||
};
|
||||
inc-rename.enable = true;
|
||||
@@ -133,8 +147,8 @@ in
|
||||
}
|
||||
{
|
||||
__unkeyed-1 = "<leader>sh";
|
||||
icon = "";
|
||||
desc = "Diagnostics";
|
||||
icon = "";
|
||||
desc = "Inlay Hints";
|
||||
}
|
||||
{
|
||||
__unkeyed-1 = "<leader>sa";
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
hmConfig,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.presets.base.spellcheck;
|
||||
in
|
||||
{
|
||||
options.presets.base.spellcheck = {
|
||||
enable = lib.mkEnableOption "Spellcheck";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
plugins.lsp.servers.harper_ls = {
|
||||
enable = true;
|
||||
settings = {
|
||||
userDictPath = "${hmConfig.xdg.configHome}/harper-user-dictionary.txt";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -32,8 +32,8 @@ in
|
||||
options = {
|
||||
globalstatus = true;
|
||||
section_separators = {
|
||||
left = ""; # "";
|
||||
right = ""; # "";
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
component_separators = {
|
||||
left = "┊";
|
||||
@@ -45,8 +45,8 @@ in
|
||||
{
|
||||
__unkeyed-1 = "mode";
|
||||
separator = {
|
||||
right = ""; # "";
|
||||
left = ""; # "";
|
||||
right = "";
|
||||
left = "";
|
||||
};
|
||||
icon = "";
|
||||
}
|
||||
@@ -56,8 +56,8 @@ in
|
||||
{
|
||||
__unkeyed-1 = "location";
|
||||
separator = {
|
||||
right = ""; # "";
|
||||
left = ""; # "";
|
||||
right = "";
|
||||
left = "";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
@@ -28,7 +28,7 @@ in
|
||||
filteredItems.visible = true;
|
||||
};
|
||||
extraSources = [ "document_symbols" ];
|
||||
popupBorderStyle = "rounded";
|
||||
popupBorderStyle = "solid";
|
||||
eventHandlers.neo_tree_buffer_leave = # lua
|
||||
''
|
||||
function()
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
{ lib, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
options.programs.nixvim = lib.mkOption {
|
||||
type = lib.types.submoduleWith {
|
||||
type = pkgs.lib.types.submoduleWith {
|
||||
specialArgs = {
|
||||
inherit pkgs;
|
||||
};
|
||||
modules = [
|
||||
./auto-save.nix
|
||||
./auto-format.nix
|
||||
@@ -15,6 +18,7 @@
|
||||
./base/diagnostics.nix
|
||||
./base/find.nix
|
||||
./base/formatting.nix
|
||||
./base/spellcheck.nix
|
||||
./base/status-line.nix
|
||||
./base/syntax.nix
|
||||
./base/tree.nix
|
||||
@@ -29,10 +33,12 @@
|
||||
./languages/python.nix
|
||||
./languages/rust.nix
|
||||
./languages/shell.nix
|
||||
./languages/svelte.nix
|
||||
|
||||
./remaps/half-page-scroll.nix
|
||||
./remaps/no-accidental-macro.nix
|
||||
./remaps/paste-keep-buffer.nix
|
||||
./remaps/wrapped-line-nav.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.presets.languages.c;
|
||||
in
|
||||
{
|
||||
options.presets.languages.c = {
|
||||
enable = lib.mkEnableOption "C/C++";
|
||||
cppcheck = lib.mkEnableOption "cppcheck";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
@@ -13,12 +18,28 @@ in
|
||||
c = [ "clang-format" ];
|
||||
cpp = [ "clang-format" ];
|
||||
};
|
||||
lsp.servers.clangd = {
|
||||
none-ls = {
|
||||
enable = true;
|
||||
cmd = [
|
||||
"clangd"
|
||||
"--offset-encoding=utf-16"
|
||||
];
|
||||
sources.diagnostics = {
|
||||
cppcheck = lib.mkIf cfg.cppcheck {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
lsp.servers = {
|
||||
clangd = {
|
||||
enable = true;
|
||||
cmd = [
|
||||
"clangd"
|
||||
"--offset-encoding=utf-16"
|
||||
];
|
||||
settings.InlayHints = {
|
||||
Designators = true;
|
||||
Enabled = true;
|
||||
ParameterNames = true;
|
||||
DeducedTypes = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -42,7 +42,31 @@ in
|
||||
}
|
||||
];
|
||||
lsp.servers = {
|
||||
ts_ls.enable = true;
|
||||
ts_ls = {
|
||||
enable = true;
|
||||
settings = {
|
||||
typescript.inlayHints = {
|
||||
includeInlayParameterNameHints = "all";
|
||||
includeInlayParameterNameHintsWhenArgumentMatchesName = true;
|
||||
includeInlayFunctionParameterTypeHints = true;
|
||||
includeInlayVariableTypeHints = true;
|
||||
includeInlayVariableTypeHintsWhenTypeMatchesName = true;
|
||||
includeInlayPropertyDeclarationTypeHints = true;
|
||||
includeInlayFunctionLikeReturnTypeHints = true;
|
||||
includeInlayEnumMemberValueHints = true;
|
||||
};
|
||||
javascript.inlayHints = {
|
||||
includeInlayParameterNameHints = "all";
|
||||
includeInlayParameterNameHintsWhenArgumentMatchesName = true;
|
||||
includeInlayFunctionParameterTypeHints = true;
|
||||
includeInlayVariableTypeHints = true;
|
||||
includeInlayVariableTypeHintsWhenTypeMatchesName = true;
|
||||
includeInlayPropertyDeclarationTypeHints = true;
|
||||
includeInlayFunctionLikeReturnTypeHints = true;
|
||||
includeInlayEnumMemberValueHints = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
eslint.enable = lib.mkIf cfg.eslint true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -15,6 +15,10 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
plugins = {
|
||||
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
|
||||
none-ls = {
|
||||
enable = true;
|
||||
sources.diagnostics.statix.enable = true;
|
||||
};
|
||||
lsp.servers.nil_ls.enable = true;
|
||||
nix.enable = true;
|
||||
};
|
||||
|
||||
@@ -14,6 +14,28 @@ in
|
||||
enable = true;
|
||||
installCargo = false;
|
||||
installRustc = false;
|
||||
settings.inlayHints = {
|
||||
bindingModeHints.enable = false;
|
||||
chainingHints.enable = true;
|
||||
closingBraceHints = {
|
||||
enable = true;
|
||||
minLines = 25;
|
||||
};
|
||||
closureReturnTypeHints.enable = "never";
|
||||
lifetimeElisionHints = {
|
||||
enable = "never";
|
||||
useParameterNames = false;
|
||||
};
|
||||
maxLength = 25;
|
||||
parameterHints.enable = true;
|
||||
reborrowHints.enable = "never";
|
||||
renderColons = true;
|
||||
typeHints = {
|
||||
enable = true;
|
||||
hideClosureInitialization = false;
|
||||
hideNamedConstructor = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.presets.languages.svelte;
|
||||
in
|
||||
{
|
||||
options.presets.languages.svelte = {
|
||||
enable = lib.mkEnableOption "Svelte";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
plugins.lsp.servers.svelte = {
|
||||
enable = true;
|
||||
settings.typescript.inlayHints = {
|
||||
parameterNames.enabled = "all";
|
||||
parameterTypes.enabled = true;
|
||||
variableTypes.enabled = true;
|
||||
propertyDeclarationTypes.enabled = true;
|
||||
functionLikeReturnTypes.enabled = true;
|
||||
enumMemberValues.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.presets.remaps.wrapped-line-nav;
|
||||
in
|
||||
{
|
||||
options.presets.remaps.wrapped-line-nav = {
|
||||
enable = lib.mkEnableOption "Navigate wrapped lines up and down";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
keymaps = [
|
||||
{
|
||||
key = "<up>";
|
||||
action = "g<up>";
|
||||
}
|
||||
{
|
||||
key = "<down>";
|
||||
action = "g<down>";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -13,7 +13,7 @@ in
|
||||
key = "<leader>xx";
|
||||
mode = "n";
|
||||
action.__raw = # lua
|
||||
"require('trouble').toggle";
|
||||
"function() require('trouble').toggle('diagnostics') end";
|
||||
}
|
||||
{
|
||||
key = "<leader>xw";
|
||||
@@ -42,10 +42,7 @@ in
|
||||
];
|
||||
plugins = {
|
||||
web-devicons.enable = true;
|
||||
trouble = {
|
||||
enable = true;
|
||||
settings.use_diagnostic_signs = true;
|
||||
};
|
||||
trouble.enable = true;
|
||||
which-key.settings.spec = [
|
||||
{
|
||||
__unkeyed-1 = "<leader>x";
|
||||
|
||||
@@ -4,14 +4,19 @@ if exists("syntax_on")
|
||||
endif
|
||||
let g:colors_name="md3-evo"
|
||||
|
||||
let g:neovide_transparency = {{custom.transparency}}
|
||||
let g:neovide_transparency = 1.0
|
||||
let g:neovide_floating_corner_radius = 0.5
|
||||
let g:neovide_normal_opacity = {{custom.transparency}}
|
||||
let g:neovide_padding_top = {{custom.padding}}
|
||||
let g:neovide_padding_bottom = {{custom.padding}}
|
||||
let g:neovide_padding_left = {{custom.padding}}
|
||||
let g:neovide_padding_right = {{custom.padding}}
|
||||
let g:neovide_floating_blur_amount_x = {{custom.blur}}
|
||||
let g:neovide_floating_blur_amount_y = {{custom.blur}}
|
||||
let g:neovide_floating_shadow = 0
|
||||
let g:neovide_floating_shadow = v:true
|
||||
let g:neovide_floating_z_height = 10
|
||||
let g:neovide_light_angle_degrees = 45
|
||||
let g:neovide_light_radius = 5
|
||||
|
||||
let g:terminal_color_0 = "{{colors.surface.default.hex}}"
|
||||
let g:terminal_color_1 = "{{colors.red.default.hex}}"
|
||||
@@ -204,6 +209,8 @@ hi! IlluminatedWordRead gui=none guibg={{colors.surface_container_highest.defaul
|
||||
hi! IlluminatedWordWrite gui=none guibg={{colors.surface_container_highest.default.hex}}
|
||||
hi! MatchParen gui=none guibg={{colors.surface_container_highest.default.hex}}
|
||||
|
||||
hi! LspInlayHint guifg={{colors.on_surface_variant.default.hex}} guibg={{colors.surface_variant.default.hex}}
|
||||
|
||||
let g:lualine_theme = {
|
||||
\ "insert": {
|
||||
\ "a": {"fg": "{{colors.on_green.default.hex}}", "bg": "{{colors.green.default.hex}}", "gui": "bold"},
|
||||
|
||||
@@ -34,22 +34,28 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# https://github.com/sjcobb2022/nixos-config/blob/70fb548b961c19e9855d2de86ee9569a7a88d976/hosts/common/optional/greetd.nix#L23C1-L33C2
|
||||
systemd.services.greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal"; # Without this errors will spam on screen
|
||||
# Without these bootlogs will spam on screen
|
||||
TTYReset = true;
|
||||
TTYVHangup = true;
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
/*
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
initial_session = {
|
||||
command = "${pkgs.hyprland}/bin/Hyprland &> /dev/null";
|
||||
user = username;
|
||||
};
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks";
|
||||
user = username;
|
||||
};
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions";
|
||||
user = username;
|
||||
};
|
||||
};
|
||||
*/
|
||||
};
|
||||
|
||||
dbus.enable = true;
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [ pavucontrol ];
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
|
||||
@@ -18,7 +18,7 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
fonts.fontconfig.subpixel.rgba = "bgr";
|
||||
hardware.gbmonctl.enable = true;
|
||||
boot.kernelParams = [ "video=3840x2160@120" ];
|
||||
boot.kernelParams = [ "video=3840x2160@144" ];
|
||||
|
||||
home-manager.users.${username} = {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
@@ -29,7 +29,7 @@ in
|
||||
mfact = 0.4;
|
||||
};
|
||||
monitor = [
|
||||
"DP-3,3840x2160@120,0x0,1,bitdepth,10"
|
||||
"DP-3,3840x2160@144,0x0,1,bitdepth,10"
|
||||
"DP-3,addreserved,340,0,0,0"
|
||||
];
|
||||
xwayland.force_zero_scaling = true;
|
||||
|
||||
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
|
||||
makeFlags = kernel.makeFlags ++ [
|
||||
"KVERSION=${kernel.modDirVersion}"
|
||||
"KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
"KBUILD_OUTPUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
@@ -16,7 +15,6 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
boot = {
|
||||
# Virtual Camera/Mic
|
||||
kernelModules = [
|
||||
"v4l2loopback"
|
||||
"snd-aloop"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -20,10 +21,17 @@ in
|
||||
lpc21isp
|
||||
dfu-util
|
||||
openscad
|
||||
bambu-studio
|
||||
prusa-slicer # gcode viewer!
|
||||
orca-slicer
|
||||
freecad
|
||||
];
|
||||
home-manager.users.${username} = {
|
||||
services.flatpak.packages = [
|
||||
"com.bambulab.BambuStudio"
|
||||
"org.freecad.FreeCAD"
|
||||
"com.prusa3d.PrusaSlicer" # gcode viewer!
|
||||
];
|
||||
programs = {
|
||||
lazygit.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user