Add new config
This commit is contained in:
parent
f5274dee16
commit
c1fb781f6e
@ -6,6 +6,11 @@ matches:
|
|||||||
replace: "Gabriel Brown"
|
replace: "Gabriel Brown"
|
||||||
- trigger: ":fin"
|
- trigger: ":fin"
|
||||||
replace: "Gabriel A Brown"
|
replace: "Gabriel A Brown"
|
||||||
|
# Email
|
||||||
|
- trigger: ":em"
|
||||||
|
replace: "gib@gibbyb.com"
|
||||||
|
- trigger: ":empro"
|
||||||
|
replace: "me@gbrown.org"
|
||||||
|
|
||||||
# Date
|
# Date
|
||||||
- trigger: ":date"
|
- trigger: ":date"
|
||||||
@ -54,6 +59,10 @@ matches:
|
|||||||
- trigger: ":pymain"
|
- trigger: ":pymain"
|
||||||
replace: "#\n#\n# Author: GibbyB (Gabriel Brown)\n#\n\nfrom typing import List\n\n\ndef main():\npass\n\n\nif __name__ == \"__main__\":\nmain()"
|
replace: "#\n#\n# Author: GibbyB (Gabriel Brown)\n#\n\nfrom typing import List\n\n\ndef main():\npass\n\n\nif __name__ == \"__main__\":\nmain()"
|
||||||
|
|
||||||
|
- trigger: ":tsblock"
|
||||||
|
replace: "```TypeScript\n\n```"
|
||||||
|
force_clipboard: true
|
||||||
|
|
||||||
# Frequent Misspellings
|
# Frequent Misspellings
|
||||||
- trigger: "yoututbe"
|
- trigger: "yoututbe"
|
||||||
replace: "YouTube"
|
replace: "YouTube"
|
||||||
@ -64,6 +73,9 @@ matches:
|
|||||||
- trigger: "nivm"
|
- trigger: "nivm"
|
||||||
replace: "nvim"
|
replace: "nvim"
|
||||||
|
|
||||||
|
- trigger: "updaet"
|
||||||
|
replace: "update"
|
||||||
|
|
||||||
# Good Emojis
|
# Good Emojis
|
||||||
- trigger: ":happy:"
|
- trigger: ":happy:"
|
||||||
replace: "\U0001F603"
|
replace: "\U0001F603"
|
||||||
|
@ -36,10 +36,6 @@
|
|||||||
"wmClass": "zoom",
|
"wmClass": "zoom",
|
||||||
"mode": "float"
|
"mode": "float"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"wmClass": "mpv",
|
|
||||||
"mode": "float"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"wmClass": "Bitwarden",
|
"wmClass": "Bitwarden",
|
||||||
"mode": "float"
|
"mode": "float"
|
||||||
@ -63,6 +59,14 @@
|
|||||||
{
|
{
|
||||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
"mode": "float"
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Spotify",
|
||||||
|
"mode": "float"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -988,7 +988,7 @@ background #222436
|
|||||||
|
|
||||||
#: The foreground and background colors.
|
#: The foreground and background colors.
|
||||||
|
|
||||||
background_opacity 0.98
|
background_opacity 0.90
|
||||||
|
|
||||||
#: The opacity of the background. A number between zero and one, where
|
#: The opacity of the background. A number between zero and one, where
|
||||||
#: one is opaque and zero is fully transparent. This will only work if
|
#: one is opaque and zero is fully transparent. This will only work if
|
||||||
@ -1009,7 +1009,7 @@ background_opacity 0.98
|
|||||||
#: this option when reloading the config will only work if
|
#: this option when reloading the config will only work if
|
||||||
#: dynamic_background_opacity was enabled in the original config.
|
#: dynamic_background_opacity was enabled in the original config.
|
||||||
|
|
||||||
# background_image ~/Pictures/Wallpapers/Best_of_the_best/ogbackground.png
|
background_image ~/Pictures/Wallpapers/Best_of_the_best/ogbackground.png
|
||||||
|
|
||||||
#: Path to a background image. Must be in PNG format.
|
#: Path to a background image. Must be in PNG format.
|
||||||
|
|
||||||
|
@ -1,36 +1,40 @@
|
|||||||
{
|
{
|
||||||
"LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" },
|
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
|
||||||
"barbar.nvim": { "branch": "master", "commit": "79f7d16578a167bdf5355725551ef7d90613a601" },
|
"barbar.nvim": { "branch": "master", "commit": "53b5a2f34b68875898f0531032fbf090e3952ad7" },
|
||||||
"cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" },
|
"cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
||||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "f4928ba14eb6c667786ac7d69927f6aee6719f1e" },
|
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
||||||
"image.nvim": { "branch": "master", "commit": "61c76515cfc3cdac8123ece9e9761b20c3dc1315" },
|
"image.nvim": { "branch": "master", "commit": "b991fc7f845bc6ab40c6ec00b39750dcd5190010" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "9a374a0fb4d3ac42dac4a129d4bead7252473c77" },
|
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
|
||||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "87701af045b3032515776abeb47eb8c2ddb5e679" },
|
"leetcode.nvim": { "branch": "master", "commit": "db7e1cd6b9191b34b4c1f2f96e4e3949cde9f951" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
|
"lsp-zero.nvim": { "branch": "v3.x", "commit": "ab2a3413646fedd77aa0eab4214a6473e62f6a64" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "58bc9119ca273c0ce5a66fad1927ef0f617bd81b" },
|
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "c6c686781f9841d855bf1b926e10aa5e19430a38" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" },
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
|
||||||
"nerdcommenter": { "branch": "master", "commit": "7bb1f72e802a80e37bdda5f6906c69b5a93de1eb" },
|
"nerdcommenter": { "branch": "master", "commit": "66c07e4083ab02ed2540ac289cc602c70b858c13" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" },
|
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "e26da408cf955afa8e9ddbadd510e84ea8976cd7" },
|
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "667b9dbbfa2d0071c5677c429ddcf89fb931b53f" },
|
"nvim-lspconfig": { "branch": "master", "commit": "ff2b85abaa810f6611233dbe6d31c07510ebf43d" },
|
||||||
"nvim-treesitter-context": { "branch": "master", "commit": "2aba92ceb1479485953007f4d5adf34d0b66917e" },
|
"nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "e612de3d3a41a6b7be47f51e956dddabcbf419d9" },
|
"nvim-treesitter": { "branch": "master", "commit": "17678b00fa5c2712890a0ec2e269d0a4de1207df" },
|
||||||
|
"nvim-treesitter-context": { "branch": "master", "commit": "2bcf700b59bc92850ca83a1c02e86ba832e0fae0" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "63f552a7f59badc6e6b6d22e603150f0d5abebb7" },
|
||||||
"nvim-window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" },
|
"nvim-window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" },
|
||||||
"playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
|
"playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
||||||
"refactoring.nvim": { "branch": "master", "commit": "8ef9cfb8199bed4be4d609cc4b5dbfb5416b3ca6" },
|
"refactoring.nvim": { "branch": "master", "commit": "2db6d378e873de31d18ade549c2edba64ff1c2e3" },
|
||||||
"supermaven-nvim": { "branch": "main", "commit": "d71257f431e190d9236d7f30da4c2d659389e91f" },
|
"supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "1471dab694ad88351185758bb4275624d8b798ec" },
|
"tokyonight.nvim": { "branch": "main", "commit": "45d22cf0e1b93476d3b6d362d720412b3d34465c" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "ad8ef38666834e9e438f84bd446657445bc2a71e" },
|
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" },
|
||||||
"undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
|
"undotree": { "branch": "master", "commit": "78b5241191852ffa9bb5da5ff2ee033160798c3b" },
|
||||||
"vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" }
|
"vim-fugitive": { "branch": "master", "commit": "fcb4db52e7f65b95705aa58f0f2df1312c1f2df2" }
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ require("gib_nvim.set")
|
|||||||
require("gib_nvim.colors")
|
require("gib_nvim.colors")
|
||||||
require("gib_nvim.cloak")
|
require("gib_nvim.cloak")
|
||||||
require("gib_nvim.fugitive")
|
require("gib_nvim.fugitive")
|
||||||
--require("gib_nvim.harpoon")
|
|
||||||
require("gib_nvim.lsp")
|
require("gib_nvim.lsp")
|
||||||
require("gib_nvim.lualine")
|
require("gib_nvim.lualine")
|
||||||
require("gib_nvim.neotree")
|
require("gib_nvim.neotree")
|
||||||
|
@ -34,9 +34,6 @@ require("lazy").setup({
|
|||||||
{
|
{
|
||||||
'nvim-treesitter/nvim-treesitter-context'
|
'nvim-treesitter/nvim-treesitter-context'
|
||||||
},
|
},
|
||||||
--{
|
|
||||||
--'theprimeagen/harpoon'
|
|
||||||
--},
|
|
||||||
{
|
{
|
||||||
"ThePrimeagen/refactoring.nvim",
|
"ThePrimeagen/refactoring.nvim",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
@ -65,7 +62,6 @@ require("lazy").setup({
|
|||||||
{'saadparwaiz1/cmp_luasnip'},
|
{'saadparwaiz1/cmp_luasnip'},
|
||||||
{'rafamadriz/friendly-snippets'},
|
{'rafamadriz/friendly-snippets'},
|
||||||
{
|
{
|
||||||
--'github/copilot.vim'
|
|
||||||
'supermaven-inc/supermaven-nvim',
|
'supermaven-inc/supermaven-nvim',
|
||||||
config = function()
|
config = function()
|
||||||
require('supermaven-nvim').setup({
|
require('supermaven-nvim').setup({
|
||||||
@ -75,9 +71,6 @@ require("lazy").setup({
|
|||||||
accept_word = '<C-.>',
|
accept_word = '<C-.>',
|
||||||
},
|
},
|
||||||
disable_inline_completion = false, -- for cmp
|
disable_inline_completion = false, -- for cmp
|
||||||
condition = function()
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
@ -95,14 +88,16 @@ require("lazy").setup({
|
|||||||
'scrooloose/nerdcommenter'
|
'scrooloose/nerdcommenter'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'nvim-neo-tree/neo-tree.nvim', branch = 'v3.x',
|
'nvim-neo-tree/neo-tree.nvim',
|
||||||
|
branch = 'v3.x',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
'nvim-tree/nvim-web-devicons',
|
'nvim-tree/nvim-web-devicons',
|
||||||
'MunifTanjim/nui.nvim',
|
'MunifTanjim/nui.nvim',
|
||||||
'3rd/image.nvim',
|
'3rd/image.nvim',
|
||||||
{
|
{
|
||||||
's1n7ax/nvim-window-picker', version = '2.*',
|
's1n7ax/nvim-window-picker',
|
||||||
|
version = '2.*',
|
||||||
config = function()
|
config = function()
|
||||||
require 'window-picker'.setup({
|
require 'window-picker'.setup({
|
||||||
filter_rules = {
|
filter_rules = {
|
||||||
@ -117,6 +112,23 @@ require("lazy").setup({
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
config = function()
|
||||||
|
require('neo-tree').setup({
|
||||||
|
close_if_last_window = true,
|
||||||
|
popup_border_style = "rounded",
|
||||||
|
enable_git_status = true,
|
||||||
|
enable_diagnostics = true,
|
||||||
|
default_component_configs = {
|
||||||
|
container = {
|
||||||
|
enable_character_fade = true
|
||||||
|
},
|
||||||
|
indent = {
|
||||||
|
indent_size = 2,
|
||||||
|
padding = 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'romgrk/barbar.nvim', dependencies = {
|
'romgrk/barbar.nvim', dependencies = {
|
||||||
@ -130,4 +142,64 @@ require("lazy").setup({
|
|||||||
},
|
},
|
||||||
version = '^1.0.0',
|
version = '^1.0.0',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'windwp/nvim-autopairs',
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'windwp/nvim-ts-autotag',
|
||||||
|
config = function ()
|
||||||
|
require('nvim-ts-autotag').setup()
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'kawre/leetcode.nvim',
|
||||||
|
build = ':TSUpdate html',
|
||||||
|
dependencies = {
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
'MunifTanjim/nui.nvim',
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
'rcarriga/nvim-notify',
|
||||||
|
'nvim-tree/nvim-web-devicons',
|
||||||
|
'3rd/image.nvim',
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
arg = "lc",
|
||||||
|
lang = "typescript",
|
||||||
|
image_support = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"3rd/image.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
backend = "kitty",
|
||||||
|
integrations = {
|
||||||
|
markdown = {
|
||||||
|
enabled = true,
|
||||||
|
clear_in_insert_mode = false,
|
||||||
|
download_remote_images = true,
|
||||||
|
only_render_image_at_cursor = false,
|
||||||
|
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
|
||||||
|
},
|
||||||
|
neorg = {
|
||||||
|
enabled = true,
|
||||||
|
clear_in_insert_mode = false,
|
||||||
|
download_remote_images = true,
|
||||||
|
only_render_image_at_cursor = false,
|
||||||
|
filetypes = { "norg" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
max_width = nil,
|
||||||
|
max_height = nil,
|
||||||
|
max_width_window_percentage = nil,
|
||||||
|
max_height_window_percentage = 50,
|
||||||
|
kitty_method = "normal",
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
local lsp_zero = require('lsp-zero')
|
local lsp = require('lsp-zero')
|
||||||
|
|
||||||
lsp_zero.on_attach(function(client, bufnr)
|
lsp.preset('recommended')
|
||||||
|
|
||||||
|
lsp.on_attach(function(client, bufnr)
|
||||||
local opts = {buffer = bufnr, remap = false}
|
local opts = {buffer = bufnr, remap = false}
|
||||||
|
|
||||||
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
||||||
@ -15,35 +17,37 @@ lsp_zero.on_attach(function(client, bufnr)
|
|||||||
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
|
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
require('mason').setup({})
|
require('mason').setup({
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
package_installed = "✓",
|
||||||
|
package_pending = "➜",
|
||||||
|
package_uninstalled = "✗"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
require('mason-lspconfig').setup({
|
require('mason-lspconfig').setup({
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
'bashls',
|
'bashls',
|
||||||
'clangd',
|
|
||||||
'cmake',
|
|
||||||
'cssls',
|
'cssls',
|
||||||
'cssmodules_ls',
|
'cssmodules_ls',
|
||||||
'docker_compose_language_service',
|
'docker_compose_language_service',
|
||||||
'dockerls',
|
'dockerls',
|
||||||
'eslint',
|
'eslint',
|
||||||
'graphql',
|
|
||||||
'intelephense',
|
'intelephense',
|
||||||
'jsonls',
|
'jsonls',
|
||||||
'kotlin_language_server',
|
|
||||||
'lua_ls',
|
'lua_ls',
|
||||||
'pyright',
|
'pyright',
|
||||||
'rust_analyzer',
|
'rust_analyzer',
|
||||||
'sqlls',
|
'sqlls',
|
||||||
'svelte',
|
'svelte',
|
||||||
'tailwindcss',
|
'tailwindcss',
|
||||||
'tsserver',
|
|
||||||
'yamlls',
|
'yamlls',
|
||||||
'vimls',
|
|
||||||
},
|
},
|
||||||
handlers = {
|
handlers = {
|
||||||
lsp_zero.default_setup,
|
lsp.default_setup,
|
||||||
lua_ls = function()
|
lua_ls = function()
|
||||||
local lua_opts = lsp_zero.nvim_lua_ls()
|
local lua_opts = lsp.nvim_lua_ls()
|
||||||
require('lspconfig').lua_ls.setup(lua_opts)
|
require('lspconfig').lua_ls.setup(lua_opts)
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
@ -53,6 +57,11 @@ local cmp = require('cmp')
|
|||||||
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
||||||
|
|
||||||
cmp.setup({
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
require('luasnip').lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
sources = {
|
sources = {
|
||||||
--{name = 'supermaven'},
|
--{name = 'supermaven'},
|
||||||
{name = 'path'},
|
{name = 'path'},
|
||||||
@ -61,7 +70,7 @@ cmp.setup({
|
|||||||
{name = 'luasnip', keyword_length = 2},
|
{name = 'luasnip', keyword_length = 2},
|
||||||
{name = 'buffer', keyword_length = 3},
|
{name = 'buffer', keyword_length = 3},
|
||||||
},
|
},
|
||||||
formatting = lsp_zero.cmp_format(),
|
formatting = lsp.cmp_format(),
|
||||||
mapping = cmp.mapping.preset.insert({
|
mapping = cmp.mapping.preset.insert({
|
||||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
||||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
||||||
@ -70,4 +79,4 @@ cmp.setup({
|
|||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
lsp_zero.setup()
|
lsp.setup()
|
||||||
|
@ -51,6 +51,9 @@ vim.keymap.set("n", "Q", "<nop>")
|
|||||||
-- Format the current buffer using the language server protocol (LSP)
|
-- Format the current buffer using the language server protocol (LSP)
|
||||||
vim.keymap.set("n", "<leader>kf", vim.lsp.buf.format)
|
vim.keymap.set("n", "<leader>kf", vim.lsp.buf.format)
|
||||||
|
|
||||||
|
-- Toggle Supermaven with :SupermavenToggle
|
||||||
|
vim.keymap.set("n", "<leader>sm", ":SupermavenToggle<CR>")
|
||||||
|
|
||||||
-- Perform a search and replace operation using the word under the cursor
|
-- Perform a search and replace operation using the word under the cursor
|
||||||
vim.keymap.set("n", "<leader>sr", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
vim.keymap.set("n", "<leader>sr", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
||||||
|
|
||||||
|
@ -26,6 +26,6 @@ vim.opt.isfname:append("@-@")
|
|||||||
|
|
||||||
vim.opt.updatetime = 50
|
vim.opt.updatetime = 50
|
||||||
|
|
||||||
vim.opt.colorcolumn = "90"
|
vim.opt.colorcolumn = "120"
|
||||||
vim.o.background = "dark" -- or "light" for light mode
|
vim.o.background = "dark" -- or "light" for light mode
|
||||||
vim.cmd([[colorscheme tokyonight-moon]])
|
vim.cmd([[colorscheme tokyonight-moon]])
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Ollama for Gib AI Website
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/bin/bash -lc 'OLLAMA_HOST=0.0.0.0:4242 /usr/local/bin/ollama serve'
|
|
||||||
User=ollama
|
|
||||||
Group=ollama
|
|
||||||
Restart=always
|
|
||||||
RestartSec=3
|
|
||||||
Environment="PATH=/home/gib/.bun/bin:/home/gib/.bun/bin:/home/gib/.bun/bin:/home/gib/.bun/bin:/home/gib/.local/bin:/home/gib/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/gib/.composer/vendor/bin:/home/gib/.dotnet/tools:/home/gib/.local/share/JetBrains/Toolbox/scripts:/home/gib/.local/share/JetBrains/Toolbox/scripts:/home/gib/.local/share/JetBrains/Toolbox/scripts"
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
@ -39,5 +39,3 @@ alias gcad='git commit -a --amend'
|
|||||||
# Compression
|
# Compression
|
||||||
compress() { tar -czf "${1%/}.tar.gz" "${1%/}"; }
|
compress() { tar -czf "${1%/}.tar.gz" "${1%/}"; }
|
||||||
alias decompress="tar -xzf"
|
alias decompress="tar -xzf"
|
||||||
|
|
||||||
export HSA_OVERRIDE_GFX_VERSION=11.0.0
|
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
# Be fancy
|
# Be fancy
|
||||||
source ~/.local/share/sunhat/bin/ascii.sh
|
source ~/.local/share/sunhat/bin/ascii.sh
|
||||||
|
|
||||||
# Needed for all installers
|
# Quick Questions
|
||||||
sudo dnf update -y
|
read -p "What is your hostname? " HOSTNAME
|
||||||
sudo dnf install -y curl git unzip
|
|
||||||
|
|
||||||
# Ensure computer doesn't go to sleep while installing
|
# Ensure computer doesn't go to sleep while installing
|
||||||
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
||||||
gsettings set org.gnome.desktop.session idle-delay 0
|
gsettings set org.gnome.desktop.session idle-delay 0
|
||||||
|
|
||||||
|
# Needed for all installers
|
||||||
|
sudo dnf update -y
|
||||||
|
sudo dnf install -y curl git unzip neovim
|
||||||
|
|
||||||
# Run Scripts Required for Application Installs
|
# Run Scripts Required for Application Installs
|
||||||
for script in ~/.local/share/sunhat/sources/*.sh; do source $script; done
|
for script in ~/.local/share/sunhat/sources/*.sh; do source $script; done
|
||||||
|
|
||||||
|
402
install/optional/service_ollama_new.sh
Normal file
402
install/optional/service_ollama_new.sh
Normal file
@ -0,0 +1,402 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# This script installs Ollama on Linux.
|
||||||
|
# It detects the current operating system architecture and installs the appropriate version of Ollama.
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
red="$( (/usr/bin/tput bold || :; /usr/bin/tput setaf 1 || :) 2>&-)"
|
||||||
|
plain="$( (/usr/bin/tput sgr0 || :) 2>&-)"
|
||||||
|
|
||||||
|
status() { echo ">>> $*" >&2; }
|
||||||
|
error() { echo "${red}ERROR:${plain} $*"; exit 1; }
|
||||||
|
warning() { echo "${red}WARNING:${plain} $*"; }
|
||||||
|
|
||||||
|
TEMP_DIR=$(mktemp -d)
|
||||||
|
cleanup() { rm -rf $TEMP_DIR; }
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
available() { command -v $1 >/dev/null; }
|
||||||
|
require() {
|
||||||
|
local MISSING=''
|
||||||
|
for TOOL in $*; do
|
||||||
|
if ! available $TOOL; then
|
||||||
|
MISSING="$MISSING $TOOL"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo $MISSING
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$(uname -s)" = "Linux" ] || error 'This script is intended to run on Linux only.'
|
||||||
|
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
case "$ARCH" in
|
||||||
|
x86_64) ARCH="amd64" ;;
|
||||||
|
aarch64|arm64) ARCH="arm64" ;;
|
||||||
|
*) error "Unsupported architecture: $ARCH" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
IS_WSL2=false
|
||||||
|
|
||||||
|
KERN=$(uname -r)
|
||||||
|
case "$KERN" in
|
||||||
|
*icrosoft*WSL2 | *icrosoft*wsl2) IS_WSL2=true;;
|
||||||
|
*icrosoft) error "Microsoft WSL1 is not currently supported. Please use WSL2 with 'wsl --set-version <distro> 2'" ;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
VER_PARAM="${OLLAMA_VERSION:+?version=$OLLAMA_VERSION}"
|
||||||
|
|
||||||
|
SUDO=
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
# Running as root, no need for sudo
|
||||||
|
if ! available sudo; then
|
||||||
|
error "This script requires superuser permissions. Please re-run as root."
|
||||||
|
fi
|
||||||
|
|
||||||
|
SUDO="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NEEDS=$(require curl awk grep sed tee xargs)
|
||||||
|
if [ -n "$NEEDS" ]; then
|
||||||
|
status "ERROR: The following tools are required but missing:"
|
||||||
|
for NEED in $NEEDS; do
|
||||||
|
echo " - $NEED"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for BINDIR in /usr/local/bin /usr/bin /bin; do
|
||||||
|
echo $PATH | grep -q $BINDIR && break || continue
|
||||||
|
done
|
||||||
|
OLLAMA_INSTALL_DIR=$(dirname ${BINDIR})
|
||||||
|
|
||||||
|
status "Installing ollama to $OLLAMA_INSTALL_DIR"
|
||||||
|
$SUDO install -o0 -g0 -m755 -d $BINDIR
|
||||||
|
$SUDO install -o0 -g0 -m755 -d "$OLLAMA_INSTALL_DIR"
|
||||||
|
if curl -I --silent --fail --location "https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}" >/dev/null ; then
|
||||||
|
status "Downloading Linux ${ARCH} bundle"
|
||||||
|
curl --fail --show-error --location --progress-bar \
|
||||||
|
"https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}" | \
|
||||||
|
$SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
|
||||||
|
BUNDLE=1
|
||||||
|
if [ "$OLLAMA_INSTALL_DIR/bin/ollama" != "$BINDIR/ollama" ] ; then
|
||||||
|
status "Making ollama accessible in the PATH in $BINDIR"
|
||||||
|
$SUDO ln -sf "$OLLAMA_INSTALL_DIR/ollama" "$BINDIR/ollama"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
status "Downloading Linux ${ARCH} CLI"
|
||||||
|
curl --fail --show-error --location --progress-bar -o "$TEMP_DIR/ollama"\
|
||||||
|
"https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}"
|
||||||
|
$SUDO install -o0 -g0 -m755 $TEMP_DIR/ollama $OLLAMA_INSTALL_DIR/ollama
|
||||||
|
BUNDLE=0
|
||||||
|
if [ "$OLLAMA_INSTALL_DIR/ollama" != "$BINDIR/ollama" ] ; then
|
||||||
|
status "Making ollama accessible in the PATH in $BINDIR"
|
||||||
|
$SUDO ln -sf "$OLLAMA_INSTALL_DIR/ollama" "$BINDIR/ollama"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for NVIDIA JetPack systems with additional downloads
|
||||||
|
if [ -f /etc/nv_tegra_release ] ; then
|
||||||
|
if grep R36 /etc/nv_tegra_release > /dev/null ; then
|
||||||
|
status "Downloading JetPack 6 components"
|
||||||
|
curl --fail --show-error --location --progress-bar \
|
||||||
|
"https://ollama.com/download/ollama-linux-${ARCH}-jetpack6.tgz${VER_PARAM}" | \
|
||||||
|
$SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
|
||||||
|
elif grep R35 /etc/nv_tegra_release > /dev/null ; then
|
||||||
|
status "Downloading JetPack 5 components"
|
||||||
|
curl --fail --show-error --location --progress-bar \
|
||||||
|
"https://ollama.com/download/ollama-linux-${ARCH}-jetpack5.tgz${VER_PARAM}" | \
|
||||||
|
$SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
|
||||||
|
else
|
||||||
|
warning "Unsupported JetPack version detected. GPU may not be supported"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_success() {
|
||||||
|
status 'The Ollama API is now available at 127.0.0.1:11434.'
|
||||||
|
status 'Install complete. Run "ollama" from the command line.'
|
||||||
|
}
|
||||||
|
trap install_success EXIT
|
||||||
|
|
||||||
|
# Everything from this point onwards is optional.
|
||||||
|
|
||||||
|
configure_systemd() {
|
||||||
|
if ! id ollama >/dev/null 2>&1; then
|
||||||
|
status "Creating ollama user..."
|
||||||
|
$SUDO useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
|
||||||
|
fi
|
||||||
|
if getent group render >/dev/null 2>&1; then
|
||||||
|
status "Adding ollama user to render group..."
|
||||||
|
$SUDO usermod -a -G render ollama
|
||||||
|
fi
|
||||||
|
if getent group video >/dev/null 2>&1; then
|
||||||
|
status "Adding ollama user to video group..."
|
||||||
|
$SUDO usermod -a -G video ollama
|
||||||
|
fi
|
||||||
|
|
||||||
|
status "Adding current user to ollama group..."
|
||||||
|
$SUDO usermod -a -G ollama $(whoami)
|
||||||
|
|
||||||
|
status "Creating ollama systemd service..."
|
||||||
|
cat <<EOF | $SUDO tee /etc/systemd/system/ollama.service >/dev/null
|
||||||
|
[Unit]
|
||||||
|
Description=Ollama Service
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/bin/bash -lc 'OLLAMA_HOST=0.0.0.0:4242 $BINDIR/ollama serve'
|
||||||
|
User=ollama
|
||||||
|
Group=ollama
|
||||||
|
Restart=always
|
||||||
|
RestartSec=3
|
||||||
|
Environment="PATH=$PATH"
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
SYSTEMCTL_RUNNING="$(systemctl is-system-running || true)"
|
||||||
|
case $SYSTEMCTL_RUNNING in
|
||||||
|
running|degraded)
|
||||||
|
status "Enabling and starting ollama service..."
|
||||||
|
$SUDO systemctl daemon-reload
|
||||||
|
$SUDO systemctl enable ollama
|
||||||
|
|
||||||
|
start_service() { $SUDO systemctl restart ollama; }
|
||||||
|
trap start_service EXIT
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
warning "systemd is not running"
|
||||||
|
if [ "$IS_WSL2" = true ]; then
|
||||||
|
warning "see https://learn.microsoft.com/en-us/windows/wsl/systemd#how-to-enable-systemd to enable it"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
if available systemctl; then
|
||||||
|
configure_systemd
|
||||||
|
fi
|
||||||
|
|
||||||
|
# WSL2 only supports GPUs via nvidia passthrough
|
||||||
|
# so check for nvidia-smi to determine if GPU is available
|
||||||
|
if [ "$IS_WSL2" = true ]; then
|
||||||
|
if available nvidia-smi && [ -n "$(nvidia-smi | grep -o "CUDA Version: [0-9]*\.[0-9]*")" ]; then
|
||||||
|
status "Nvidia GPU detected."
|
||||||
|
fi
|
||||||
|
install_success
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Don't attempt to install drivers on Jetson systems
|
||||||
|
if [ -f /etc/nv_tegra_release ] ; then
|
||||||
|
status "NVIDIA JetPack ready."
|
||||||
|
install_success
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install GPU dependencies on Linux
|
||||||
|
if ! available lspci && ! available lshw; then
|
||||||
|
warning "Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
check_gpu() {
|
||||||
|
# Look for devices based on vendor ID for NVIDIA and AMD
|
||||||
|
case $1 in
|
||||||
|
lspci)
|
||||||
|
case $2 in
|
||||||
|
nvidia) available lspci && lspci -d '10de:' | grep -q 'NVIDIA' || return 1 ;;
|
||||||
|
amdgpu) available lspci && lspci -d '1002:' | grep -q 'AMD' || return 1 ;;
|
||||||
|
esac ;;
|
||||||
|
lshw)
|
||||||
|
case $2 in
|
||||||
|
nvidia) available lshw && $SUDO lshw -c display -numeric -disable network | grep -q 'vendor: .* \[10DE\]' || return 1 ;;
|
||||||
|
amdgpu) available lshw && $SUDO lshw -c display -numeric -disable network | grep -q 'vendor: .* \[1002\]' || return 1 ;;
|
||||||
|
esac ;;
|
||||||
|
nvidia-smi) available nvidia-smi || return 1 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
if check_gpu nvidia-smi; then
|
||||||
|
status "NVIDIA GPU installed."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! check_gpu lspci nvidia && ! check_gpu lshw nvidia && ! check_gpu lspci amdgpu && ! check_gpu lshw amdgpu; then
|
||||||
|
install_success
|
||||||
|
warning "No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_gpu lspci amdgpu || check_gpu lshw amdgpu; then
|
||||||
|
if [ $BUNDLE -ne 0 ]; then
|
||||||
|
status "Downloading Linux ROCm ${ARCH} bundle"
|
||||||
|
curl --fail --show-error --location --progress-bar \
|
||||||
|
"https://ollama.com/download/ollama-linux-${ARCH}-rocm.tgz${VER_PARAM}" | \
|
||||||
|
$SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
|
||||||
|
|
||||||
|
install_success
|
||||||
|
status "AMD GPU ready."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
# Look for pre-existing ROCm v6 before downloading the dependencies
|
||||||
|
for search in "${HIP_PATH:-''}" "${ROCM_PATH:-''}" "/opt/rocm" "/usr/lib64"; do
|
||||||
|
if [ -n "${search}" ] && [ -e "${search}/libhipblas.so.2" -o -e "${search}/lib/libhipblas.so.2" ]; then
|
||||||
|
status "Compatible AMD GPU ROCm library detected at ${search}"
|
||||||
|
install_success
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
status "Downloading AMD GPU dependencies..."
|
||||||
|
$SUDO rm -rf /usr/share/ollama/lib
|
||||||
|
$SUDO chmod o+x /usr/share/ollama
|
||||||
|
$SUDO install -o ollama -g ollama -m 755 -d /usr/share/ollama/lib/rocm
|
||||||
|
curl --fail --show-error --location --progress-bar "https://ollama.com/download/ollama-linux-amd64-rocm.tgz${VER_PARAM}" \
|
||||||
|
| $SUDO tar zx --owner ollama --group ollama -C /usr/share/ollama/lib/rocm .
|
||||||
|
install_success
|
||||||
|
status "AMD GPU ready."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
CUDA_REPO_ERR_MSG="NVIDIA GPU detected, but your OS and Architecture are not supported by NVIDIA. Please install the CUDA driver manually https://docs.nvidia.com/cuda/cuda-installation-guide-linux/"
|
||||||
|
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7
|
||||||
|
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-8-rocky-8
|
||||||
|
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-9-rocky-9
|
||||||
|
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#fedora
|
||||||
|
install_cuda_driver_yum() {
|
||||||
|
status 'Installing NVIDIA repository...'
|
||||||
|
|
||||||
|
case $PACKAGE_MANAGER in
|
||||||
|
yum)
|
||||||
|
$SUDO $PACKAGE_MANAGER -y install yum-utils
|
||||||
|
if curl -I --silent --fail --location "https://developer.download.nvidia.com/compute/cuda/repos/$1$2/$(uname -m | sed -e 's/aarch64/sbsa/')/cuda-$1$2.repo" >/dev/null ; then
|
||||||
|
$SUDO $PACKAGE_MANAGER-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/$1$2/$(uname -m | sed -e 's/aarch64/sbsa/')/cuda-$1$2.repo
|
||||||
|
else
|
||||||
|
error $CUDA_REPO_ERR_MSG
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
dnf)
|
||||||
|
if curl -I --silent --fail --location "https://developer.download.nvidia.com/compute/cuda/repos/$1$2/$(uname -m | sed -e 's/aarch64/sbsa/')/cuda-$1$2.repo" >/dev/null ; then
|
||||||
|
$SUDO $PACKAGE_MANAGER config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/$1$2/$(uname -m | sed -e 's/aarch64/sbsa/')/cuda-$1$2.repo
|
||||||
|
else
|
||||||
|
error $CUDA_REPO_ERR_MSG
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
rhel)
|
||||||
|
status 'Installing EPEL repository...'
|
||||||
|
# EPEL is required for third-party dependencies such as dkms and libvdpau
|
||||||
|
$SUDO $PACKAGE_MANAGER -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$2.noarch.rpm || true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
status 'Installing CUDA driver...'
|
||||||
|
|
||||||
|
if [ "$1" = 'centos' ] || [ "$1$2" = 'rhel7' ]; then
|
||||||
|
$SUDO $PACKAGE_MANAGER -y install nvidia-driver-latest-dkms
|
||||||
|
fi
|
||||||
|
|
||||||
|
$SUDO $PACKAGE_MANAGER -y install cuda-drivers
|
||||||
|
}
|
||||||
|
|
||||||
|
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#ubuntu
|
||||||
|
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#debian
|
||||||
|
install_cuda_driver_apt() {
|
||||||
|
status 'Installing NVIDIA repository...'
|
||||||
|
if curl -I --silent --fail --location "https://developer.download.nvidia.com/compute/cuda/repos/$1$2/$(uname -m | sed -e 's/aarch64/sbsa/')/cuda-keyring_1.1-1_all.deb" >/dev/null ; then
|
||||||
|
curl -fsSL -o $TEMP_DIR/cuda-keyring.deb https://developer.download.nvidia.com/compute/cuda/repos/$1$2/$(uname -m | sed -e 's/aarch64/sbsa/')/cuda-keyring_1.1-1_all.deb
|
||||||
|
else
|
||||||
|
error $CUDA_REPO_ERR_MSG
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
debian)
|
||||||
|
status 'Enabling contrib sources...'
|
||||||
|
$SUDO sed 's/main/contrib/' < /etc/apt/sources.list | $SUDO tee /etc/apt/sources.list.d/contrib.list > /dev/null
|
||||||
|
if [ -f "/etc/apt/sources.list.d/debian.sources" ]; then
|
||||||
|
$SUDO sed 's/main/contrib/' < /etc/apt/sources.list.d/debian.sources | $SUDO tee /etc/apt/sources.list.d/contrib.sources > /dev/null
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
status 'Installing CUDA driver...'
|
||||||
|
$SUDO dpkg -i $TEMP_DIR/cuda-keyring.deb
|
||||||
|
$SUDO apt-get update
|
||||||
|
|
||||||
|
[ -n "$SUDO" ] && SUDO_E="$SUDO -E" || SUDO_E=
|
||||||
|
DEBIAN_FRONTEND=noninteractive $SUDO_E apt-get -y install cuda-drivers -q
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -f "/etc/os-release" ]; then
|
||||||
|
error "Unknown distribution. Skipping CUDA installation."
|
||||||
|
fi
|
||||||
|
|
||||||
|
. /etc/os-release
|
||||||
|
|
||||||
|
OS_NAME=$ID
|
||||||
|
OS_VERSION=$VERSION_ID
|
||||||
|
|
||||||
|
PACKAGE_MANAGER=
|
||||||
|
for PACKAGE_MANAGER in dnf yum apt-get; do
|
||||||
|
if available $PACKAGE_MANAGER; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$PACKAGE_MANAGER" ]; then
|
||||||
|
error "Unknown package manager. Skipping CUDA installation."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! check_gpu nvidia-smi || [ -z "$(nvidia-smi | grep -o "CUDA Version: [0-9]*\.[0-9]*")" ]; then
|
||||||
|
case $OS_NAME in
|
||||||
|
centos|rhel) install_cuda_driver_yum 'rhel' $(echo $OS_VERSION | cut -d '.' -f 1) ;;
|
||||||
|
rocky) install_cuda_driver_yum 'rhel' $(echo $OS_VERSION | cut -c1) ;;
|
||||||
|
fedora) [ $OS_VERSION -lt '39' ] && install_cuda_driver_yum $OS_NAME $OS_VERSION || install_cuda_driver_yum $OS_NAME '39';;
|
||||||
|
amzn) install_cuda_driver_yum 'fedora' '37' ;;
|
||||||
|
debian) install_cuda_driver_apt $OS_NAME $OS_VERSION ;;
|
||||||
|
ubuntu) install_cuda_driver_apt $OS_NAME $(echo $OS_VERSION | sed 's/\.//') ;;
|
||||||
|
*) exit ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! lsmod | grep -q nvidia || ! lsmod | grep -q nvidia_uvm; then
|
||||||
|
KERNEL_RELEASE="$(uname -r)"
|
||||||
|
case $OS_NAME in
|
||||||
|
rocky) $SUDO $PACKAGE_MANAGER -y install kernel-devel kernel-headers ;;
|
||||||
|
centos|rhel|amzn) $SUDO $PACKAGE_MANAGER -y install kernel-devel-$KERNEL_RELEASE kernel-headers-$KERNEL_RELEASE ;;
|
||||||
|
fedora) $SUDO $PACKAGE_MANAGER -y install kernel-devel-$KERNEL_RELEASE ;;
|
||||||
|
debian|ubuntu) $SUDO apt-get -y install linux-headers-$KERNEL_RELEASE ;;
|
||||||
|
*) exit ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
NVIDIA_CUDA_VERSION=$($SUDO dkms status | awk -F: '/added/ { print $1 }')
|
||||||
|
if [ -n "$NVIDIA_CUDA_VERSION" ]; then
|
||||||
|
$SUDO dkms install $NVIDIA_CUDA_VERSION
|
||||||
|
fi
|
||||||
|
|
||||||
|
if lsmod | grep -q nouveau; then
|
||||||
|
status 'Reboot to complete NVIDIA CUDA driver install.'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
$SUDO modprobe nvidia
|
||||||
|
$SUDO modprobe nvidia_uvm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# make sure the NVIDIA modules are loaded on boot with nvidia-persistenced
|
||||||
|
if available nvidia-persistenced; then
|
||||||
|
$SUDO touch /etc/modules-load.d/nvidia.conf
|
||||||
|
MODULES="nvidia nvidia-uvm"
|
||||||
|
for MODULE in $MODULES; do
|
||||||
|
if ! grep -qxF "$MODULE" /etc/modules-load.d/nvidia.conf; then
|
||||||
|
echo "$MODULE" | $SUDO tee -a /etc/modules-load.d/nvidia.conf > /dev/null
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
status "NVIDIA GPU ready."
|
||||||
|
install_success
|
@ -1 +1 @@
|
|||||||
Subproject commit 5ab83819072a03fcbd555beeb291bc50a3455d17
|
Subproject commit 908308149e4733343a82f745e3c8d94bb79bdb59
|
@ -2,7 +2,11 @@ export TOOLS=$(cat ~/.local/share/sunhat/sources/install/tools | tr "\n" " ")
|
|||||||
export GH_USERNAME="gibbyb"
|
export GH_USERNAME="gibbyb"
|
||||||
export GH_EMAIL="gib@gibbyb.com"
|
export GH_EMAIL="gib@gibbyb.com"
|
||||||
export GH_EDITOR="nvim"
|
export GH_EDITOR="nvim"
|
||||||
export HOST_NAME="laptop.gib"
|
if [ -z "$HOSTNAME" ]; then
|
||||||
|
export HOST_NAME="pc.gib"
|
||||||
|
else
|
||||||
|
export HOST_NAME=$HOSTNAME
|
||||||
|
fi
|
||||||
export JETBRAINS_TOOLBOX_LINK="https://www.jetbrains.com/toolbox-app/download/download-thanks.html?platform=linux"
|
export JETBRAINS_TOOLBOX_LINK="https://www.jetbrains.com/toolbox-app/download/download-thanks.html?platform=linux"
|
||||||
export UPSCAYL_LINK="https://github.com/upscayl/upscayl/releases/download/v2.11.5/upscayl-2.11.5-linux.rpm"
|
export UPSCAYL_LINK="https://github.com/upscayl/upscayl/releases/download/v2.11.5/upscayl-2.11.5-linux.rpm"
|
||||||
export LACT_LINK="https://github.com/ilya-zlobintsev/LACT/releases/download/v0.5.4/lact-0.5.4-0.x86_64.fedora-40.rpm"
|
export LACT_LINK="https://github.com/ilya-zlobintsev/LACT/releases/download/v0.5.4/lact-0.5.4-0.x86_64.fedora-40.rpm"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user