From ebb67feeb46226dff0d384c7800dab4e42a03912 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Wed, 18 Sep 2024 18:58:59 +0200 Subject: refactor home --- common/home/alacritty/default.nix | 79 --------- common/home/btop/default.nix | 9 - common/home/default.nix | 5 +- common/home/firefox/default.nix | 69 -------- common/home/git/default.nix | 6 - common/home/gpg-agent/default.nix | 5 - common/home/gpg/default.nix | 5 - common/home/hyprlock/default.nix | 48 ------ common/home/hyprpaper/default.nix | 12 -- common/home/nixvim/default.nix | 210 ------------------------ common/home/opam/default.nix | 5 - common/home/password-store/default.nix | 7 - common/home/programs/alacritty/default.nix | 79 +++++++++ common/home/programs/btop/default.nix | 9 + common/home/programs/firefox/default.nix | 69 ++++++++ common/home/programs/git/default.nix | 6 + common/home/programs/gpg/default.nix | 5 + common/home/programs/hyprlock/default.nix | 48 ++++++ common/home/programs/nixvim/default.nix | 210 ++++++++++++++++++++++++ common/home/programs/opam/default.nix | 5 + common/home/programs/password-store/default.nix | 7 + common/home/programs/ssh/default.nix | 5 + common/home/programs/waybar/default.nix | 44 +++++ common/home/programs/waybar/style.css | 88 ++++++++++ common/home/programs/wofi/default.nix | 5 + common/home/programs/wofi/style.css | 47 ++++++ common/home/programs/zsh/default.nix | 27 +++ common/home/services/gpg-agent/default.nix | 5 + common/home/services/hyprpaper/default.nix | 12 ++ common/home/services/syncthing/default.nix | 4 + common/home/ssh/default.nix | 5 - common/home/syncthing/default.nix | 4 - common/home/waybar/default.nix | 44 ----- common/home/waybar/style.css | 88 ---------- common/home/wofi/default.nix | 5 - common/home/wofi/style.css | 47 ------ common/home/zsh/default.nix | 27 --- 37 files changed, 677 insertions(+), 678 deletions(-) delete mode 100644 common/home/alacritty/default.nix delete mode 100644 common/home/btop/default.nix delete mode 100644 common/home/firefox/default.nix delete mode 100644 common/home/git/default.nix delete mode 100644 common/home/gpg-agent/default.nix delete mode 100644 common/home/gpg/default.nix delete mode 100644 common/home/hyprlock/default.nix delete mode 100644 common/home/hyprpaper/default.nix delete mode 100644 common/home/nixvim/default.nix delete mode 100644 common/home/opam/default.nix delete mode 100644 common/home/password-store/default.nix create mode 100644 common/home/programs/alacritty/default.nix create mode 100644 common/home/programs/btop/default.nix create mode 100644 common/home/programs/firefox/default.nix create mode 100644 common/home/programs/git/default.nix create mode 100644 common/home/programs/gpg/default.nix create mode 100644 common/home/programs/hyprlock/default.nix create mode 100644 common/home/programs/nixvim/default.nix create mode 100644 common/home/programs/opam/default.nix create mode 100644 common/home/programs/password-store/default.nix create mode 100644 common/home/programs/ssh/default.nix create mode 100644 common/home/programs/waybar/default.nix create mode 100644 common/home/programs/waybar/style.css create mode 100644 common/home/programs/wofi/default.nix create mode 100644 common/home/programs/wofi/style.css create mode 100644 common/home/programs/zsh/default.nix create mode 100644 common/home/services/gpg-agent/default.nix create mode 100644 common/home/services/hyprpaper/default.nix create mode 100644 common/home/services/syncthing/default.nix delete mode 100644 common/home/ssh/default.nix delete mode 100644 common/home/syncthing/default.nix delete mode 100644 common/home/waybar/default.nix delete mode 100644 common/home/waybar/style.css delete mode 100644 common/home/wofi/default.nix delete mode 100644 common/home/wofi/style.css delete mode 100644 common/home/zsh/default.nix diff --git a/common/home/alacritty/default.nix b/common/home/alacritty/default.nix deleted file mode 100644 index 85b539f..0000000 --- a/common/home/alacritty/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ ... }: -{ - enable = true; - - settings = { - colors = { - primary = { - background = "#282828"; - foreground = "#ebdbb2"; - }; - - search = { - focused_match = { - background = "#689d6a"; - foreground = "#ebdbb2"; - }; - - matches = { - background = "#3c3836"; - foreground = "#ebdbb2"; - }; - }; - - bright = { - black = "#928374"; - blue = "#83a598"; - cyan = "#8ec07c"; - green = "#b8bb26"; - magenta = "#d3869b"; - red = "#fb4934"; - white = "#fbf1c7"; - yellow = "#fadb2f"; - }; - - normal = { - black = "#282828"; - blue = "#458588"; - cyan = "#689d6a"; - green = "#98971a"; - magenta = "#b16286"; - red = "#cc241d"; - white = "#ebdbb2"; - yellow = "#d79921"; - }; - }; - - font = { - size = 11.0; - - normal = { - family = "SauceCodePro NF"; - style = "Regular"; - }; - - bold = { - family = "SauceCodePro NF"; - style = "Bold"; - }; - - italic = { - family = "SauceCodePro NF"; - style = "Italic"; - }; - - bold_italic = { - family = "SauceCodePro NF"; - style = "Bold Italic"; - }; - }; - - window = { - dynamic_title = true; - padding = { - x = 5; - y = 5; - }; - }; - }; -} diff --git a/common/home/btop/default.nix b/common/home/btop/default.nix deleted file mode 100644 index 949b5f8..0000000 --- a/common/home/btop/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: -{ - enable = true; - settings = { - color_theme = "Default"; - truecolor = true; - update_ms = 100; - }; -} diff --git a/common/home/default.nix b/common/home/default.nix index ac7a9dc..aceeaba 100644 --- a/common/home/default.nix +++ b/common/home/default.nix @@ -27,7 +27,6 @@ let "gpg-agent" ]; packages = [ - pkgs.networkmanagerapplet pkgs.pavucontrol pkgs.wl-clipboard pkgs.virt-manager @@ -42,7 +41,7 @@ in map (n: { name = n; value = - if builtins.pathExists ./${n}/default.nix then + if builtins.pathExists ./${n}/programs/default.nix then (import ./${n} { inherit pkgs; home = config.home-manager.users.n8.home; @@ -56,7 +55,7 @@ in map (n: { name = n; value = - if builtins.pathExists ./${n}/default.nix then + if builtins.pathExists ./${n}/services/default.nix then (import ./${n} { inherit pkgs; }) else { enable = true; }; diff --git a/common/home/firefox/default.nix b/common/home/firefox/default.nix deleted file mode 100644 index 674384f..0000000 --- a/common/home/firefox/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ ... }: -let - lock-false = { - Value = false; - Status = "locked"; - }; - lock-true = { - Value = true; - Status = "locked"; - }; -in -{ - enable = true; - - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - DisablePocket = true; - DisableFirefoxAccounts = true; - DisableAccounts = true; - DisableFirefoxScreenshots = true; - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - DontCheckDefaultBrowser = true; - DisplayBookmarksToolbar = "never"; - DisplayMenuBar = "default-off"; - SearchBar = "unified"; - - ExtensionSettings = { - "*".installation_mode = "blocked"; - "uBlock0@raymondhill.net" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - installation_mode = "force_installed"; - }; - }; - - Preferences = { - "browser.contentblocking.category" = { - Value = "strict"; - Status = "locked"; - }; - "extensions.pocket.enabled" = lock-false; - "extensions.screenshots.disabled" = lock-true; - "browser.topsites.contile.enabled" = lock-false; - "browser.formfill.enable" = lock-false; - "browser.search.suggest.enabled" = lock-false; - "browser.search.suggest.enabled.private" = lock-false; - "browser.search.defaultenginename" = "DuckDuckGo"; - "browser.search.order.1" = "DuckDuckGo"; - "browser.urlbar.suggest.searches" = lock-false; - "browser.urlbar.showSearchSuggestionsFirst" = lock-false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; - "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; - "browser.newtabpage.activity-stream.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; - }; - }; -} diff --git a/common/home/git/default.nix b/common/home/git/default.nix deleted file mode 100644 index 91878ea..0000000 --- a/common/home/git/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: -{ - enable = true; - userEmail = "nathan@nathanreiner.xyz"; - userName = "Nathan Reiner"; -} diff --git a/common/home/gpg-agent/default.nix b/common/home/gpg-agent/default.nix deleted file mode 100644 index d29f924..0000000 --- a/common/home/gpg-agent/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: -{ - enable = true; - pinentryPackage = pkgs.pinentry-qt; -} diff --git a/common/home/gpg/default.nix b/common/home/gpg/default.nix deleted file mode 100644 index 2c1ec57..0000000 --- a/common/home/gpg/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ home, ... }: -{ - enable = true; - homedir = "${home.homeDirectory}/global/.local/share/gnupg"; -} diff --git a/common/home/hyprlock/default.nix b/common/home/hyprlock/default.nix deleted file mode 100644 index 91a28ea..0000000 --- a/common/home/hyprlock/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ ... }: -{ - enable = true; - settings = { - general = { - disable_loading_bar = false; - hide_cursor = true; - no_fade_in = true; - }; - - background = [ - { - blur_passes = 3; - blur_size = 8; - } - ]; - - input-field = [ - { - size = "250, 50"; - position = "0, -80"; - monitor = ""; - dots_center = true; - fade_on_empty = false; - font_color = "rgb(235, 219, 178)"; - inner_color = "rgb(40, 40, 40)"; - outer_color = "rgb(177, 98, 134)"; - outline_thickness = 2; - placeholder_text = "/password/"; - shadow_passes = 2; - } - ]; - - label = [ - { - text = "$USER"; - text_algin = "center"; - position = "0, 60"; - font_color = "rgb(235, 219, 178)"; - font_size = 70; - font_family = "SauceCodePro NF"; - rotate = 0; - halign = "center"; - valign = "center"; - } - ]; - }; -} diff --git a/common/home/hyprpaper/default.nix b/common/home/hyprpaper/default.nix deleted file mode 100644 index 56a11e1..0000000 --- a/common/home/hyprpaper/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -{ - enable = true; - settings = { - ipc = "on"; - splash = false; - splash_offset = 2.0; - - preload = [ "~/global/media/photos/wallpapers/gruvbox.png" ]; - wallpaper = [ ",~/global/media/photos/wallpapers/gruvbox.png" ]; - }; -} diff --git a/common/home/nixvim/default.nix b/common/home/nixvim/default.nix deleted file mode 100644 index 628b8d0..0000000 --- a/common/home/nixvim/default.nix +++ /dev/null @@ -1,210 +0,0 @@ -{ pkgs, ... }: -{ - enable = true; - defaultEditor = true; - - enableMan = true; - - package = pkgs.unstable.neovim-unwrapped; - - extraConfigLua = '' - local signs = { Error = "󰀨 ", Warn = " ", Hint = " ", Info = " " } - for type, icon in pairs(signs) do - local hl = "DiagnosticSign" .. type - vim.fn.sign_define(hl, { text = icon, texthl= hl, numhl = hl }) - end''; - - diagnostics = { - virtual_text = { - prefix = "󰬨"; - }; - }; - - opts = { - mouse = "a"; - number = true; - softtabstop = 0; - expandtab = false; - tabstop = 2; - shiftwidth = 2; - smartindent = true; - list = true; - listchars = { - tab = "> "; - eol = "¬"; - trail = "·"; - nbsp = "•"; - }; - splitright = true; - splitbelow = true; - showcmd = true; - wildmenu = true; - hlsearch = true; - autoread = true; - swapfile = false; - }; - - clipboard = { - register = "unnamedplus"; - providers.wl-copy.enable = true; - }; - - colorschemes.base16 = { - enable = true; - colorscheme = "gruvbox-dark-pale"; - }; - - plugins = { - nvim-tree = { - enable = true; - autoClose = true; - disableNetrw = true; - hijackCursor = true; - }; - - telescope = { - enable = true; - }; - - lualine = { - enable = true; - }; - - treesitter = { - enable = true; - settings = { - auto_install = false; - ensure_installed = "all"; - highlight = { - additional_vim_regex_highlighting = true; - enable = true; - }; - ignore_install = [ "rust" ]; - incremental_selection = { - enable = true; - keymaps = { - init_selection = false; - node_decremental = "grm"; - node_incremental = "grn"; - scope_incremental = "grc"; - }; - }; - indent = { - enable = true; - }; - sync_install = false; - }; - }; - - luasnip = { - enable = true; - }; - - friendly-snippets = { - enable = true; - }; - - cmp = { - enable = true; - autoEnableSources = true; - settings = { - mapping = { - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.scroll_docs(4)"; - "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.abort()"; - "" = "cmp.mapping.confirm({ select = true })"; - "" = '' - cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif require("luasnip").expand_or_jumpable() then - vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-expand-or-jump", true, true, true), "") - else - fallback() - end - end, { "i", "s" }) - ''; - "" = '' - cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif require("luasnip").jumpable(-1) then - vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-jump-prev", true, true, true), "") - else - fallback() - end - end, { "i", "s" }) - ''; - }; - snippet = { - expand = "function(args) require('luasnip').lsp_expand(args.body) end"; - }; - sources = [ - { name = "nvim_lsp"; } - { name = "luasnip"; } - { name = "path"; } - { name = "buffer"; } - ]; - }; - }; - - lsp = { - enable = true; - servers = { - bashls = { - enable = true; - package = pkgs.unstable.bash-language-server; - }; - clangd.enable = true; - nixd = { - enable = true; - settings.formatting.command = [ "nixfmt" ]; - }; - rust-analyzer = { - enable = true; - installCargo = true; - installRustc = true; - }; - pyright.enable = true; - ocamllsp.enable = true; - }; - keymaps.lspBuf = { - "gd" = "definition"; - "gD" = "references"; - "gt" = "type_definition"; - "gi" = "implementation"; - "K" = "hover"; - "rn" = "rename"; - "ca" = "code_action"; - "f" = "format"; - }; - }; - - lsp-format = { - enable = true; - }; - }; - - globals = { - mapleader = ","; - }; - - keymaps = [ - { - key = "tf"; - action = "NvimTreeToggle"; - mode = "n"; - } - { - key = "f"; - action = "lua require('telescope.builtin').find_files()"; - mode = "n"; - } - { - key = "d"; - action = "lua vim.diagnostic.open_float()"; - mode = "n"; - } - ]; -} diff --git a/common/home/opam/default.nix b/common/home/opam/default.nix deleted file mode 100644 index d0baee2..0000000 --- a/common/home/opam/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: -{ - enable = true; - enableZshIntegration = true; -} diff --git a/common/home/password-store/default.nix b/common/home/password-store/default.nix deleted file mode 100644 index 29bbfb3..0000000 --- a/common/home/password-store/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -{ - enable = true; - settings = { - PASSWORD_STORE_DIR = "$HOME/global/.local/share/pass/"; - }; -} diff --git a/common/home/programs/alacritty/default.nix b/common/home/programs/alacritty/default.nix new file mode 100644 index 0000000..85b539f --- /dev/null +++ b/common/home/programs/alacritty/default.nix @@ -0,0 +1,79 @@ +{ ... }: +{ + enable = true; + + settings = { + colors = { + primary = { + background = "#282828"; + foreground = "#ebdbb2"; + }; + + search = { + focused_match = { + background = "#689d6a"; + foreground = "#ebdbb2"; + }; + + matches = { + background = "#3c3836"; + foreground = "#ebdbb2"; + }; + }; + + bright = { + black = "#928374"; + blue = "#83a598"; + cyan = "#8ec07c"; + green = "#b8bb26"; + magenta = "#d3869b"; + red = "#fb4934"; + white = "#fbf1c7"; + yellow = "#fadb2f"; + }; + + normal = { + black = "#282828"; + blue = "#458588"; + cyan = "#689d6a"; + green = "#98971a"; + magenta = "#b16286"; + red = "#cc241d"; + white = "#ebdbb2"; + yellow = "#d79921"; + }; + }; + + font = { + size = 11.0; + + normal = { + family = "SauceCodePro NF"; + style = "Regular"; + }; + + bold = { + family = "SauceCodePro NF"; + style = "Bold"; + }; + + italic = { + family = "SauceCodePro NF"; + style = "Italic"; + }; + + bold_italic = { + family = "SauceCodePro NF"; + style = "Bold Italic"; + }; + }; + + window = { + dynamic_title = true; + padding = { + x = 5; + y = 5; + }; + }; + }; +} diff --git a/common/home/programs/btop/default.nix b/common/home/programs/btop/default.nix new file mode 100644 index 0000000..949b5f8 --- /dev/null +++ b/common/home/programs/btop/default.nix @@ -0,0 +1,9 @@ +{ ... }: +{ + enable = true; + settings = { + color_theme = "Default"; + truecolor = true; + update_ms = 100; + }; +} diff --git a/common/home/programs/firefox/default.nix b/common/home/programs/firefox/default.nix new file mode 100644 index 0000000..674384f --- /dev/null +++ b/common/home/programs/firefox/default.nix @@ -0,0 +1,69 @@ +{ ... }: +let + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = true; + Status = "locked"; + }; +in +{ + enable = true; + + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + DisablePocket = true; + DisableFirefoxAccounts = true; + DisableAccounts = true; + DisableFirefoxScreenshots = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DontCheckDefaultBrowser = true; + DisplayBookmarksToolbar = "never"; + DisplayMenuBar = "default-off"; + SearchBar = "unified"; + + ExtensionSettings = { + "*".installation_mode = "blocked"; + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + }; + + Preferences = { + "browser.contentblocking.category" = { + Value = "strict"; + Status = "locked"; + }; + "extensions.pocket.enabled" = lock-false; + "extensions.screenshots.disabled" = lock-true; + "browser.topsites.contile.enabled" = lock-false; + "browser.formfill.enable" = lock-false; + "browser.search.suggest.enabled" = lock-false; + "browser.search.suggest.enabled.private" = lock-false; + "browser.search.defaultenginename" = "DuckDuckGo"; + "browser.search.order.1" = "DuckDuckGo"; + "browser.urlbar.suggest.searches" = lock-false; + "browser.urlbar.showSearchSuggestionsFirst" = lock-false; + "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; + "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; + "browser.newtabpage.activity-stream.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; + }; + }; +} diff --git a/common/home/programs/git/default.nix b/common/home/programs/git/default.nix new file mode 100644 index 0000000..91878ea --- /dev/null +++ b/common/home/programs/git/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + enable = true; + userEmail = "nathan@nathanreiner.xyz"; + userName = "Nathan Reiner"; +} diff --git a/common/home/programs/gpg/default.nix b/common/home/programs/gpg/default.nix new file mode 100644 index 0000000..2c1ec57 --- /dev/null +++ b/common/home/programs/gpg/default.nix @@ -0,0 +1,5 @@ +{ home, ... }: +{ + enable = true; + homedir = "${home.homeDirectory}/global/.local/share/gnupg"; +} diff --git a/common/home/programs/hyprlock/default.nix b/common/home/programs/hyprlock/default.nix new file mode 100644 index 0000000..91a28ea --- /dev/null +++ b/common/home/programs/hyprlock/default.nix @@ -0,0 +1,48 @@ +{ ... }: +{ + enable = true; + settings = { + general = { + disable_loading_bar = false; + hide_cursor = true; + no_fade_in = true; + }; + + background = [ + { + blur_passes = 3; + blur_size = 8; + } + ]; + + input-field = [ + { + size = "250, 50"; + position = "0, -80"; + monitor = ""; + dots_center = true; + fade_on_empty = false; + font_color = "rgb(235, 219, 178)"; + inner_color = "rgb(40, 40, 40)"; + outer_color = "rgb(177, 98, 134)"; + outline_thickness = 2; + placeholder_text = "/password/"; + shadow_passes = 2; + } + ]; + + label = [ + { + text = "$USER"; + text_algin = "center"; + position = "0, 60"; + font_color = "rgb(235, 219, 178)"; + font_size = 70; + font_family = "SauceCodePro NF"; + rotate = 0; + halign = "center"; + valign = "center"; + } + ]; + }; +} diff --git a/common/home/programs/nixvim/default.nix b/common/home/programs/nixvim/default.nix new file mode 100644 index 0000000..628b8d0 --- /dev/null +++ b/common/home/programs/nixvim/default.nix @@ -0,0 +1,210 @@ +{ pkgs, ... }: +{ + enable = true; + defaultEditor = true; + + enableMan = true; + + package = pkgs.unstable.neovim-unwrapped; + + extraConfigLua = '' + local signs = { Error = "󰀨 ", Warn = " ", Hint = " ", Info = " " } + for type, icon in pairs(signs) do + local hl = "DiagnosticSign" .. type + vim.fn.sign_define(hl, { text = icon, texthl= hl, numhl = hl }) + end''; + + diagnostics = { + virtual_text = { + prefix = "󰬨"; + }; + }; + + opts = { + mouse = "a"; + number = true; + softtabstop = 0; + expandtab = false; + tabstop = 2; + shiftwidth = 2; + smartindent = true; + list = true; + listchars = { + tab = "> "; + eol = "¬"; + trail = "·"; + nbsp = "•"; + }; + splitright = true; + splitbelow = true; + showcmd = true; + wildmenu = true; + hlsearch = true; + autoread = true; + swapfile = false; + }; + + clipboard = { + register = "unnamedplus"; + providers.wl-copy.enable = true; + }; + + colorschemes.base16 = { + enable = true; + colorscheme = "gruvbox-dark-pale"; + }; + + plugins = { + nvim-tree = { + enable = true; + autoClose = true; + disableNetrw = true; + hijackCursor = true; + }; + + telescope = { + enable = true; + }; + + lualine = { + enable = true; + }; + + treesitter = { + enable = true; + settings = { + auto_install = false; + ensure_installed = "all"; + highlight = { + additional_vim_regex_highlighting = true; + enable = true; + }; + ignore_install = [ "rust" ]; + incremental_selection = { + enable = true; + keymaps = { + init_selection = false; + node_decremental = "grm"; + node_incremental = "grn"; + scope_incremental = "grc"; + }; + }; + indent = { + enable = true; + }; + sync_install = false; + }; + }; + + luasnip = { + enable = true; + }; + + friendly-snippets = { + enable = true; + }; + + cmp = { + enable = true; + autoEnableSources = true; + settings = { + mapping = { + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.abort()"; + "" = "cmp.mapping.confirm({ select = true })"; + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif require("luasnip").expand_or_jumpable() then + vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-expand-or-jump", true, true, true), "") + else + fallback() + end + end, { "i", "s" }) + ''; + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif require("luasnip").jumpable(-1) then + vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-jump-prev", true, true, true), "") + else + fallback() + end + end, { "i", "s" }) + ''; + }; + snippet = { + expand = "function(args) require('luasnip').lsp_expand(args.body) end"; + }; + sources = [ + { name = "nvim_lsp"; } + { name = "luasnip"; } + { name = "path"; } + { name = "buffer"; } + ]; + }; + }; + + lsp = { + enable = true; + servers = { + bashls = { + enable = true; + package = pkgs.unstable.bash-language-server; + }; + clangd.enable = true; + nixd = { + enable = true; + settings.formatting.command = [ "nixfmt" ]; + }; + rust-analyzer = { + enable = true; + installCargo = true; + installRustc = true; + }; + pyright.enable = true; + ocamllsp.enable = true; + }; + keymaps.lspBuf = { + "gd" = "definition"; + "gD" = "references"; + "gt" = "type_definition"; + "gi" = "implementation"; + "K" = "hover"; + "rn" = "rename"; + "ca" = "code_action"; + "f" = "format"; + }; + }; + + lsp-format = { + enable = true; + }; + }; + + globals = { + mapleader = ","; + }; + + keymaps = [ + { + key = "tf"; + action = "NvimTreeToggle"; + mode = "n"; + } + { + key = "f"; + action = "lua require('telescope.builtin').find_files()"; + mode = "n"; + } + { + key = "d"; + action = "lua vim.diagnostic.open_float()"; + mode = "n"; + } + ]; +} diff --git a/common/home/programs/opam/default.nix b/common/home/programs/opam/default.nix new file mode 100644 index 0000000..d0baee2 --- /dev/null +++ b/common/home/programs/opam/default.nix @@ -0,0 +1,5 @@ +{ ... }: +{ + enable = true; + enableZshIntegration = true; +} diff --git a/common/home/programs/password-store/default.nix b/common/home/programs/password-store/default.nix new file mode 100644 index 0000000..29bbfb3 --- /dev/null +++ b/common/home/programs/password-store/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + enable = true; + settings = { + PASSWORD_STORE_DIR = "$HOME/global/.local/share/pass/"; + }; +} diff --git a/common/home/programs/ssh/default.nix b/common/home/programs/ssh/default.nix new file mode 100644 index 0000000..da761d5 --- /dev/null +++ b/common/home/programs/ssh/default.nix @@ -0,0 +1,5 @@ +{ home, ... }: +{ + enable = true; + includes = [ "${home.homeDirectory}/global/.ssh/config" ]; +} diff --git a/common/home/programs/waybar/default.nix b/common/home/programs/waybar/default.nix new file mode 100644 index 0000000..7e59bf2 --- /dev/null +++ b/common/home/programs/waybar/default.nix @@ -0,0 +1,44 @@ +{ ... }: +{ + enable = true; + systemd.enable = true; + settings = { + mainBar = { + layer = "top"; + position = "left"; + width = 50; + outputs = "*"; + spacing = 10; + modules-left = [ "hyprland/workspaces" ]; + modules-center = [ ]; + modules-right = [ + "bluetooth" + "battery" + "tray" + ]; + + "hyprland/workspaces" = { + format = "{icon}"; + }; + + "hyprland/window" = { + separate-outputs = true; + }; + + bluetooth = { + format = ""; + format-disabled = "󰂲"; + format-off = "󰂲"; + format-on = ""; + format-connected = "󰂱"; + on-click = "blueberry"; + }; + + tray = { + icon-size = 15; + spacing = 10; + }; + }; + }; + style = ./style.css; +} diff --git a/common/home/programs/waybar/style.css b/common/home/programs/waybar/style.css new file mode 100644 index 0000000..d3dc7a1 --- /dev/null +++ b/common/home/programs/waybar/style.css @@ -0,0 +1,88 @@ +* { + font-family: 'SauceCodePro NF'; +} + +window { + background: transparent; +} + +#workspaces { + background: #282828; + border-radius: 5px; + margin-left: 10px; + padding: 5px; +} + +#workspaces button { + border: 5px solid #282828; + padding: 0px; +} + +#workspaces button.active { + border-right: 5px solid #b16286; + border-radius: 0px; +} + +#workspaces button:hover { + border-radius: 20px; + border: 5px solid #1d2021; + background: #1d2021; + padding: 0px; +} + +#workspaces button.active:hover { + border: 5px solid #1d2021; + border-right: 5px solid #b16286; + border-radius: 20px; + background: #1d2021; + padding: 0px; +} + +#tray, #bluetooth { + background: #282828; + border-radius: 5px; + margin-left: 10px; + padding: 10px 5px; +} + +#tray window { + border-radius: 5px; +} + +#battery { + background: #458588; + color: #282828; + border-radius: 5px; + margin-left: 10px; + padding: 10px 5px; +} + +#battery.charging { + background: #689d6a; +} + +#battery.warning:not(.charging) { + background: #cc241d; +} + +.modules-left { + margin-top: 10px; +} + +.modules-right { + margin-bottom: 10px; +} + +.popup menu { + border: 3px solid #3c3836; + border-radius: 10px; + padding: 10px; +} + +.popup menu menuitem { + border-radius: 5px; +} + +.popup decoration { + background: transparent; +} diff --git a/common/home/programs/wofi/default.nix b/common/home/programs/wofi/default.nix new file mode 100644 index 0000000..d8cf5a9 --- /dev/null +++ b/common/home/programs/wofi/default.nix @@ -0,0 +1,5 @@ +{ ... }: +{ + enable = true; + style = builtins.readFile ./style.css; +} diff --git a/common/home/programs/wofi/style.css b/common/home/programs/wofi/style.css new file mode 100644 index 0000000..7e38346 --- /dev/null +++ b/common/home/programs/wofi/style.css @@ -0,0 +1,47 @@ +* { + font-family: "SauceCodePro NF"; +} + +window { + background: transparent; + color: #ebdbb2; +} + +#outer-box { + border-radius: 10px; + background: transparent; +} + +entry#input { + background: #1d2021; + border: 2px solid #b16286; + margin-bottom: 10px; + padding: 10px; + border-radius: 10px; +} +#scroll { + border-radius: 10px; + border: 2px solid #3c3836; + background: #1d2021; +} + +#entry { + border: none; + background: transparent; +} + +.entry { + border-radius: 5px; + border: none; + padding: 8px; + margin: 2px; +} + +.entry#selected { + border: none; + background: #b16286; +} + +.entry#selected label { + background: #b16286; +} diff --git a/common/home/programs/zsh/default.nix b/common/home/programs/zsh/default.nix new file mode 100644 index 0000000..ef08f7f --- /dev/null +++ b/common/home/programs/zsh/default.nix @@ -0,0 +1,27 @@ +{ ... }: +{ + enable = true; + syntaxHighlighting.enable = true; + enableCompletion = true; + defaultKeymap = "viins"; + autocd = true; + shellAliases = { + v = "nvim"; + }; + initExtra = '' + prompt_git_status() { + if [ -n "$(git branch 2>/dev/null)" ]; then + sign=""; + [[ -n "$(git status -s)" ]] && sign=""; + git_branch=$(git branch); + echo "%F{5}%f%F{0}%K{5}''${sign} ''${git_branch##*\* }%k%F{5}%k"; + fi; + } + + update_prompt() { + export RPROMPT="$(prompt_git_status)" + } + + PROMPT="%F{cyan}%F{0}%K{cyan}%n%k%f%F{cyan}%k%f %F{cyan}%f%k%K{cyan}%F{0}%m%k%f%F{cyan}%k %f%k%F{magenta}%F{0}%K{magenta}%~%f%k%F{magenta}%k%f " + ''; +} diff --git a/common/home/services/gpg-agent/default.nix b/common/home/services/gpg-agent/default.nix new file mode 100644 index 0000000..d29f924 --- /dev/null +++ b/common/home/services/gpg-agent/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: +{ + enable = true; + pinentryPackage = pkgs.pinentry-qt; +} diff --git a/common/home/services/hyprpaper/default.nix b/common/home/services/hyprpaper/default.nix new file mode 100644 index 0000000..56a11e1 --- /dev/null +++ b/common/home/services/hyprpaper/default.nix @@ -0,0 +1,12 @@ +{ ... }: +{ + enable = true; + settings = { + ipc = "on"; + splash = false; + splash_offset = 2.0; + + preload = [ "~/global/media/photos/wallpapers/gruvbox.png" ]; + wallpaper = [ ",~/global/media/photos/wallpapers/gruvbox.png" ]; + }; +} diff --git a/common/home/services/syncthing/default.nix b/common/home/services/syncthing/default.nix new file mode 100644 index 0000000..3887830 --- /dev/null +++ b/common/home/services/syncthing/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + enable = true; +} diff --git a/common/home/ssh/default.nix b/common/home/ssh/default.nix deleted file mode 100644 index da761d5..0000000 --- a/common/home/ssh/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ home, ... }: -{ - enable = true; - includes = [ "${home.homeDirectory}/global/.ssh/config" ]; -} diff --git a/common/home/syncthing/default.nix b/common/home/syncthing/default.nix deleted file mode 100644 index 3887830..0000000 --- a/common/home/syncthing/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: -{ - enable = true; -} diff --git a/common/home/waybar/default.nix b/common/home/waybar/default.nix deleted file mode 100644 index 7e59bf2..0000000 --- a/common/home/waybar/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ ... }: -{ - enable = true; - systemd.enable = true; - settings = { - mainBar = { - layer = "top"; - position = "left"; - width = 50; - outputs = "*"; - spacing = 10; - modules-left = [ "hyprland/workspaces" ]; - modules-center = [ ]; - modules-right = [ - "bluetooth" - "battery" - "tray" - ]; - - "hyprland/workspaces" = { - format = "{icon}"; - }; - - "hyprland/window" = { - separate-outputs = true; - }; - - bluetooth = { - format = ""; - format-disabled = "󰂲"; - format-off = "󰂲"; - format-on = ""; - format-connected = "󰂱"; - on-click = "blueberry"; - }; - - tray = { - icon-size = 15; - spacing = 10; - }; - }; - }; - style = ./style.css; -} diff --git a/common/home/waybar/style.css b/common/home/waybar/style.css deleted file mode 100644 index d3dc7a1..0000000 --- a/common/home/waybar/style.css +++ /dev/null @@ -1,88 +0,0 @@ -* { - font-family: 'SauceCodePro NF'; -} - -window { - background: transparent; -} - -#workspaces { - background: #282828; - border-radius: 5px; - margin-left: 10px; - padding: 5px; -} - -#workspaces button { - border: 5px solid #282828; - padding: 0px; -} - -#workspaces button.active { - border-right: 5px solid #b16286; - border-radius: 0px; -} - -#workspaces button:hover { - border-radius: 20px; - border: 5px solid #1d2021; - background: #1d2021; - padding: 0px; -} - -#workspaces button.active:hover { - border: 5px solid #1d2021; - border-right: 5px solid #b16286; - border-radius: 20px; - background: #1d2021; - padding: 0px; -} - -#tray, #bluetooth { - background: #282828; - border-radius: 5px; - margin-left: 10px; - padding: 10px 5px; -} - -#tray window { - border-radius: 5px; -} - -#battery { - background: #458588; - color: #282828; - border-radius: 5px; - margin-left: 10px; - padding: 10px 5px; -} - -#battery.charging { - background: #689d6a; -} - -#battery.warning:not(.charging) { - background: #cc241d; -} - -.modules-left { - margin-top: 10px; -} - -.modules-right { - margin-bottom: 10px; -} - -.popup menu { - border: 3px solid #3c3836; - border-radius: 10px; - padding: 10px; -} - -.popup menu menuitem { - border-radius: 5px; -} - -.popup decoration { - background: transparent; -} diff --git a/common/home/wofi/default.nix b/common/home/wofi/default.nix deleted file mode 100644 index d8cf5a9..0000000 --- a/common/home/wofi/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: -{ - enable = true; - style = builtins.readFile ./style.css; -} diff --git a/common/home/wofi/style.css b/common/home/wofi/style.css deleted file mode 100644 index 7e38346..0000000 --- a/common/home/wofi/style.css +++ /dev/null @@ -1,47 +0,0 @@ -* { - font-family: "SauceCodePro NF"; -} - -window { - background: transparent; - color: #ebdbb2; -} - -#outer-box { - border-radius: 10px; - background: transparent; -} - -entry#input { - background: #1d2021; - border: 2px solid #b16286; - margin-bottom: 10px; - padding: 10px; - border-radius: 10px; -} -#scroll { - border-radius: 10px; - border: 2px solid #3c3836; - background: #1d2021; -} - -#entry { - border: none; - background: transparent; -} - -.entry { - border-radius: 5px; - border: none; - padding: 8px; - margin: 2px; -} - -.entry#selected { - border: none; - background: #b16286; -} - -.entry#selected label { - background: #b16286; -} diff --git a/common/home/zsh/default.nix b/common/home/zsh/default.nix deleted file mode 100644 index ef08f7f..0000000 --- a/common/home/zsh/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ ... }: -{ - enable = true; - syntaxHighlighting.enable = true; - enableCompletion = true; - defaultKeymap = "viins"; - autocd = true; - shellAliases = { - v = "nvim"; - }; - initExtra = '' - prompt_git_status() { - if [ -n "$(git branch 2>/dev/null)" ]; then - sign=""; - [[ -n "$(git status -s)" ]] && sign=""; - git_branch=$(git branch); - echo "%F{5}%f%F{0}%K{5}''${sign} ''${git_branch##*\* }%k%F{5}%k"; - fi; - } - - update_prompt() { - export RPROMPT="$(prompt_git_status)" - } - - PROMPT="%F{cyan}%F{0}%K{cyan}%n%k%f%F{cyan}%k%f %F{cyan}%f%k%K{cyan}%F{0}%m%k%f%F{cyan}%k %f%k%F{magenta}%F{0}%K{magenta}%~%f%k%F{magenta}%k%f " - ''; -} -- cgit v1.2.3-70-g09d2