diff options
| author | seth <[email protected]> | 2023-08-17 13:46:41 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2023-08-17 13:55:47 -0400 |
| commit | 6ca79241fe6a45ca4468e4c54c778df116c0b14f (patch) | |
| tree | ca6bbd7eaec86125c0e59a2553922ea4ef4a2b9b /users/seth | |
| parent | 76127171e4ed7abcb2a14039f358e117aac20181 (diff) | |
users/seth: make everything a module
Diffstat (limited to 'users/seth')
| -rw-r--r-- | users/seth/default.nix | 2 | ||||
| -rw-r--r-- | users/seth/desktop/budgie/default.nix | 6 | ||||
| -rw-r--r-- | users/seth/desktop/default.nix | 37 | ||||
| -rw-r--r-- | users/seth/desktop/gnome/default.nix | 6 | ||||
| -rw-r--r-- | users/seth/desktop/plasma/default.nix | 6 | ||||
| -rw-r--r-- | users/seth/home.nix | 5 | ||||
| -rw-r--r-- | users/seth/module.nix | 7 | ||||
| -rw-r--r-- | users/seth/programs/chromium.nix | 26 | ||||
| -rw-r--r-- | users/seth/programs/default.nix | 72 | ||||
| -rw-r--r-- | users/seth/programs/firefox.nix | 28 | ||||
| -rw-r--r-- | users/seth/programs/git.nix | 46 | ||||
| -rw-r--r-- | users/seth/programs/gpg.nix | 29 | ||||
| -rw-r--r-- | users/seth/programs/mangohud.nix | 36 | ||||
| -rw-r--r-- | users/seth/programs/neovim/default.nix | 130 | ||||
| -rw-r--r-- | users/seth/programs/ssh.nix | 80 | ||||
| -rw-r--r-- | users/seth/programs/vim.nix | 64 |
16 files changed, 339 insertions, 241 deletions
diff --git a/users/seth/default.nix b/users/seth/default.nix index 3ea6771..535f88e 100644 --- a/users/seth/default.nix +++ b/users/seth/default.nix @@ -29,7 +29,7 @@ home-manager.users.seth = { imports = [ ./home.nix - ./desktop + ./module.nix nix-index-database.hmModules.nix-index ]; diff --git a/users/seth/desktop/budgie/default.nix b/users/seth/desktop/budgie/default.nix index 66a5467..7eced2b 100644 --- a/users/seth/desktop/budgie/default.nix +++ b/users/seth/desktop/budgie/default.nix @@ -4,8 +4,8 @@ pkgs, ... }: let - cfg = config.desktop.budgie; - inherit (lib) mkEnableOption mkIf; + cfg = config.getchoo.desktop.budgie; + inherit (lib) mkIf; fromYaml = file: let json = with pkgs; runCommand "converted.json" {} '' @@ -14,8 +14,6 @@ in with builtins; fromJSON (readFile json); in { - options.desktop.budgie.enable = mkEnableOption "enable budgie"; - config = mkIf cfg.enable { programs.alacritty = { enable = true; diff --git a/users/seth/desktop/default.nix b/users/seth/desktop/default.nix index 8960d88..bdcef3d 100644 --- a/users/seth/desktop/default.nix +++ b/users/seth/desktop/default.nix @@ -5,24 +5,27 @@ osConfig, ... }: let - cfg = config.desktop; - inherit (lib) mkEnableOption mkIf; - + cfg = config.getchoo.desktop; desktops = ["budgie" "gnome" "plasma"]; + inherit (lib) mkEnableOption mkIf; in { imports = [ ./budgie ./gnome ./plasma - ../programs/mangohud.nix - ../programs/firefox.nix ]; - options.desktop.enable = mkEnableOption "desktop configuration" // {default = osConfig.desktop.enable or false;}; + options.getchoo.desktop = + { + enable = mkEnableOption "desktop configuration" // {default = osConfig.desktop.enable or false;}; + } + // lib.genAttrs desktops (desktop: { + enable = + mkEnableOption desktop + // {default = osConfig.desktop.${desktop}.enable or false;}; + }); config = mkIf cfg.enable { - desktop = lib.genAttrs desktops (desktop: {enable = osConfig.desktop.${desktop}.enable or false;}); - home.packages = with pkgs; [ discord element-desktop @@ -31,20 +34,10 @@ in { prismlauncher ]; - programs = { - chromium = { - enable = true; - # hw accel support - commandLineArgs = [ - "--ignore-gpu-blocklist" - "--enable-gpu-rasterization" - "--enable-gpu-compositing" - "--enable-native-gpu-memory-buffers" - "--enable-zero-copy" - "--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization,RawDraw,WebRTCPipeWireCapturer,Vulkan,WaylandWindowDecorations,WebUIDarkMode" - "--force-dark-mode" - ]; - }; + getchoo.programs = { + chromium.enable = true; + firefox.enable = true; + mangohud.enable = true; }; }; } diff --git a/users/seth/desktop/gnome/default.nix b/users/seth/desktop/gnome/default.nix index 71acdba..26b91df 100644 --- a/users/seth/desktop/gnome/default.nix +++ b/users/seth/desktop/gnome/default.nix @@ -4,11 +4,9 @@ pkgs, ... }: let - cfg = config.desktop.gnome; - inherit (lib) mkEnableOption mkIf; + cfg = config.getchoo.desktop.gnome; + inherit (lib) mkIf; in { - options.desktop.gnome.enable = mkEnableOption "enable gnome"; - config = mkIf cfg.enable { home.packages = with pkgs; [adw-gtk3] diff --git a/users/seth/desktop/plasma/default.nix b/users/seth/desktop/plasma/default.nix index f19f2c1..4f59528 100644 --- a/users/seth/desktop/plasma/default.nix +++ b/users/seth/desktop/plasma/default.nix @@ -4,11 +4,9 @@ pkgs, ... }: let - cfg = config.desktop.plasma; - inherit (lib) mkEnableOption mkIf; + cfg = config.getchoo.desktop.plasma; + inherit (lib) mkIf; in { - options.desktop.plasma.enable = mkEnableOption "enable plasma"; - config = mkIf cfg.enable { home.packages = with pkgs; [ catppuccin-cursors diff --git a/users/seth/home.nix b/users/seth/home.nix index c24472b..e242a3e 100644 --- a/users/seth/home.nix +++ b/users/seth/home.nix @@ -3,11 +3,6 @@ pkgs, ... }: { - imports = [ - ./programs - ./shell - ]; - home = let username = "seth"; inherit (pkgs.stdenv) isLinux isDarwin; diff --git a/users/seth/module.nix b/users/seth/module.nix new file mode 100644 index 0000000..9a9a12d --- /dev/null +++ b/users/seth/module.nix @@ -0,0 +1,7 @@ +_: { + imports = [ + ./desktop + ./programs + ./shell + ]; +} diff --git a/users/seth/programs/chromium.nix b/users/seth/programs/chromium.nix new file mode 100644 index 0000000..de61719 --- /dev/null +++ b/users/seth/programs/chromium.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + ... +}: let + cfg = config.getchoo.programs.chromium; + inherit (lib) mkEnableOption mkIf; +in { + options.getchoo.programs.chromium.enable = mkEnableOption "chromium" // {default = config.getchoo.desktop.enable;}; + + config = mkIf cfg.enable { + programs.chromium = { + enable = true; + # hw accel support + commandLineArgs = [ + "--ignore-gpu-blocklist" + "--enable-gpu-rasterization" + "--enable-gpu-compositing" + "--enable-native-gpu-memory-buffers" + "--enable-zero-copy" + "--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization,RawDraw,WebRTCPipeWireCapturer,Vulkan,WaylandWindowDecorations,WebUIDarkMode" + "--force-dark-mode" + ]; + }; + }; +} diff --git a/users/seth/programs/default.nix b/users/seth/programs/default.nix index 1a13160..2b0dc26 100644 --- a/users/seth/programs/default.nix +++ b/users/seth/programs/default.nix @@ -1,44 +1,60 @@ -{pkgs, ...}: { +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.getchoo.programs.defaultPrograms; + inherit (lib) mkDefault mkEnableOption mkIf; +in { + options.getchoo.programs.defaultPrograms.enable = mkEnableOption "default programs" // {enable = true;}; + imports = [ + ./chromium.nix + ./firefox.nix ./git.nix ./gpg.nix + ./mangohud.nix ./neovim ./ssh.nix ./vim.nix ]; - home.packages = with pkgs; [ - fd - gh - nix-your-shell - nurl - rclone - restic - ripgrep - ]; + config = mkIf cfg.enable { + home.packages = with pkgs; [ + fd + nix-your-shell + nurl + rclone + restic + ]; - programs = { - btop.enable = true; + programs = { + btop.enable = mkDefault true; - direnv = { - enable = true; - nix-direnv = { - enable = true; + direnv = { + enable = mkDefault true; + nix-direnv.enable = mkDefault true; }; - }; - nix-index-database.comma.enable = true; - }; + ripgrep.enable = mkDefault true; + + nix-index-database.comma.enable = mkDefault true; + }; - xdg = { - enable = true; - configFile."btop/themes/catppuccin_mocha.theme".source = - pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "btop"; - rev = "ecb8562bb6181bb9f2285c360bbafeb383249ec3"; - sha256 = "sha256-ovVtupO5jWUw6cwA3xEzRe1juUB8ykfarMRVTglx3mk="; + xdg = + { + enable = mkDefault true; } - + "/catppuccin_mocha.theme"; + // (mkIf cfg.programs.btop.enable { + configFile."btop/themes/catppuccin_mocha.theme".source = + pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "btop"; + rev = "ecb8562bb6181bb9f2285c360bbafeb383249ec3"; + sha256 = "sha256-ovVtupO5jWUw6cwA3xEzRe1juUB8ykfarMRVTglx3mk="; + } + + "/catppuccin_mocha.theme"; + }); }; } diff --git a/users/seth/programs/firefox.nix b/users/seth/programs/firefox.nix index 3f28d56..ed66a27 100644 --- a/users/seth/programs/firefox.nix +++ b/users/seth/programs/firefox.nix @@ -4,19 +4,23 @@ pkgs, ... }: let - cfg = config.desktop; - inherit (lib) mkIf; + cfg = config.getchoo.programs.firefox; + inherit (lib) mkEnableOption mkIf; in { - config.programs.firefox = mkIf cfg.enable { - enable = true; - profiles.arkenfox = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - bitwarden - floccus - private-relay - ublock-origin - ]; - isDefault = true; + options.getchoo.programs.firefox.enable = mkEnableOption "firefox" // {default = config.getchoo.desktop.enable;}; + + config = mkIf cfg.enable { + programs.firefox = { + enable = true; + profiles.arkenfox = { + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + bitwarden + floccus + private-relay + ublock-origin + ]; + isDefault = true; + }; }; }; } diff --git a/users/seth/programs/git.nix b/users/seth/programs/git.nix index f496f90..290a1e8 100644 --- a/users/seth/programs/git.nix +++ b/users/seth/programs/git.nix @@ -1,17 +1,39 @@ -_: { - programs.git = { - enable = true; +{ + config, + lib, + ... +}: let + cfg = config.getchoo.programs.git; + inherit (lib) mkEnableOption mkIf; +in { + options.getchoo.programs.git.enable = mkEnableOption "git" // {default = true;}; - extraConfig = { - init = {defaultBranch = "main";}; - }; + config = mkIf cfg.enable { + programs = { + gh = { + enable = true; + settings = { + git_protocol = "ssh"; + editor = "nvim"; + prompt = "enabled"; + }; + }; - signing = { - key = "D31BD0D494BBEE86"; - signByDefault = true; - }; + git = { + enable = true; + + extraConfig = { + init = {defaultBranch = "main";}; + }; - userEmail = "[email protected]"; - userName = "seth"; + signing = { + key = "D31BD0D494BBEE86"; + signByDefault = true; + }; + + userEmail = "[email protected]"; + userName = "seth"; + }; + }; }; } diff --git a/users/seth/programs/gpg.nix b/users/seth/programs/gpg.nix index 3fba0d3..f4f1a33 100644 --- a/users/seth/programs/gpg.nix +++ b/users/seth/programs/gpg.nix @@ -4,19 +4,26 @@ pkgs, osConfig, ... -}: { - programs.gpg.enable = true; +}: let + cfg = config.getchoo.programs.gpg; + inherit (lib) mkEnableOption mkIf; +in { + options.getchoo.programs.gpg.enable = mkEnableOption "gpg" // {default = true;}; - services.gpg-agent = lib.mkIf pkgs.stdenv.isLinux { - enable = true; + config = mkIf cfg.enable { + programs.gpg.enable = true; - enableBashIntegration = config.programs.bash.enable; - enableFishIntegration = config.programs.fish.enable; - enableZshIntegration = config.programs.zsh.enable; + services.gpg-agent = lib.mkIf pkgs.stdenv.isLinux { + enable = true; - pinentryFlavor = - if osConfig ? programs - then osConfig.programs.gnupg.agent.pinentryFlavor or "curses" - else "curses"; + enableBashIntegration = config.programs.bash.enable; + enableFishIntegration = config.programs.fish.enable; + enableZshIntegration = config.programs.zsh.enable; + + pinentryFlavor = + if osConfig ? programs + then osConfig.programs.gnupg.agent.pinentryFlavor or "curses" + else "curses"; + }; }; } diff --git a/users/seth/programs/mangohud.nix b/users/seth/programs/mangohud.nix index 6d325b2..1ab8bb0 100644 --- a/users/seth/programs/mangohud.nix +++ b/users/seth/programs/mangohud.nix @@ -1,27 +1,29 @@ { config, lib, - pkgs, ... }: let - cfg = config.desktop; - inherit (lib) mkIf; + cfg = config.getchoo.programs.mangohud; + inherit (lib) mkEnableOption mkIf; in { - config = mkIf cfg.enable { - home.packages = with pkgs; [mangohud]; + options.getchoo.programs.mangohud.enable = + mkEnableOption "mangohud" + // {default = config.getchoo.desktop.enable;}; - xdg.configFile."MangoHud/MangoHud.conf" = { - text = '' - legacy_layout=false - cpu_stats - cpu_temp - gpu_stats - gpu_temp - fps - frametime - media_player - media_player_name = spotify - ''; + config = mkIf cfg.enable { + programs.mangohud = { + enable = true; + settings = { + legacy_layout = false; + cpu_stats = true; + cpu_temp = true; + gpu_stats = true; + gpu_temp = true; + fps = true; + frametime = true; + media_player = true; + media_player_name = "spotify"; + }; }; }; } diff --git a/users/seth/programs/neovim/default.nix b/users/seth/programs/neovim/default.nix index 995d154..fe7edd3 100644 --- a/users/seth/programs/neovim/default.nix +++ b/users/seth/programs/neovim/default.nix @@ -1,62 +1,74 @@ -{pkgs, ...}: { - programs.neovim = { - enable = true; - defaultEditor = true; - extraPackages = with pkgs; [ - actionlint - alejandra - beautysh - codespell - deadnix - just - nil - nodePackages.alex - shellcheck - statix - stylua - sumneko-lua-language-server - ]; - plugins = with pkgs.vimPlugins; [ - bufferline-nvim - catppuccin-nvim - cmp-nvim-lsp - cmp-buffer - cmp_luasnip - cmp-path - editorconfig-nvim - # TODO: don't pin when deprecation notice - # is no longer in nixpkgs - (fidget-nvim.overrideAttrs (_: { - src = pkgs.fetchFromGitHub { - owner = "j-hui"; - repo = "fidget.nvim"; - rev = "41f327b53c7977d47aee56f05e0bdbb4b994c5eb"; - hash = "sha256-v9qARsW8Gozit4Z3+igiemjI467QgRhwM+crqwO9r6U="; - }; - })) - gitsigns-nvim - leap-nvim - lualine-nvim - luasnip - nvim-autopairs - nvim-cmp - nvim-lspconfig - null-ls-nvim - nvim-tree-lua - nvim-treesitter.withAllGrammars - nvim-web-devicons - pkgs.vim-just - plenary-nvim - telescope-nvim - trouble-nvim - ]; - extraLuaConfig = '' - require("getchoo") - ''; - }; +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.getchoo.programs.neovim; + inherit (lib) mkEnableOption mkIf; +in { + options.getchoo.programs.neovim.enable = mkEnableOption "neovim" // {default = true;}; + + config = mkIf cfg.enable { + programs.neovim = { + enable = true; + defaultEditor = true; + extraPackages = with pkgs; [ + actionlint + alejandra + beautysh + codespell + deadnix + just + nil + nodePackages.alex + shellcheck + statix + stylua + sumneko-lua-language-server + ]; + plugins = with pkgs.vimPlugins; [ + bufferline-nvim + catppuccin-nvim + cmp-nvim-lsp + cmp-buffer + cmp_luasnip + cmp-path + editorconfig-nvim + # TODO: don't pin when deprecation notice + # is no longer in nixpkgs + (fidget-nvim.overrideAttrs (_: { + src = pkgs.fetchFromGitHub { + owner = "j-hui"; + repo = "fidget.nvim"; + rev = "41f327b53c7977d47aee56f05e0bdbb4b994c5eb"; + hash = "sha256-v9qARsW8Gozit4Z3+igiemjI467QgRhwM+crqwO9r6U="; + }; + })) + gitsigns-nvim + leap-nvim + lualine-nvim + luasnip + nvim-autopairs + nvim-cmp + nvim-lspconfig + null-ls-nvim + nvim-tree-lua + nvim-treesitter.withAllGrammars + nvim-web-devicons + pkgs.vim-just + plenary-nvim + telescope-nvim + trouble-nvim + ]; + extraLuaConfig = '' + require("getchoo") + ''; + }; - xdg.configFile."nvim/lua/getchoo" = { - source = ./config; - recursive = true; + xdg.configFile."nvim/lua/getchoo" = { + source = ./config; + recursive = true; + }; }; } diff --git a/users/seth/programs/ssh.nix b/users/seth/programs/ssh.nix index 69a7b57..7be5f0e 100644 --- a/users/seth/programs/ssh.nix +++ b/users/seth/programs/ssh.nix @@ -1,48 +1,56 @@ { config, + lib, pkgs, ... -}: { - programs.ssh = { - enable = true; - package = pkgs.openssh; - - matchBlocks = let - sshDir = "${config.home.homeDirectory}/.ssh"; - in { - # git forges - "github.com" = { - identityFile = "${sshDir}/github"; - user = "git"; - }; +}: let + cfg = config.getchoo.programs.ssh; + inherit (lib) mkEnableOption mkIf; +in { + options.getchoo.programs.ssh.enable = mkEnableOption "ssh" // {default = true;}; - "codeberg.org" = { - identityFile = "${sshDir}/codeberg"; - user = "git"; - }; + config = mkIf cfg.enable { + programs.ssh = { + enable = true; + package = pkgs.openssh; - # linux packaging - "aur.archlinux.org" = { - identityFile = "${sshDir}/aur"; - user = "aur"; - }; + matchBlocks = let + sshDir = "${config.home.homeDirectory}/.ssh"; + in { + # git forges + "github.com" = { + identityFile = "${sshDir}/github"; + user = "git"; + }; - "pagure.io" = { - identityFile = "${sshDir}/copr"; - user = "git"; - }; + "codeberg.org" = { + identityFile = "${sshDir}/codeberg"; + user = "git"; + }; - # router - "192.168.1.1" = { - identityFile = "${sshDir}/openwrt"; - user = "root"; - }; + # linux packaging + "aur.archlinux.org" = { + identityFile = "${sshDir}/aur"; + user = "aur"; + }; - # servers - "atlas".user = "atlas"; - "p-body".user = "p-body"; + "pagure.io" = { + identityFile = "${sshDir}/copr"; + user = "git"; + }; + + # router + "192.168.1.1" = { + identityFile = "${sshDir}/openwrt"; + user = "root"; + }; + + # servers + "atlas".user = "atlas"; + "p-body".user = "p-body"; + }; }; - }; - services.ssh-agent.enable = pkgs.stdenv.isLinux; + services.ssh-agent.enable = pkgs.stdenv.isLinux; + }; } diff --git a/users/seth/programs/vim.nix b/users/seth/programs/vim.nix index 68062a7..0f81cfb 100644 --- a/users/seth/programs/vim.nix +++ b/users/seth/programs/vim.nix @@ -1,31 +1,43 @@ -{pkgs, ...}: { - programs.vim = { - enable = true; - packageConfigurable = pkgs.vim; - settings = { - expandtab = false; - shiftwidth = 2; - tabstop = 2; - }; - extraConfig = '' - " https://wiki.archlinux.org/title/XDG_Base_Directory - set runtimepath^=$XDG_CONFIG_HOME/vim - set runtimepath+=$XDG_DATA_HOME/vim - set runtimepath+=$XDG_CONFIG_HOME/vim/after +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.getchoo.programs.vim; + inherit (lib) mkEnableOption mkIf; +in { + options.getchoo.programs.vim.enable = mkEnableOption "vim" // {default = true;}; + + config = mkIf cfg.enable { + programs.vim = { + enable = true; + packageConfigurable = pkgs.vim; + settings = { + expandtab = false; + shiftwidth = 2; + tabstop = 2; + }; + extraConfig = '' + " https://wiki.archlinux.org/title/XDG_Base_Directory + set runtimepath^=$XDG_CONFIG_HOME/vim + set runtimepath+=$XDG_DATA_HOME/vim + set runtimepath+=$XDG_CONFIG_HOME/vim/after - set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim - set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after - set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim - set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after + set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim + set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after + set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim + set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after - let g:netrw_home = $XDG_DATA_HOME."/vim" - call mkdir($XDG_DATA_HOME."/vim/spell", 'p') + let g:netrw_home = $XDG_DATA_HOME."/vim" + call mkdir($XDG_DATA_HOME."/vim/spell", 'p') - set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p') - set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p') - set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p') - set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p') - set viminfofile=$XDG_STATE_HOME/vim/viminfo - ''; + set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p') + set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p') + set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p') + set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p') + set viminfofile=$XDG_STATE_HOME/vim/viminfo + ''; + }; }; } |
