summaryrefslogtreecommitdiff
path: root/nix/home.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/home.nix')
-rw-r--r--nix/home.nix220
1 files changed, 220 insertions, 0 deletions
diff --git a/nix/home.nix b/nix/home.nix
new file mode 100644
index 0000000..e842e34
--- /dev/null
+++ b/nix/home.nix
@@ -0,0 +1,220 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ sources = import ./npins;
+ background-path = ".config/sway/background.png";
+ sway_config =
+ pkgs.substitute
+ {
+ src = ./home/sway_config;
+ substitutions = [
+ "--replace"
+ "@backgroundImagePath@"
+ "${config.home.homeDirectory}/${background-path}"
+ ];
+ };
+in {
+ home = {
+ file = {
+ ${background-path}.source = config.stylix.image;
+ ".profile".enable = false;
+ };
+ homeDirectory = "/home/${config.home.username}";
+ packages = [
+ pkgs.aaaaxy
+ #pkgs.acpi
+ (pkgs.callPackage "${sources.agenix}/pkgs/agenix.nix" {})
+ #pkgs.alacritty
+ pkgs.anki
+ #(import "${sources.anki-cli}/package.nix")
+ #pkgs.c3term
+ #pkgs.brightnessctl
+ #pkgs.dust
+ pkgs.fluffychat
+ #pkgs.fzf
+ #pkgs.gdb
+ pkgs.glow
+ #pkgs.grim
+ #pkgs.hexdump
+ pkgs.http-server
+ #pkgs.jmtpfs
+ pkgs.mindustry-wayland
+ #pkgs.nasm
+ pkgs.nix-output-monitor
+ pkgs.npins
+ #pkgs.pciutils
+ #pkgs.ranger
+ pkgs.rip2
+ #pkgs.ripgrep
+ #pkgs.slurp
+ #pkgs.tokei
+ #pkgs.tree
+ #pkgs.usbutils
+ #pkgs.wget
+ #pkgs.xxd
+ ];
+ stateVersion = "26.05";
+ username = "andromeda";
+ };
+ imports = [
+ (import sources.nvf).homeManagerModules.nvf
+ (import sources.stylix).homeModules.stylix
+ ];
+ 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";
+ };
+ };
+ };
+ gh.enable = true;
+ 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;
+ };
+ stylix = {
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-hard.yaml";
+ enable = true;
+ fonts = {
+ emoji = {
+ name = "Noto Color Emoji";
+ package = pkgs.noto-fonts-color-emoji;
+ };
+ monospace = {
+ name = "Miracode";
+ package = pkgs.miracode;
+ };
+ serif = config.stylix.fonts.sansSerif;
+ sizes = {
+ applications = 10;
+ terminal = 10;
+ };
+ };
+ image = "${pkgs.nixos-artwork.wallpapers.gear}/share/backgrounds/nixos/nix-wallpaper-gear.png";
+ polarity = "dark";
+ cursor = {
+ name = "Hackneyed";
+ package = pkgs.hackneyed;
+ size = 16;
+ };
+ };
+ wayland.windowManager.sway.enable = true;
+ xdg = {
+ configFile = {
+ "sway/config".source = lib.mkForce sway_config;
+ };
+ portal = {
+ enable = true;
+ extraPortals = [pkgs.xdg-desktop-portal-shana];
+ };
+ };
+}