diff --git a/flake.nix b/flake.nix index 49ff53f..8ba9f81 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ }; homeConfigurations = { ivand = home-manager.lib.homeManagerConfiguration { - modules = [ ./home/laptop.nix nix-doom-emacs.hmModule ]; + modules = [ ./home/laptop nix-doom-emacs.hmModule ]; pkgs = import nixpkgs { system = "x86_64-linux"; }; }; }; diff --git a/home/cfg/doom.d/config.el b/home/cfg/doom.d/config.el deleted file mode 100644 index e69de29..0000000 diff --git a/home/cfg/doom.d/packages.el b/home/cfg/doom.d/packages.el deleted file mode 100644 index e69de29..0000000 diff --git a/home/laptop.nix b/home/laptop.nix index d97e6b7..865d469 100644 --- a/home/laptop.nix +++ b/home/laptop.nix @@ -1,186 +1,5 @@ -{ pkgs, lib, ... }: { - home = { - username = "ivand"; - homeDirectory = "/home/ivand"; - stateVersion = "23.05"; - sessionPath = [ "$HOME/.local/bin/" "$HOME/.local/share/pnpm" ]; - pointerCursor = { - name = "Bibata-Modern-Amber"; - package = pkgs.bibata-cursors; - }; - file = { - ".local/bin/ec" = { - text = '' - #!/usr/bin/env bash - emacsclient -c -a 'emacs' - ''; - executable = true; - }; - }; - packages = with pkgs; [ - bemenu - brave - direnv - gopass - gopass-jsonapi - pavucontrol - nixfmt - sqlite - ripgrep - ]; - }; - programs = { - home-manager = { enable = true; }; - git = { - enable = true; - userName = "Ivan Dimitrov"; - userEmail = "ivan@idimitrov.dev"; - extraConfig = { - color.ui = "auto"; - pull.rebase = true; - }; - }; - kitty = { - enable = true; - settings = { - enable_tab_bar = false; - background_opacity = "0.96"; - }; - }; - tmux = { - enable = true; - clock24 = true; - plugins = with pkgs.tmuxPlugins; [ tilish catppuccin ]; - extraConfig = '' - set -g default-command "''${SHELL}" - set -g default-terminal "tmux-256color" - set -g base-index 1 - set -s escape-time 0 - ''; - }; - swaylock = { - enable = true; - settings = { - color = "000000"; - line-color = "ffffff"; - show-failed-attempts = true; - }; - }; - neovim = { - enable = true; - viAlias = true; - extraPackages = with pkgs; [ - alejandra - black - go - gopls - libclang - lua - lua-language-server - nodePackages_latest.prettier - nodePackages_latest.typescript - nodePackages_latest.typescript-language-server - nodePackages_latest."@tailwindcss/language-server" - nodePackages_latest."@prisma/language-server" - python311Packages.python-lsp-black - python311Packages.python-lsp-server - ripgrep - rnix-lsp - stylua - ]; - plugins = with pkgs.vimPlugins; [ - nvim-surround - nvim-ts-autotag - vim-prisma - autoclose-nvim - barbar-nvim - cmp-nvim-lsp - comment-nvim - gitsigns-nvim - luasnip - nightfox-nvim - nvim-cmp - nvim-lspconfig - nvim-treesitter.withAllGrammars - nvim-web-devicons - plenary-nvim - telescope-nvim - telescope-nvim - toggleterm-nvim - vim-vinegar - ]; - extraLuaConfig = lib.fileContents ./cfg/nvim/init.lua; - }; - doom-emacs = { - enable = true; - doomPrivateDir = ./cfg/doom.d; - }; - zsh = { - enable = true; - syntaxHighlighting.enable = true; - enableAutosuggestions = true; - loginExtra = '' - [ "$(tty)" = "/dev/tty1" ] && exec sway - ''; - shellAliases = { - gad = "git add . && git diff --cached"; - gac = "ga && gc"; - ga = "git add ."; - gc = "git commit"; - dev = "nix develop --command $SHELL"; - }; - history = { - size = 1000; - save = 1000; - expireDuplicatesFirst = true; - }; - plugins = [ - { - name = "zsh-powerlevel10k"; - src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k"; - file = "powerlevel10k.zsh-theme"; - } - { - name = "zsh-nix-shell"; - file = "nix-shell.plugin.zsh"; - src = "${pkgs.zsh-nix-shell}/share/zsh-nix-shell"; - } - ]; - initExtra = '' - source "$HOME/.p10k.zsh" - eval "$(direnv hook zsh)" - ''; - }; - obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; - }; - }; - wayland = { - windowManager.sway = { - enable = true; - config = null; - extraConfig = builtins.readFile ./cfg/sway/config; - }; - }; - xdg.configFile = { - "nix/nix.conf" = { - text = '' - experimental-features = nix-command flakes - ''; - }; - "user-dirs.dirs" = { - source = pkgs.writeText "user-dirs.dirs" '' - XDG_DESKTOP_DIR="dt" - XDG_DOCUMENTS_DIR="doc" - XDG_DOWNLOAD_DIR="dl" - XDG_MUSIC_DIR="snd" - XDG_PICTURES_DIR="pic" - XDG_PUBLICSHARE_DIR="pub" - XDG_TEMPLATES_DIR="tp" - XDG_VIDEOS_DIR="vid" - ''; - }; - }; - services = { emacs = { enable = true; }; }; +{ config, lib, pkgs, ... }: + +{ + } diff --git a/home/laptop/default.nix b/home/laptop/default.nix new file mode 100644 index 0000000..53f1072 --- /dev/null +++ b/home/laptop/default.nix @@ -0,0 +1,5 @@ +{ ... }: { + imports = [ + ./home.nix + ]; +} diff --git a/home/laptop/home.nix b/home/laptop/home.nix new file mode 100644 index 0000000..2e7a169 --- /dev/null +++ b/home/laptop/home.nix @@ -0,0 +1,51 @@ +{ pkgs, lib, ... }: { + imports = [ ./programs ./packages ]; + home = { + username = "ivand"; + homeDirectory = "/home/ivand"; + stateVersion = "23.05"; + sessionPath = [ "$HOME/.local/bin/" "$HOME/.local/share/pnpm" ]; + pointerCursor = { + name = "Bibata-Modern-Amber"; + package = pkgs.bibata-cursors; + }; + file = { + ".local/bin/ec" = { + text = '' + #!/usr/bin/env bash + emacsclient -c -a 'emacs' + ''; + executable = true; + }; + }; + }; + programs.home-manager = { enable = true; }; + + wayland = { + windowManager.sway = { + enable = true; + config = null; + extraConfig = builtins.readFile ../cfg/sway/config; + }; + }; + xdg.configFile = { + "nix/nix.conf" = { + text = '' + experimental-features = nix-command flakes + ''; + }; + "user-dirs.dirs" = { + source = pkgs.writeText "user-dirs.dirs" '' + XDG_DESKTOP_DIR="dt" + XDG_DOCUMENTS_DIR="doc" + XDG_DOWNLOAD_DIR="dl" + XDG_MUSIC_DIR="snd" + XDG_PICTURES_DIR="pic" + XDG_PUBLICSHARE_DIR="pub" + XDG_TEMPLATES_DIR="tp" + XDG_VIDEOS_DIR="vid" + ''; + }; + }; + services = { emacs = { enable = true; }; }; +} diff --git a/home/laptop/packages/default.nix b/home/laptop/packages/default.nix new file mode 100644 index 0000000..a74c22b --- /dev/null +++ b/home/laptop/packages/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + bemenu + brave + direnv + gopass + gopass-jsonapi + pavucontrol + nixfmt + sqlite + ripgrep + ]; +} diff --git a/home/laptop/programs/default.nix b/home/laptop/programs/default.nix new file mode 100644 index 0000000..2f6eeca --- /dev/null +++ b/home/laptop/programs/default.nix @@ -0,0 +1,3 @@ +{ ... }: { + imports = [ ./neovim ./doom-emacs ./git.nix ./tmux.nix ./kitty.nix ./swaylock.nix ./zsh.nix ./obs.nix ]; +} diff --git a/home/laptop/programs/doom-emacs/default.nix b/home/laptop/programs/doom-emacs/default.nix new file mode 100644 index 0000000..0629ef8 --- /dev/null +++ b/home/laptop/programs/doom-emacs/default.nix @@ -0,0 +1,5 @@ +{ ... }: { + imports = [ + ./doom.nix + ]; +} diff --git a/home/laptop/programs/doom-emacs/doom.d/config.el b/home/laptop/programs/doom-emacs/doom.d/config.el new file mode 100644 index 0000000..00deb55 --- /dev/null +++ b/home/laptop/programs/doom-emacs/doom.d/config.el @@ -0,0 +1,9 @@ +;;; config.el --- the emacs config +;;; Commentary: + +;;; Code: +(setq doom-theme 'doom-tokyo-night) + +(use-package! lsp-tailwindcss) + +;;; config.el ends here diff --git a/home/cfg/doom.d/init.el b/home/laptop/programs/doom-emacs/doom.d/init.el similarity index 100% rename from home/cfg/doom.d/init.el rename to home/laptop/programs/doom-emacs/doom.d/init.el diff --git a/home/laptop/programs/doom-emacs/doom.d/packages.el b/home/laptop/programs/doom-emacs/doom.d/packages.el new file mode 100644 index 0000000..95dbeaf --- /dev/null +++ b/home/laptop/programs/doom-emacs/doom.d/packages.el @@ -0,0 +1,8 @@ +;;; packages.el --- a list of packages +;;; Commentary: + +;;; Code: +(package! lsp-tailwindcss :recipe (:host github :repo "merrickluo/lsp-tailwindcss")) + + +;;; packages.el ends here diff --git a/home/laptop/programs/doom-emacs/doom.nix b/home/laptop/programs/doom-emacs/doom.nix new file mode 100644 index 0000000..06579c5 --- /dev/null +++ b/home/laptop/programs/doom-emacs/doom.nix @@ -0,0 +1,6 @@ +{ pkgs, lib, ... }: { + programs.doom-emacs = { + enable = true; + doomPrivateDir = ./doom.d; + }; +} diff --git a/home/laptop/programs/git.nix b/home/laptop/programs/git.nix new file mode 100644 index 0000000..231b963 --- /dev/null +++ b/home/laptop/programs/git.nix @@ -0,0 +1,11 @@ +{ pkgs, lib, ... }: { + programs.git = { + enable = true; + userName = "Ivan Dimitrov"; + userEmail = "ivan@idimitrov.dev"; + extraConfig = { + color.ui = "auto"; + pull.rebase = true; + }; + }; +} diff --git a/home/laptop/programs/kitty.nix b/home/laptop/programs/kitty.nix new file mode 100644 index 0000000..218d034 --- /dev/null +++ b/home/laptop/programs/kitty.nix @@ -0,0 +1,9 @@ +{ pkgs, lib, ... }: { + programs.kitty = { + enable = true; + settings = { + enable_tab_bar = false; + background_opacity = "0.96"; + }; + }; +} diff --git a/home/laptop/programs/neovim/default.nix b/home/laptop/programs/neovim/default.nix new file mode 100644 index 0000000..c955873 --- /dev/null +++ b/home/laptop/programs/neovim/default.nix @@ -0,0 +1,5 @@ +{ ... }: { + imports = [ + ./neovim.nix + ]; +} diff --git a/home/laptop/programs/neovim/neovim.nix b/home/laptop/programs/neovim/neovim.nix new file mode 100644 index 0000000..776a590 --- /dev/null +++ b/home/laptop/programs/neovim/neovim.nix @@ -0,0 +1,47 @@ +{ pkgs, lib, ... }: { + programs.neovim = { + enable = true; + viAlias = true; + extraPackages = with pkgs; [ + alejandra + black + go + gopls + libclang + lua + lua-language-server + nodePackages_latest.prettier + nodePackages_latest.typescript + nodePackages_latest.typescript-language-server + nodePackages_latest."@tailwindcss/language-server" + nodePackages_latest."@prisma/language-server" + python311Packages.python-lsp-black + python311Packages.python-lsp-server + ripgrep + rnix-lsp + stylua + ]; + plugins = with pkgs.vimPlugins; [ + nvim-surround + nvim-ts-autotag + vim-prisma + autoclose-nvim + barbar-nvim + cmp-nvim-lsp + comment-nvim + gitsigns-nvim + luasnip + nightfox-nvim + nvim-cmp + nvim-lspconfig + nvim-treesitter.withAllGrammars + nvim-web-devicons + plenary-nvim + telescope-nvim + telescope-nvim + toggleterm-nvim + vim-vinegar + ]; + extraLuaConfig = lib.fileContents ./nvim/init.lua; + }; +} diff --git a/home/cfg/nvim/init.lua b/home/laptop/programs/neovim/nvim/init.lua similarity index 100% rename from home/cfg/nvim/init.lua rename to home/laptop/programs/neovim/nvim/init.lua diff --git a/home/laptop/programs/obs.nix b/home/laptop/programs/obs.nix new file mode 100644 index 0000000..5e6a59c --- /dev/null +++ b/home/laptop/programs/obs.nix @@ -0,0 +1,6 @@ +{ pkgs, lib, ... }: { + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ wlrobs ]; + }; +} diff --git a/home/laptop/programs/swaylock.nix b/home/laptop/programs/swaylock.nix new file mode 100644 index 0000000..19c0081 --- /dev/null +++ b/home/laptop/programs/swaylock.nix @@ -0,0 +1,10 @@ +{ pkgs, lib, ... }: { + programs.swaylock = { + enable = true; + settings = { + color = "000000"; + line-color = "ffffff"; + show-failed-attempts = true; + }; + }; +} diff --git a/home/laptop/programs/tmux.nix b/home/laptop/programs/tmux.nix new file mode 100644 index 0000000..e47ce2d --- /dev/null +++ b/home/laptop/programs/tmux.nix @@ -0,0 +1,13 @@ +{ pkgs, lib, ... }: { + programs.tmux = { + enable = true; + clock24 = true; + plugins = with pkgs.tmuxPlugins; [ tilish catppuccin ]; + extraConfig = '' + set -g default-command "''${SHELL}" + set -g default-terminal "tmux-256color" + set -g base-index 1 + set -s escape-time 0 + ''; + }; +} diff --git a/home/laptop/programs/zsh.nix b/home/laptop/programs/zsh.nix new file mode 100644 index 0000000..4020f6c --- /dev/null +++ b/home/laptop/programs/zsh.nix @@ -0,0 +1,38 @@ +{ pkgs, lib, ... }: { + programs.zsh = { + enable = true; + syntaxHighlighting.enable = true; + enableAutosuggestions = true; + loginExtra = '' + [ "$(tty)" = "/dev/tty1" ] && exec sway + ''; + shellAliases = { + gad = "git add . && git diff --cached"; + gac = "ga && gc"; + ga = "git add ."; + gc = "git commit"; + dev = "nix develop --command $SHELL"; + }; + history = { + size = 1000; + save = 1000; + expireDuplicatesFirst = true; + }; + plugins = [ + { + name = "zsh-powerlevel10k"; + src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k"; + file = "powerlevel10k.zsh-theme"; + } + { + name = "zsh-nix-shell"; + file = "nix-shell.plugin.zsh"; + src = "${pkgs.zsh-nix-shell}/share/zsh-nix-shell"; + } + ]; + initExtra = '' + source "$HOME/.p10k.zsh" + eval "$(direnv hook zsh)" + ''; + }; +}