diff --git a/flake.lock b/flake.lock index 6a3c342..89154d8 100644 --- a/flake.lock +++ b/flake.lock @@ -60,6 +60,22 @@ "type": "gitlab" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" @@ -78,6 +94,27 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1704982712, + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "07f6395285469419cf9d078f59b5b49993198c00", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1629284811, @@ -111,6 +148,46 @@ "type": "github" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "hardware": { "locked": { "lastModified": 1706182238, @@ -130,7 +207,9 @@ "inputs": { "crane": "crane", "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs", + "nixpkgs": [ + "nixpkgs" + ], "rust-overlay": "rust-overlay" }, "locked": { @@ -167,6 +246,27 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706306660, + "narHash": "sha256-lZvgkHtVeduGByPb0Tz9LpAi4olfkEm8XPgv0o7GRsk=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "b2f56952074cb46e93902ecaabfb04dd93733434", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "hyprland": { "inputs": { "hyprland-protocols": "hyprland-protocols", @@ -178,11 +278,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1706480871, - "narHash": "sha256-s+UNuNmMuI2Na4pONBIIBsG/9rkFXsYLPQb4qFxgLrs=", + "lastModified": 1706485369, + "narHash": "sha256-FHojTmzX3SrAC+VXu+xdmTPwZtlSQ8KzRfq89c7DrN0=", "owner": "hyprwm", "repo": "hyprland", - "rev": "7009dc9184317b7c68032fd733dfed268bc6c543", + "rev": "4b4bd90b1450cbfc01d9ac429363cc7cecd6be8b", "type": "github" }, "original": { @@ -260,7 +360,7 @@ }, "hyprlang_2": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs" }, "locked": { "lastModified": 1704230242, @@ -279,7 +379,7 @@ "hyprpaper": { "inputs": { "hyprlang": "hyprlang_2", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1704406943, @@ -354,17 +454,38 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705915768, + "narHash": "sha256-+Jlz8OAqkOwJlioac9wtpsCnjgGYUhvLpgJR/5tP9po=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "1e706ef323de76236eb183d7784f3bd57255ec0b", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "nix-gaming": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1706477838, - "narHash": "sha256-AmKH3UEWUCaGYa3j+xQfmXp9x/V/aKCCzRxt9RpT1bw=", + "lastModified": 1706482802, + "narHash": "sha256-KXwKTfqFkoPpV8QqaVlpmO8w8rD/jHZL2315RL5QQ8w=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "316650a2db58782a5f498927aee6249d871e69d2", + "rev": "8f354ef64cd18898b8980ecf7fe90118808b514b", "type": "github" }, "original": { @@ -375,15 +496,15 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706191920, - "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", + "lastModified": 1702645756, + "narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ae5c332cbb5827f6b1f02572496b141021de335f", + "rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -423,22 +544,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1702645756, - "narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1703637592, "narHash": "sha256-8MXjxU0RfFfzl57Zy3OfXCITS0qWDNLzlBAdwxGZwfY=", @@ -454,13 +559,13 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { - "lastModified": 1706173671, - "narHash": "sha256-lciR7kQUK2FCAYuszyd7zyRRmTaXVeoZsCyK6QFpGdk=", + "lastModified": 1706367331, + "narHash": "sha256-AqgkGHRrI6h/8FWuVbnkfFmXr4Bqsr4fV23aISqj/xg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4fddc9be4eaf195d631333908f2a454b03628ee5", + "rev": "160b762eda6d139ac10ae081f8f78d640dd523eb", "type": "github" }, "original": { @@ -470,7 +575,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_4": { "locked": { "lastModified": 1706191920, "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", @@ -486,6 +591,72 @@ "type": "github" } }, + "nixpkgs_5": { + "locked": { + "lastModified": 1706191920, + "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ae5c332cbb5827f6b1f02572496b141021de335f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts_2", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": "nixpkgs_5", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1706514457, + "narHash": "sha256-rfdCFizftdKpkKzXB7HjopQAftHgNIyyTQPkuDgo5Os=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "395836480995d418b96df527ebded1bc4b3134f0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_3", + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705757126, + "narHash": "sha256-Eksr+n4Q8EYZKAN0Scef5JK4H6FcHc+TKNHb95CWm+c=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "f56597d53fd174f796b5a7d3ee0b494f9e2285cc", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "firefox-addons": "firefox-addons", @@ -499,7 +670,8 @@ "nh": "nh", "nix-colors": "nix-colors", "nix-gaming": "nix-gaming", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_4", + "nixvim": "nixvim" } }, "rust-overlay": { @@ -557,6 +729,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "wlroots": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 2bcf647..951d242 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,8 @@ nix-colors.url = "github:misterio77/nix-colors"; + nixvim.url = "github:nix-community/nixvim"; + firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; @@ -34,6 +36,7 @@ helix = { url = "github:helix-editor/helix"; + inputs.nixpkgs.follows = "nixpkgs"; }; nh = { diff --git a/home/modules/console/editor/default.nix b/home/modules/console/editor/default.nix index 0f37368..6caf123 100644 --- a/home/modules/console/editor/default.nix +++ b/home/modules/console/editor/default.nix @@ -3,7 +3,7 @@ imports = [ ./helix - # ./nvim + ./nvim ]; options.homeModules.console.editor = { diff --git a/home/modules/console/editor/helix/default.nix b/home/modules/console/editor/helix/default.nix index 6842331..9076e4b 100644 --- a/home/modules/console/editor/helix/default.nix +++ b/home/modules/console/editor/helix/default.nix @@ -5,23 +5,33 @@ let in { - # imports = [ - # ./languages.nix - # ]; + imports = [ + ./languages.nix + ]; config = lib.mkIf cfg.enable { - home.packages = with pkgs; [ - marksman - clang-tools - nil - nodePackages.bash-language-server - nodePackages.vscode-css-languageserver-bin - nodePackages.vscode-langservers-extracted - shellcheck - ]; programs.helix = { enable = true; defaultEditor = lib.mkIf cfg.default true; + package = inputs.helix.packages.${pkgs.system}.default.overrideAttrs (old: { + makeWrapperArgs = with pkgs; + old.makeWrapperArgs + or [] + ++ [ + "--suffix" + "PATH" + ":" + (lib.makeBinPath [ + clang-tools + marksman + nil + nodePackages.bash-language-server + nodePackages.vscode-css-languageserver-bin + nodePackages.vscode-langservers-extracted + shellcheck + ]) + ]; + }); settings = { theme = colorscheme.slug; editor = { diff --git a/home/modules/console/editor/helix/languages.nix b/home/modules/console/editor/helix/languages.nix index 0000407..23efb87 100644 --- a/home/modules/console/editor/helix/languages.nix +++ b/home/modules/console/editor/helix/languages.nix @@ -1,107 +1,106 @@ +{ pkgs, lib, config, ... }: + +let + cfg = config.homeModules.console.editor.helix; +in + { - pkgs, - lib, - ... -}: { - programs.helix.languages = { - language = let - deno = lang: { - command = "${pkgs.deno}/bin/deno"; - args = ["fmt" "-" "--ext" lang]; - }; + config = lib.mkIf cfg.enable { + programs.helix.languages = { + language = let + deno = lang: { + command = "${pkgs.deno}/bin/deno"; + args = ["fmt" "-" "--ext" lang]; + }; - prettier = lang: { - command = "${pkgs.nodePackages.prettier}/bin/prettier"; - args = ["--parser" lang]; - }; - prettierLangs = map (e: { - name = e; - formatter = prettier e; - }); - langs = ["css" "scss" "html"]; - in - [ - { - name = "bash"; - auto-format = true; - formatter = { - command = "${pkgs.shfmt}/bin/shfmt"; - args = ["-i" "2"]; - }; - } - { - name = "clojure"; - injection-regex = "(clojure|clj|edn|boot|yuck)"; - file-types = ["clj" "cljs" "cljc" "clje" "cljr" "cljx" "edn" "boot" "yuck"]; - } - { - name = "javascript"; - auto-format = true; - language-servers = ["deno-lsp"]; - } - { - name = "json"; - formatter = deno "json"; - } - { - name = "markdown"; - auto-format = true; - formatter = deno "md"; - } - { - name = "typescript"; - auto-format = true; - language-servers = ["deno-lsp"]; - } - ] - ++ prettierLangs langs; + prettier = lang: { + command = "${pkgs.nodePackages.prettier}/bin/prettier"; + args = ["--parser" lang]; + }; + prettierLangs = map (e: { + name = e; + formatter = prettier e; + }); + langs = ["css" "scss" "html"]; + in + [ + { + name = "bash"; + auto-format = true; + formatter = { + command = "${pkgs.shfmt}/bin/shfmt"; + args = ["-i" "2"]; + }; + } + { + name = "clojure"; + injection-regex = "(clojure|clj|edn|boot|yuck)"; + file-types = ["clj" "cljs" "cljc" "clje" "cljr" "cljx" "edn" "boot" "yuck"]; + } + { + name = "javascript"; + auto-format = true; + language-servers = ["deno-lsp"]; + } + { + name = "json"; + formatter = deno "json"; + } + { + name = "markdown"; + auto-format = true; + formatter = deno "md"; + } + ] + ++ prettierLangs langs; - language-server = { - bash-language-server = { - command = "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server"; - args = ["start"]; - }; + language-server = { + bash-language-server = { + command = "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server"; + args = ["start"]; + }; - clangd = { - command = "${pkgs.clang-tools}/bin/clangd"; - clangd.fallbackFlags = ["-std=c++2b"]; - }; + clangd = { + command = "${pkgs.clang-tools}/bin/clangd"; + clangd.fallbackFlags = ["-std=c++2b"]; + }; - deno-lsp = { - command = "${pkgs.deno}/bin/deno"; - args = ["lsp"]; - environment.NO_COLOR = "1"; - config.deno = { - enable = true; - lint = true; - unstable = true; - suggest = { - completeFunctionCalls = false; - imports = {hosts."https://deno.land" = true;}; - }; - inlayHints = { - enumMemberValues.enabled = true; - functionLikeReturnTypes.enabled = true; - parameterNames.enabled = "all"; - parameterTypes.enabled = true; - propertyDeclarationTypes.enabled = true; - variableTypes.enabled = true; + deno-lsp = { + command = "${pkgs.deno}/bin/deno"; + args = ["lsp"]; + environment.NO_COLOR = "1"; + config.deno = { + enable = true; + lint = true; + unstable = true; + suggest = { + completeFunctionCalls = false; + imports = {hosts."https://deno.land" = true;}; + }; + inlayHints = { + enumMemberValues.enabled = true; + functionLikeReturnTypes.enabled = true; + parameterNames.enabled = "all"; + parameterTypes.enabled = true; + propertyDeclarationTypes.enabled = true; + variableTypes.enabled = true; + }; }; }; - }; - nil = { - command = lib.getExe pkgs.nil; - config.nil.formatting.command = ["${lib.getExe pkgs.alejandra}" "-q"]; - }; + nil = { + command = lib.getExe pkgs.nil; + config.nil.formatting.command = ["${lib.getExe pkgs.alejandra}" "-q"]; + }; - vscode-css-language-server = { - command = "${pkgs.nodePackages.vscode-css-languageserver-bin}/bin/css-languageserver"; - args = ["--stdio"]; - config = { - provideFormatter = true; - css.validate.enable = true; - scss.validate.enable = true; + vscode-css-language-server = { + command = "${pkgs.nodePackages.vscode-css-languageserver-bin}/bin/css-languageserver"; + args = ["--stdio"]; + config = { + provideFormatter = true; + css.validate.enable = true; + scss.validate.enable = true; + }; }; }; }; diff --git a/home/modules/console/editor/nvim/default.nix b/home/modules/console/editor/nvim/default.nix index e69de29..854d7ee 100644 --- a/home/modules/console/editor/nvim/default.nix +++ b/home/modules/console/editor/nvim/default.nix @@ -0,0 +1,68 @@ +{ config, lib, inputs, pkgs, ... }: + +let + inherit (config.colorscheme) colors; + cfg = config.homeModules.console.editor.nvim; +in + +{ + imports = [ + inputs.nixvim.homeManagerModules.nixvim + ]; + + config = lib.mkIf cfg.enable { + programs.neovim = { + viAlias = true; + vimAlias = true; + }; + + programs.nixvim = { + enable = true; + + options = { + number = true; + }; + + globals = { + mapleader = " "; + updatetime = 200; + timeoutlen = 400; + }; + + plugins = { + lualine = { + enable = true; + }; + which-key = { + enable = true; + }; + indent-blankline = { + enable = true; + }; + }; + + colorschemes.base16 = { + enable = true; + colorscheme = config.colorscheme.slug; + customColorScheme = { + base00 = "#${colors.base00}"; + base01 = "#${colors.base01}"; + base02 = "#${colors.base02}"; + base03 = "#${colors.base03}"; + base04 = "#${colors.base04}"; + base05 = "#${colors.base05}"; + base06 = "#${colors.base06}"; + base07 = "#${colors.base07}"; + base08 = "#${colors.base08}"; + base09 = "#${colors.base09}"; + base0A = "#${colors.base0A}"; + base0B = "#${colors.base0B}"; + base0C = "#${colors.base0C}"; + base0D = "#${colors.base0D}"; + base0E = "#${colors.base0E}"; + base0F = "#${colors.base0F}"; + }; + }; + }; + }; +} diff --git a/home/modules/console/utility/git/default.nix b/home/modules/console/utility/git/default.nix index 50e5f47..ca1b519 100644 --- a/home/modules/console/utility/git/default.nix +++ b/home/modules/console/utility/git/default.nix @@ -18,6 +18,7 @@ home.packages = with pkgs; [ git-credential-1password + lazygit ]; }; } diff --git a/home/profile/hyprland/default.nix b/home/profile/hyprland/default.nix index 64e0654..a82dce0 100644 --- a/home/profile/hyprland/default.nix +++ b/home/profile/hyprland/default.nix @@ -24,9 +24,11 @@ in enable = true; default = true; }; - terminal.foot = { - enable = true; - default = true; + terminal = { + foot = { + enable = true; + default = true; + }; }; themeSettings.enable = true; }; diff --git a/home/user/ooks/ookst480s/default.nix b/home/user/ooks/ookst480s/default.nix index a8e57b5..f65a45c 100644 --- a/home/user/ooks/ookst480s/default.nix +++ b/home/user/ooks/ookst480s/default.nix @@ -6,6 +6,8 @@ ]; activeProfiles = ["base" "hyprland"]; + + homeModules.console.editor.nvim.enable = true; monitors = [{ name = "eDP-1"; @@ -16,6 +18,6 @@ transform = 0; }]; - colorscheme = inputs.nix-colors.colorSchemes.catppuccin-mocha; + colorscheme = inputs.nix-colors.colorSchemes.everforest; } diff --git a/system/modules/hardware/backlight.nix b/system/modules/hardware/backlight.nix index 7afed96..71a5210 100644 --- a/system/modules/hardware/backlight.nix +++ b/system/modules/hardware/backlight.nix @@ -10,7 +10,7 @@ in services.clight = { enable = true; temperature = { - night = 1000; + night = 3000; day = 6000; }; settings = {