summaryrefslogtreecommitdiff
path: root/laptop/home.nix
diff options
context:
space:
mode:
authorandromeda <andromeda@lenovo>2026-05-06 19:37:56 +0200
committerandromeda <andromeda@lenovo>2026-05-06 19:37:56 +0200
commite5aaed7169e7a9b1ae537763ee94ea01aa401852 (patch)
treea386a051a9e18e31ae125ec9418410cbe5b64e4d /laptop/home.nix
parent6a6630647c79e80d7995eac21bc188b5a516d142 (diff)
neo layout
Diffstat (limited to 'laptop/home.nix')
-rw-r--r--laptop/home.nix145
1 files changed, 145 insertions, 0 deletions
diff --git a/laptop/home.nix b/laptop/home.nix
new file mode 100644
index 0000000..0f98005
--- /dev/null
+++ b/laptop/home.nix
@@ -0,0 +1,145 @@
+{
+ config,
+ pkgs,
+ ...
+}: let
+ sources = import ../npins;
+in {
+ home = {
+ file.".profile".enable = false;
+ homeDirectory = "/home/${config.home.username}";
+ packages = [
+ (pkgs.callPackage "${sources.agenix}/pkgs/agenix.nix" {})
+ pkgs.anki
+ pkgs.mindustry-wayland
+ pkgs.nix-output-monitor
+ pkgs.npins
+ ];
+ stateVersion = "26.05";
+ username = "andromeda";
+ };
+ imports = [(import sources.nvf).homeManagerModules.nvf];
+ programs = {
+ firefox = {
+ enable = true;
+ package = pkgs.firefox.override {
+ cfg.enableTridactylNative = true;
+ };
+ profiles.default = {
+ extensions = {
+ force = true;
+ packages = [(import sources.NUR {inherit pkgs;}).repos.rycee.firefox-addons.tridactyl];
+ };
+ settings = {
+ "extensions.autoDisableScopes" = 0;
+ "intl.accepted_languages" = "de_DE";
+ };
+ };
+ };
+ gpg.enable = true;
+ home-manager.enable = true;
+ nvf = {
+ enable = true;
+ settings.vim = {
+ startPlugins = [pkgs.vimPlugins.parinfer-rust];
+ autocomplete.nvim-cmp.enable = false;
+ formatter.conform-nvim = {
+ enable = true;
+ setupOpts.format_on_save = {
+ lsp_format = "fallback";
+ timeout_ms = 5000;
+ };
+ };
+ lsp.otter-nvim.enable = true;
+ git.enable = true;
+ keymaps = [
+ {
+ key = "<Down>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "<Up>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "<Left>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "<Right>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "jj";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "kk";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "jk";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "kj";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "<Esc>";
+ mode = ["i"];
+ action = "<Nop>";
+ }
+ ];
+ languages = {
+ nix = {
+ enable = true;
+ format.enable = true;
+ lsp.enable = true;
+ };
+ haskell = {
+ enable = true;
+ lsp.enable = true;
+ };
+ rust = {
+ enable = true;
+ format.enable = true;
+ lsp.enable = true;
+ treesitter.enable = true;
+ };
+ };
+ lineNumberMode = "relative";
+ options = {
+ tabstop = 2;
+ shiftwidth = 2;
+ expandtab = true;
+ smarttab = true;
+ foldmethod = "indent";
+ number = true;
+ colorcolumn = "80";
+ };
+ statusline.lualine.enable = true;
+ syntaxHighlighting = true;
+ };
+ };
+ ssh.enable = true;
+ };
+ services.gpg-agent = {
+ enable = true;
+ pinentry.package = pkgs.pinentry-curses;
+ };
+ xdg = {
+ portal = {
+ enable = true;
+ extraPortals = [pkgs.xdg-desktop-portal-shana];
+ };
+ };
+}