diff --git a/home/hyprland/alacritty.nix b/home/hyprland/alacritty.nix new file mode 100644 index 0000000..767dc4b --- /dev/null +++ b/home/hyprland/alacritty.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + programs.alacritty = { + enable = true; + + }; + +} diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix index 9301443..2e63e1f 100644 --- a/home/hyprland/default.nix +++ b/home/hyprland/default.nix @@ -1,6 +1,7 @@ { pkgs, ...}: { imports = [ ./kitty.nix # Terminal + ./alacritty.nix ./hyprland.nix ./hypridle.nix ./hyprlock.nix diff --git a/home/programs/dev/default.nix b/home/programs/dev/default.nix index 8b094ba..5862cda 100644 --- a/home/programs/dev/default.nix +++ b/home/programs/dev/default.nix @@ -1,7 +1,7 @@ { imports = [ ./git.nix - ./neovim.nix + ./neovim ./fstl.nix ./openscad.nix ./sqllite_browser.nix diff --git a/home/programs/dev/neovim/configs/init.lua b/home/programs/dev/neovim/configs/init.lua new file mode 100644 index 0000000..0fda20c --- /dev/null +++ b/home/programs/dev/neovim/configs/init.lua @@ -0,0 +1,37 @@ +vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" +vim.g.mapleader = " " + +-- bootstrap lazy and all plugins +local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not vim.uv.fs_stat(lazypath) then + local repo = "https://github.com/folke/lazy.nvim.git" + vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } +end + +vim.opt.rtp:prepend(lazypath) + +local lazy_config = require "configs.lazy" + +-- load plugins +require("lazy").setup({ + { + "NvChad/NvChad", + lazy = false, + branch = "v2.5", + import = "nvchad.plugins", + }, + + { import = "plugins" }, +}, lazy_config) + +-- load theme +dofile(vim.g.base46_cache .. "defaults") +dofile(vim.g.base46_cache .. "statusline") + +require "options" +require "nvchad.autocmds" + +vim.schedule(function() + require "mappings" +end) diff --git a/home/programs/dev/neovim/configs/lazy-lock.json b/home/programs/dev/neovim/configs/lazy-lock.json new file mode 100644 index 0000000..6a483ed --- /dev/null +++ b/home/programs/dev/neovim/configs/lazy-lock.json @@ -0,0 +1,34 @@ +{ + "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, + "NvChad": { "branch": "v2.5", "commit": "6f25b2739684389ca69ea8229386c098c566c408" }, + "base46": { "branch": "v3.0", "commit": "59566882e09a8a77dbdb33b678a93680c36ae089" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, + "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "conform.nvim": { "branch": "master", "commit": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d" }, + "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, + "fzf.vim": { "branch": "master", "commit": "245eaf8e50fe440729056ce8d4e7e2bb5b1ff9c9" }, + "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" }, + "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "mason-conform.nvim": { "branch": "main", "commit": "1983f353b29d8716751665c18d57e1ac0473a59a" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, + "menu": { "branch": "main", "commit": "7769b17c2a131108c02b10e9f844e504aa605cc2" }, + "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" }, + "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, + "nvim-cmp": { "branch": "main", "commit": "c27370703e798666486e3064b64d59eaf4bdc6d5" }, + "nvim-lint": { "branch": "master", "commit": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8" }, + "nvim-lspconfig": { "branch": "master", "commit": "8a1529e46eef5efc86c34c8d9bdd313abc2ecba0" }, + "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" }, + "nvim-treesitter": { "branch": "master", "commit": "1a314a58d6d7695d226b56f6b61b1596993d5ac7" }, + "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" }, + "openscad.nvim": { "branch": "main", "commit": "58baf76fd2f9e2fe2ca83ea120d56084edb8871e" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "telescope.nvim": { "branch": "master", "commit": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4" }, + "ui": { "branch": "v3.0", "commit": "57d403c219353b1f8e4cd635d058fbfcd9d647ea" }, + "volt": { "branch": "main", "commit": "21a2351697abfed26d4469b88d3ab124d55a1b3f" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +} diff --git a/home/programs/dev/neovim/configs/lua/chadrc.lua b/home/programs/dev/neovim/configs/lua/chadrc.lua new file mode 100644 index 0000000..a7aa89e --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/chadrc.lua @@ -0,0 +1,24 @@ +-- This file needs to have same structure as nvconfig.lua +-- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua +-- Please read that file to know all available options :( + +---@type ChadrcConfig +local M = {} + +M.base46 = { + theme = "radium", + + -- hl_override = { + -- Comment = { italic = true }, + -- ["@comment"] = { italic = true }, + -- }, +} + +-- M.nvdash = { load_on_startup = true } +-- M.ui = { +-- tabufline = { +-- lazyload = false +-- } +--} + +return M diff --git a/home/programs/dev/neovim/configs/lua/configs/conform.lua b/home/programs/dev/neovim/configs/lua/configs/conform.lua new file mode 100644 index 0000000..5b50b37 --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/conform.lua @@ -0,0 +1,15 @@ +local options = { + formatters_by_ft = { + lua = { "stylua" }, + -- css = { "prettier" }, + -- html = { "prettier" }, + }, + + format_on_save = { + -- These options will be passed to conform.format() + timeout_ms = 500, + lsp_fallback = true, + }, +} + +return options diff --git a/home/programs/dev/neovim/configs/lua/configs/lazy.lua b/home/programs/dev/neovim/configs/lua/configs/lazy.lua new file mode 100644 index 0000000..cd170bd --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/lazy.lua @@ -0,0 +1,47 @@ +return { + defaults = { lazy = true }, + install = { colorscheme = { "nvchad" } }, + + ui = { + icons = { + ft = "", + lazy = "󰂠 ", + loaded = "", + not_loaded = "", + }, + }, + + performance = { + rtp = { + disabled_plugins = { + "2html_plugin", + "tohtml", + "getscript", + "getscriptPlugin", + "gzip", + "logipat", + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "matchit", + "tar", + "tarPlugin", + "rrhelper", + "spellfile_plugin", + "vimball", + "vimballPlugin", + "zip", + "zipPlugin", + "tutor", + "rplugin", + "syntax", + "synmenu", + "optwin", + "compiler", + "bugreport", + "ftplugin", + }, + }, + }, +} diff --git a/home/programs/dev/neovim/configs/lua/configs/lint.lua b/home/programs/dev/neovim/configs/lua/configs/lint.lua new file mode 100644 index 0000000..51f32aa --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/lint.lua @@ -0,0 +1,21 @@ +local lint = require("lint") + +lint.linters_by_ft = { + lua = { "luacheck" }, +} + +lint.linters.luacheck.args = { + "--globals", + "vim", + "--formatter", + "plain", + "--codes", + "--ranges", + "-", +} + +vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + callback = function() + lint.try_lint() + end, +}) diff --git a/home/programs/dev/neovim/configs/lua/configs/lspconfig.lua b/home/programs/dev/neovim/configs/lua/configs/lspconfig.lua new file mode 100644 index 0000000..8f814e5 --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/lspconfig.lua @@ -0,0 +1,57 @@ +-- load defaults i.e lua_lsp +local on_attach = require("nvchad.configs.lspconfig").on_attach +local on_init = require("nvchad.configs.lspconfig").on_init +local capabilities = require("nvchad.configs.lspconfig").capabilities + +local lspconfig = require("lspconfig") + +-- List of all servers configured +lspconfig.servers = { + "lua_ls", + "templ", + "jedi_language_server", + -- "gopls", +} + +-- List of servers configured with default config +local default_servers = { + "templ", + -- "gopls", + "jedi_language_server", +} + +-- lsps with default config +for _, lsp in ipairs(default_servers) do + lspconfig[lsp].setup({ + on_attach = on_attach, + on_init = on_init, + capabilities = capabilities, + }) +end + +-- Lua LSP +lspconfig.lua_ls.setup({ + on_attach = on_attach, + on_init = on_init, + capabilities = capabilities, + + settings = { + Lua = { + diagnostics = { + enable = false, -- Disable all diagnostics from lua_ls + -- globals = { "vim" } + }, + workspace = { + library = { + vim.fn.expand("$VIMRUNTIME/lua"), + vim.fn.expand("$VIMRUNTIME/lua/vim/lsp"), + vim.fn.stdpath("data") .. "/lazy/ui/nvchad_types", + vim.fn.stdpath("data") .. "/lazy/lazy.nvim/lua/lazy", + --"${3rd}/love2d/library", + }, + maxPreload = 100000, + preloadFileSize = 10000, + }, + }, + }, +}) diff --git a/home/programs/dev/neovim/configs/lua/configs/mason-conform.lua b/home/programs/dev/neovim/configs/lua/configs/mason-conform.lua new file mode 100644 index 0000000..4fa05a7 --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/mason-conform.lua @@ -0,0 +1,4 @@ +require("mason-conform").setup({ + -- List of formatters to ignore during install + ignore_install = {}, +}) diff --git a/home/programs/dev/neovim/configs/lua/configs/mason-lint.lua b/home/programs/dev/neovim/configs/lua/configs/mason-lint.lua new file mode 100644 index 0000000..2f5a603 --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/mason-lint.lua @@ -0,0 +1,26 @@ +local lint = package.loaded["lint"] + +local ignore_install = {} + +local function table_contains(table, value) + for _, v in ipairs(table) do + if v == value then + return true + end + end + return false +end + +local all_linters = {} +for _, v in pairs(lint.linters_by_ft) do + for _, linter in ipairs(v) do + if not table_contains(ignore_install, linter) then + table.insert(all_linters, linter) + end + end +end + +require("mason-nvim-lint").setup({ + ensure_installed = all_linters, + automatic_installation = false, +}) diff --git a/home/programs/dev/neovim/configs/lua/configs/mason-lspconfig.lua b/home/programs/dev/neovim/configs/lua/configs/mason-lspconfig.lua new file mode 100644 index 0000000..cce6dd7 --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/mason-lspconfig.lua @@ -0,0 +1,24 @@ +local lspconfig = package.loaded["lspconfig"] + +local ignore_install = {} + +local function table_contains(table, value) + for _, v in ipairs(table) do + if v == value then + return true + end + end + return false +end + +local all_servers = {} +for _, s in ipairs(lspconfig.servers) do + if not table_contains(ignore_install, s) then + table.insert(all_servers, s) + end +end + +require("mason-lspconfig").setup({ + ensure_installed = all_servers, + automatic_installation = false, +}) diff --git a/home/programs/dev/neovim/configs/lua/configs/treesitter.lua b/home/programs/dev/neovim/configs/lua/configs/treesitter.lua new file mode 100644 index 0000000..d2a09cb --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/configs/treesitter.lua @@ -0,0 +1,26 @@ +local options = { + ensure_installed = { + "bash", + "fish", + "lua", + "luadoc", + "markdown", + "printf", + "toml", + "vim", + "vimdoc", + "yaml", + -- Languages + "python", + "templ", + }, + + highlight = { + enable = true, + use_languagetree = true, + }, + + indent = { enable = true }, +} + +require("nvim-treesitter.configs").setup(options) diff --git a/home/programs/dev/neovim/configs/lua/mappings.lua b/home/programs/dev/neovim/configs/lua/mappings.lua new file mode 100644 index 0000000..783b78f --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/mappings.lua @@ -0,0 +1,10 @@ +require "nvchad.mappings" + +-- add yours here + +local map = vim.keymap.set + +map("n", ";", ":", { desc = "CMD enter command mode" }) +map("i", "jk", "") + +-- map({ "n", "i", "v" }, "", " w ") diff --git a/home/programs/dev/neovim/configs/lua/options.lua b/home/programs/dev/neovim/configs/lua/options.lua new file mode 100644 index 0000000..95205d5 --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/options.lua @@ -0,0 +1,7 @@ +require("nvchad.options") + +-- add yours here! +local o = vim.o +o.shiftwidth = 4 +o.tabstop = 4 +o.softtabstop = 4 diff --git a/home/programs/dev/neovim/configs/lua/plugins/init.lua b/home/programs/dev/neovim/configs/lua/plugins/init.lua new file mode 100644 index 0000000..a5430cb --- /dev/null +++ b/home/programs/dev/neovim/configs/lua/plugins/init.lua @@ -0,0 +1,70 @@ +return { + + { + "nvim-treesitter/nvim-treesitter", + event = { "BufReadPre", "BufNewFile" }, + config = function() + require("configs.treesitter") + end, + }, + + { + "mfussenegger/nvim-lint", + event = { "BufReadPre", "BufNewFile" }, + config = function() + require("configs.lint") + end, + }, + + -- { + -- "rshkarin/mason-nvim-lint", + -- event = "VeryLazy", + -- config = function() + -- require("config.mason-lint") + -- end, + -- }, + + { + "stevearc/conform.nvim", + event = "BufWritePre", -- uncomment for format on save + opts = require("configs.conform"), + }, + + { + "zapling/mason-conform.nvim", + event = "VeryLazy", + dependencies = { "conform.nvim" }, + config = function() + require("configs.mason-conform") + end, + }, + + { + "neovim/nvim-lspconfig", + event = { "BufReadPre", "BufNewFile" }, + config = function() + require("nvchad.configs.lspconfig").defaults() + require("configs.lspconfig") + end, + }, + + { + "williamboman/mason-lspconfig.nvim", + event = "VeryLazy", + dependencies = { "nvim-lspconfig" }, + config = function() + require("configs.mason-lspconfig") + end, + }, + + { + "salkin-mada/openscad.nvim", + config = function() + vim.g.openscad_load_snippets = true + vim.g.openscad_default_mappings = true + vim.g.openscad_auto_open = true + require("openscad") + end, + dependencies = { "L3MON4D3/LuaSnip", "junegunn/fzf.vim" }, + }, +} diff --git a/home/programs/dev/neovim.nix b/home/programs/dev/neovim/default.nix similarity index 61% rename from home/programs/dev/neovim.nix rename to home/programs/dev/neovim/default.nix index 144c688..ca16b17 100644 --- a/home/programs/dev/neovim.nix +++ b/home/programs/dev/neovim/default.nix @@ -4,9 +4,14 @@ viAlias = true; vimAlias = true; defaultEditor = true; - plugins = with pkgs.vimPlugins; [ + /*plugins = with pkgs.vimPlugins; [ nvim-tree-lua nvim-treesitter.withAllGrammars - ]; + ];*/ + }; + + home.file.".config/nvim" = { + source = ./configs; + recursive = true; }; } diff --git a/home/programs/games/steam.nix b/home/programs/games/steam.nix index f832204..c9da423 100644 --- a/home/programs/games/steam.nix +++ b/home/programs/games/steam.nix @@ -3,7 +3,13 @@ config, ... }: { - home.packages = with pkgs; [ + /*home.packages = with pkgs; [ steam - ]; + ];*/ + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; } diff --git a/home/programs/media/audacity.nix b/home/programs/media/audacity.nix new file mode 100644 index 0000000..b38175d --- /dev/null +++ b/home/programs/media/audacity.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + audacity + yt-dlp + ]; +} diff --git a/home/programs/media/audio.nix b/home/programs/media/audio.nix index ca58ca1..dd1be86 100644 --- a/home/programs/media/audio.nix +++ b/home/programs/media/audio.nix @@ -9,7 +9,9 @@ pavucontrol playerctl pulsemixer - ]; + + ffmpeg + ]; programs.mpv = { enable = true; diff --git a/modules/system.nix b/modules/system.nix index dcba698..ddd3f06 100644 --- a/modules/system.nix +++ b/modules/system.nix @@ -14,6 +14,7 @@ extraGroups = ["networkmanager" "wheel" "podman"]; }; + programs.steam.enable = true; programs.dconf.enable = true; # List packages installed in system profile. To search, run: diff --git a/users/phil/home.nix b/users/phil/home.nix index 6ee0d06..3b619ae 100644 --- a/users/phil/home.nix +++ b/users/phil/home.nix @@ -16,6 +16,7 @@ ../../home/programs/dev # Dev Tools ../../home/programs/media/media.nix + ../../home/programs/media/audacity.nix ../../home/programs/media/obs.nix ../../home/programs/media/spotify.nix @@ -33,7 +34,7 @@ # Games ../../home/programs/games/itch.nix - ../../home/programs/games/steam.nix +# ../../home/programs/games/steam.nix ../../home/programs/games/lutris.nix ../../home/programs/games/opensource.nix