Compare commits

..

2 Commits
wip ... master

Author SHA1 Message Date
Anthony Axenov 9baedd438f Обновить dotfiles/etc/docker/daemon.json 2024-06-03 10:51:58 +00:00
Anthony Axenov 49595c7df5
docker mirrors 2024-05-31 00:13:37 +08:00
52 changed files with 430 additions and 1309 deletions

View File

@ -1,15 +1,15 @@
# Autogenerated at 31.08.2023 12:47 using ./gen-makefile
# Autogenerated at 12.04.2023 19:04 using ./gen-makefile
.DEFAULT_GOAL := help
#===============================================
# Scripts listed in ./install
#===============================================
##apache2: Install apache2 (latest)
apache2:
@./install/apache2
##apache: Install apache2 (latest)
apache:
@./install/apache
##apt: Install software from apt
##apt: Install bunch of software from apt
apt:
@./install/apt
@ -33,7 +33,7 @@ docker:
dots:
@./install/dots
##droidcam: Install droidcam v1.9.0
##droidcam: Install droidcam v1.8.2
droidcam:
@./install/droidcam
@ -41,21 +41,21 @@ droidcam:
droidcam-obs:
@./install/droidcam-obs
##flameshot: Install flameshot (latest)
flameshot:
@./install/flameshot
##flameshot-build: [TODO] Build flameshot from src (latest)
flameshot-build:
@./install/flameshot-build
##git: Install git (latest)
git:
@./install/git
##golang: Install golang v1.21.0
##golang: Install golang v1.18.3
golang:
@./install/golang
##grub-customizer: Install grub-customizer (latest + ppa)
grub-customizer:
@./install/grub-customizer
##grubc: Install grub-customizer (latest) + ppa
grubc:
@./install/grubc
##jbmono: Install JetBrains Mono fonts
jbmono:
@ -109,7 +109,7 @@ omz-clean:
omz-fancy:
@./install/omz-fancy
##openvpn: Install openvpn v2.6.3 (src)
##openvpn: Install openvpn v2.5.8 (src)
openvpn:
@./install/openvpn
@ -242,18 +242,10 @@ phpstack: php phptools
# Scripts listed in ./uninstall
#===============================================
##/apache2: Uninstall apache2
/apache2:
@./uninstall/apache2
##/docker: Uninstall docker + ppa
/docker:
@./uninstall/docker
##/grub-customizer: Uninstall grub-customizer with ppa
/grub-customizer:
@./uninstall/grub-customizer
##/lite-xl: Uninstall lite-xl
/lite-xl:
@./uninstall/lite-xl

View File

@ -0,0 +1,11 @@
{
"registry-mirrors": [
"https://dockerhub.timeweb.cloud",
"https://dh-mirror.gitverse.ru",
"https://mirror.gcr.io",
"https://daocloud.io",
"https://c.163.com/",
"https://registry.docker-cn.com",
"https://huecker.io"
]
}

View File

@ -1,11 +0,0 @@
require('core.plugins') -- plugins
require('core.mappings') -- key bindings
require('core.colors') -- colors and themes
-- require('core.config')
-- require('plugins.lsp')
-- require('plugins.mason')
-- require('plugins.neotree')
-- require('plugins.treesitter')
-- require('plugins.telescope')
-- require('plugins.dashboard')

View File

@ -1,6 +0,0 @@
{
"lazy.nvim": { "branch": "main", "commit": "758bb5de98b805acc5eeed8cdc8ac7f0bc4b0b86" },
"onedark.vim": { "branch": "main", "commit": "57b77747694ea5676c3ca0eeaf9567dc499730c0" },
"toggleterm.nvim": { "branch": "main", "commit": "066cccf48a43553a80a210eb3be89a15d789d6e6" },
"vim-be-good": { "branch": "master", "commit": "4fa57b7957715c91326fcead58c1fa898b9b3625" }
}

View File

@ -1,13 +0,0 @@
vim.opt.termguicolors = true
function SetColor(color)
color = color or "onedark"
vim.cmd.colorscheme(color)
-- vim.api.nvim_set_hl(0, "Normal", {bg = "none"})
-- vim.api.nvim_set_hl(0, "NormalFloat", {bg = "none"})
-- vim.api.nvim_set_hl(0, "ColorColumn", {bg = "none"})
-- vim.api.nvim_set_hl(0, "LineNr", {bg = "none"})
end
SetColor()

View File

@ -1,54 +0,0 @@
vim.wo.number = true
vim.wo.relativenumber = false
vim.g.did_load_filetypes = 1
vim.g.formatoptions = "qrn1"
vim.opt.showmode = false
vim.opt.updatetime = 100
vim.wo.signcolumn = "yes"
vim.opt.scrolloff = 8
vim.opt.wrap = false
vim.wo.linebreak = true
vim.opt.virtualedit = "block"
vim.opt.undofile = true
vim.opt.shell = "/bin/zsh"
-- Mouse
vim.opt.mouse = "a"
vim.opt.mousefocus = true
-- Line Numbers
vim.opt.number = true
vim.opt.relativenumber = true
-- Splits
vim.opt.splitbelow = true
vim.opt.splitright = false
-- Clipboard
vim.opt.clipboard = "unnamedplus"
-- Shorter messages
vim.opt.shortmess:append("c")
-- Indent Settings
vim.opt.expandtab = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.smartindent = true
-- Fillchars
vim.opt.fillchars = {
vert = "",
fold = "",
eob = " ", -- suppress ~ at EndOfBuffer
-- diff = "⣿", -- alternatives = ⣿ ░ ─
msgsep = "",
foldopen = "",
foldsep = "",
foldclose = ""
}
vim.cmd([[highlight clear LineNr]])
vim.cmd([[highlight clear SignColumn]])

View File

@ -1,7 +0,0 @@
vim.g.mapleader = " "
-- Neotree
-- vim.keymap.set('n', '<leader>e', ':Neotree float focus<CR>')
-- vim.keymap.set('n', '<leader>o', ':Neotree float git_status<CR>')

View File

@ -1,111 +0,0 @@
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
'git',
'clone',
'--filter=blob:none',
'https://github.com/folke/lazy.nvim.git',
'--branch=stable', -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require('lazy').setup({
-----------------------------------------------------------------
-- Example
-----------------------------------------------------------------
-- https://github.com/vendor/package
-- { 'vendor/package' },
-----------------------------------------------------------------
-- Misc
-----------------------------------------------------------------
-- https://github.com/ThePrimeagen/vim-be-good
{ 'ThePrimeagen/vim-be-good' },
-----------------------------------------------------------------
-- Navigation
-----------------------------------------------------------------
-- https://github.com/smoka7/hop.nvim
-- { 'smoka7/hop.nvim' },
-- https://github.com/akinsho/nvim-toggleterm.lua
{
'akinsho/toggleterm.nvim',
version = "*",
config = true,
},
-- https://github.com/nvim-neo-tree/neo-tree.nvim
-- {
-- 'nvim-neo-tree/neo-tree.nvim',
-- branch = 'v3.x',
-- dependencies = {
-- 'nvim-lua/plenary.nvim',
-- 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
-- 'MunifTanjim/nui.nvim',
-- -- '3rd/image.nvim', -- Optional image support in preview window: See `# Preview Mode` for more information
-- }
-- },
-- https://github.com/nvim-telescope/telescope.nvim
-- {
-- 'nvim-telescope/telescope.nvim',
-- branch = '0.1.x',
-- dependencies = { 'nvim-lua/plenary.nvim' }
-- },
-----------------------------------------------------------------
-- Colors, themes & highlighting
-----------------------------------------------------------------
-- https://github.com/glepnir/dashboard-nvim
-- {
-- 'glepnir/dashboard-nvim',
-- event = 'VimEnter',
-- dependencies = {{'nvim-tree/nvim-web-devicons'}}
-- },
-- https://github.com/joshdick/onedark.vim
{ 'joshdick/onedark.vim' },
-- https://github.com/nvim-treesitter/nvim-treesitter
-- { 'nvim-treesitter/nvim-treesitter' },
-- https://github.com/folke/todo-comments.nvim
-- { 'folke/todo-comments.nvim' },
-----------------------------------------------------------------
-- LSP & autocomplete
-----------------------------------------------------------------
-- https://github.com/folke/neodev.nvim
-- { 'folke/neodev.nvim' },
-- https://github.com/williamboman/mason.nvim
-- { 'williamboman/mason.nvim' },
-- https://github.com/neovim/nvim-lspconfig
-- { 'neovim/nvim-lspconfig' },
-- https://github.com/hrsh7th/cmp-nvim-lsp
-- { 'hrsh7th/cmp-nvim-lsp' },
-- https://github.com/hrsh7th/cmp-buffer
-- { 'hrsh7th/cmp-buffer' },
-- https://github.com/hrsh7th/cmp-path
-- { 'hrsh7th/cmp-path' },
-- https://github.com/hrsh7th/cmp-cmdline
-- { 'hrsh7th/cmp-cmdline' },
-- https://github.com/hrsh7th/nvim-cmp
-- { 'hrsh7th/nvim-cmp' },
})

View File

@ -1,187 +0,0 @@
local function header()
local logos = {
-- generated in https://patorjk.com/software/taag/#p=testall&t=NeoVim
{
'','','',
"888888ba dP dP oo ",
"88 `8b 88 88 ",
"88 88 .d8888b. .d8888b. 88 .8P dP 88d8b.d8b. ",
"88 88 88ooood8 88' `88 88 d8' 88 88'`88'`88 ",
"88 88 88. ... 88. .88 88 .d8P 88 88 88 88 ",
"dP dP `88888P' `88888P' 888888' dP dP dP dP ",
'','','',
},
{
'','','','','',
" _ _ __ ___ ",
"| \\ | | \\ \\ / (_) ",
"| \\| | ___ __\\ \\ / / _ _ __ ___ ",
"| . ` |/ _ \\/ _ \\ \\/ / | | '_ ` _ \\ ",
"| |\\ | __/ (_) \\ / | | | | | | |",
"|_| \\_|\\___|\\___/ \\/ |_|_| |_| |_| ",
'','','','','',
},
{
'','','','','',
" _ _ __ ___ ",
"| \\ | | ___ __\\ \\ / (_)_ __ ___",
" | \\| |/ _ \\/ _ \\ \\ / /| | '_ ` _ \\",
" | |\\ | __/ (_) \\ V / | | | | | | |",
" |_| \\_|\\___|\\___/ \\_/ |_|_| |_| |_|",
'','','','','',
},
{
'','','','','',
" _ __ __ ___ ",
" / | / /__ ____| | / (_)___ ___ ",
" / |/ / _ \\/ __ \\ | / / / __ `__ \\",
" / /| / __/ /_/ / |/ / / / / / / /",
"/_/ |_/\\___/\\____/|___/_/_/ /_/ /_/ ",
'','','','','',
},
{
'','','',
'888b 888 888 888 d8b ',
'8888b 888 888 888 Y8P ',
'88888b 888 888 888 ',
'888Y88b 888 .d88b. .d88b. Y88b d88P 888 88888b.d88b. ',
'888 Y88b888 d8P Y8b d88""88b Y88b d88P 888 888 "888 "88b ',
'888 Y88888 88888888 888 888 Y88o88P 888 888 888 888 ',
'888 Y8888 Y8b. Y88..88P Y888P 888 888 888 888 ',
'888 Y888 "Y8888 "Y88P" Y8P 888 888 888 888 ',
'','','',
},
{
'','','',
"███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗",
"████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║",
"██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║",
"██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║",
"██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║",
"╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
'','','',
},
{
'','','',
"███ ██ ███████ ██████ ██ ██ ██ ███ ███ ",
"████ ██ ██ ██ ██ ██ ██ ██ ████ ████ ",
"██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ████ ██ ",
"██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ",
"██ ████ ███████ ██████ ████ ██ ██ ██ ",
'','','',
},
{
'','','',
"_ _______ _______ _________ _______ ",
"( ( /|( ____ \\( ___ )|\\ /|\\__ __/( )",
"| \\ ( || ( \\/| ( ) || ) ( | ) ( | () () |",
"| \\ | || (__ | | | || | | | | | | || || |",
"| (\\ \\) || __) | | | |( ( ) ) | | | |(_)| |",
"| | \\ || ( | | | | \\ \\_/ / | | | | | |",
"| ) \\ || (____/\\| (___) | \\ / ___) (___| ) ( |",
"|/ )_)(_______/(_______) \\_/ \\_______/|/ \\|",
'','','',
},
{
'','','',
"$$\\ $$\\ $$\\ $$\\ $$\\ ",
"$$$\\ $$ | $$ | $$ |\\__| ",
"$$$$\\ $$ | $$$$$$\\ $$$$$$\\ $$ | $$ |$$\\ $$$$$$\\$$$$\\ ",
"$$ $$\\$$ |$$ __$$\\ $$ __$$\\\\$$\\ $$ |$$ |$$ _$$ _$$\\ ",
"$$ \\$$$$ |$$$$$$$$ |$$ / $$ |\\$$\\$$ / $$ |$$ / $$ / $$ |",
"$$ |\\$$$ |$$ ____|$$ | $$ | \\$$$ / $$ |$$ | $$ | $$ |",
"$$ | \\$$ |\\$$$$$$$\\ \\$$$$$$ | \\$ / $$ |$$ | $$ | $$ |",
"\\__| \\__| \\_______| \\______/ \\_/ \\__|\\__| \\__| \\__|",
'','','',
},
{
'','','',
" /$$ /$$ /$$ /$$ /$$ ",
"| $$$ | $$ | $$ | $$|__/ ",
"| $$$$| $$ /$$$$$$ /$$$$$$ | $$ | $$ /$$ /$$$$$$/$$$$",
"| $$ $$ $$ /$$__ $$ /$$__ $$| $$ / $$/| $$| $$_ $$_ $$",
"| $$ $$$$| $$$$$$$$| $$ \\ $$ \\ $$ $$/ | $$| $$ \\ $$ \\ $$",
"| $$\\ $$$| $$_____/| $$ | $$ \\ $$$/ | $$| $$ | $$ | $$",
"| $$ \\ $$| $$$$$$$| $$$$$$/ \\ $/ | $$| $$ | $$ | $$",
"|__/ \\__/ \\_______/ \\______/ \\_/ |__/|__/ |__/ |__/",
'','','',
},
{
'','','',
"__ __ __ __ __ ",
"| \\ | \\ | \\ | \\| \\ ",
"| $$\\ | $$ ______ ______ | $$ | $$ \\$$ ______ ____ ",
"| $$$\\| $$ / \\ / \\| $$ | $$| \\| \\ \\ ",
"| $$$$\\ $$| $$$$$$\\| $$$$$$\\\\$$\\ / $$| $$| $$$$$$\\$$$$\\",
"| $$\\$$ $$| $$ $$| $$ | $$ \\$$\\ $$ | $$| $$ | $$ | $$",
"| $$ \\$$$$| $$$$$$$$| $$__/ $$ \\$$ $$ | $$| $$ | $$ | $$",
"| $$ \\$$$ \\$$ \\ \\$$ $$ \\$$$ | $$| $$ | $$ | $$",
" \\$$ \\$$ \\$$$$$$$ \\$$$$$$ \\$ \\$$ \\$$ \\$$ \\$$",
'','','',
},
{
'','','',
"__ __ __ __ __ ",
"/ \\ / | / | / |/ | ",
"$$ \\ $$ | ______ ______ $$ | $$ |$$/ _____ ____ ",
"$$$ \\$$ | / \\ / \\ $$ | $$ |/ |/ \\/ \\ ",
"$$$$ $$ |/$$$$$$ |/$$$$$$ |$$ \\ /$$/ $$ |$$$$$$ $$$$ |",
"$$ $$ $$ |$$ $$ |$$ | $$ | $$ /$$/ $$ |$$ | $$ | $$ |",
"$$ |$$$$ |$$$$$$$$/ $$ \\__$$ | $$ $$/ $$ |$$ | $$ | $$ |",
"$$ | $$$ |$$ |$$ $$/ $$$/ $$ |$$ | $$ | $$ |",
"$$/ $$/ $$$$$$$/ $$$$$$/ $/ $$/ $$/ $$/ $$/ ",
'','','',
},
}
math.randomseed(os.time())
return logos[math.random(#logos)]
end
require('dashboard').setup({
theme = 'doom',
config = {
header = header(),
center = {
{
icon = '󰙅 ',
icon_hl = 'Title',
desc = 'Open tree',
desc_hl = 'String',
key = 'e',
keymap = 'SPC e',
key_hl = 'Number',
action = ':Neotree float'
},
{
icon = '󰈞 ',
icon_hl = 'Title',
desc = 'Find files',
desc_hl = 'String',
key = 'f',
keymap = 'SPC f f',
key_hl = 'Number',
action = ':Telescope find_files'
},
{
icon = '',
icon_hl = 'Title',
desc = 'Find text',
desc_hl = 'String',
key = 'w',
keymap = 'SPC f w',
key_hl = 'Number',
action = ':Telescope live_grep'
},
{
icon = '',
icon_hl = 'Title',
desc = 'Git Braches',
desc_hl = 'String',
key = 'b',
keymap = 'SPC g b',
key_hl = 'Number',
action = ':Telescope git_branches'
}
}
}
})

View File

@ -1,60 +0,0 @@
-- require('lspconfig').pyright.setup{}
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
-- Sntup language servers.
local lspconfig = require('lspconfig')
lspconfig.pyright.setup {}
lspconfig.tsserver.setup {}
lspconfig.prismals.setup {}
lspconfig.cssls.setup {
capabilities = capabilities
}
lspconfig.golangci_lint_ls.setup {}
lspconfig.rust_analyzer.setup {
settings = {
['rust-analyzer'] = {
diagnostics = {
enable = true,
experimental = {
enable = true,
},
},
},
},
}
-- Global mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
vim.keymap.set('n', '<leader>lD', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
vim.keymap.set('n', '<leader>ld', vim.diagnostic.setloclist)
-- Use LspAttach autocommand to only map the following keys
-- after the language server attaches to the current buffer
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev)
-- Enable completion triggered by <c-x><c-o>
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
local opts = {buffer = ev.buf}
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
-- vim.keymap
-- .set('n', '<Leader>sa', vim.lsp.buf.add_workspace_folder, opts)
-- vim.keymap.set('n', '<Leader>sr', vim.lsp.buf.remove_workspace_folder,
-- opts)
-- vim.keymap.set('n', '<Leader>sl', function()
-- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
-- end, opts)
-- vim.keymap.set('n', '<Leader>D', vim.lsp.buf.type_definition, opts)
vim.keymap.set('n', '<Leader>lr', vim.lsp.buf.rename, opts)
vim.keymap.set({'n', 'v'}, '<Leader>la', vim.lsp.buf.code_action, opts)
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
vim.keymap.set('n', '<Leader>lf',
function() vim.lsp.buf.format {async = true} end, opts)
end
})

View File

@ -1 +0,0 @@
require("mason").setup()

View File

@ -1,278 +0,0 @@
-- https://github.com/nvim-neo-tree/neo-tree.nvim
-- If you want icons for diagnostic errors, you'll need to define them somewhere:
vim.fn.sign_define("DiagnosticSignError", { text = "", texthl = "DiagnosticSignError" })
vim.fn.sign_define("DiagnosticSignWarn", { text = "", texthl = "DiagnosticSignWarn" })
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" })
vim.fn.sign_define("DiagnosticSignHint", { text = "󰌵", texthl = "DiagnosticSignHint" })
require("neo-tree").setup({
close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
popup_border_style = "rounded",
enable_git_status = true,
enable_diagnostics = true,
enable_normal_mode_for_inputs = false, -- Enable normal mode for input dialogs.
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes
sort_case_insensitive = false, -- used when sorting files and directories in the tree
sort_function = nil, -- use a custom function for sorting files and directories in the tree
-- sort_function = function (a,b)
-- if a.type == b.type then
-- return a.path > b.path
-- else
-- return a.type > b.type
-- end
-- end , -- this sorts files and directories descendantly
default_component_configs = {
container = {
enable_character_fade = true
},
indent = {
indent_size = 2,
padding = 1, -- extra padding on left hand side
-- indent guides
with_markers = true,
indent_marker = "",
last_indent_marker = "",
highlight = "NeoTreeIndentMarker",
-- expander config, needed for nesting files
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
icon = {
folder_closed = "",
folder_open = "",
folder_empty = "󰜌",
-- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there
-- then these will never be used.
default = "*",
highlight = "NeoTreeFileIcon"
},
modified = {
symbol = "[+]",
highlight = "NeoTreeModified",
},
name = {
trailing_slash = false,
use_git_status_colors = true,
highlight = "NeoTreeFileName",
},
git_status = {
symbols = {
-- Change type
added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name
modified = "", -- or "", but this is redundant info if you use git_status_colors on the name
deleted = "", -- this can only be used in the git_status source
renamed = "󰁕", -- this can only be used in the git_status source
-- Status type
untracked = "",
ignored = "",
unstaged = "󰄱",
staged = "",
conflict = "",
}
},
-- If you don't want to use these columns, you can set `enabled = false` for each of them individually
file_size = {
enabled = true,
required_width = 64, -- min width of window required to show this column
},
type = {
enabled = true,
required_width = 122, -- min width of window required to show this column
},
last_modified = {
enabled = true,
required_width = 88, -- min width of window required to show this column
},
created = {
enabled = true,
required_width = 110, -- min width of window required to show this column
},
symlink_target = {
enabled = false,
},
},
-- A list of functions, each representing a global custom command
-- that will be available in all sources (if not overridden in `opts[source_name].commands`)
-- see `:h neo-tree-custom-commands-global`
commands = {},
window = {
position = "left",
width = 40,
mapping_options = {
noremap = true,
nowait = true,
},
-- mappings = {
-- ["<space>"] = {
-- "toggle_node",
-- nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use
-- },
-- ["<2-LeftMouse>"] = "open",
-- ["<cr>"] = "open",
-- ["<esc>"] = "cancel", -- close preview or floating neo-tree window
-- ["P"] = { "toggle_preview", config = { use_float = true, use_image_nvim = true } },
-- -- Read `# Preview Mode` for more information
-- ["l"] = "focus_preview",
-- ["S"] = "open_split",
-- ["s"] = "open_vsplit",
-- -- ["S"] = "split_with_window_picker",
-- -- ["s"] = "vsplit_with_window_picker",
-- ["t"] = "open_tabnew",
-- -- ["<cr>"] = "open_drop",
-- -- ["t"] = "open_tab_drop",
-- ["w"] = "open_with_window_picker",
-- --["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing
-- ["C"] = "close_node",
-- -- ['C'] = 'close_all_subnodes',
-- ["z"] = "close_all_nodes",
-- --["Z"] = "expand_all_nodes",
-- ["a"] = {
-- "add",
-- -- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details
-- -- some commands may take optional config options, see `:h neo-tree-mappings` for details
-- config = {
-- show_path = "none" -- "none", "relative", "absolute"
-- }
-- },
-- ["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion.
-- ["d"] = "delete",
-- ["r"] = "rename",
-- ["y"] = "copy_to_clipboard",
-- ["x"] = "cut_to_clipboard",
-- ["p"] = "paste_from_clipboard",
-- ["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add":
-- -- ["c"] = {
-- -- "copy",
-- -- config = {
-- -- show_path = "none" -- "none", "relative", "absolute"
-- -- }
-- --}
-- ["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add".
-- ["q"] = "close_window",
-- ["R"] = "refresh",
-- ["?"] = "show_help",
-- ["<"] = "prev_source",
-- [">"] = "next_source",
-- ["i"] = "show_file_details",
-- }
},
nesting_rules = {},
filesystem = {
filtered_items = {
visible = true, -- when true, they will just be displayed differently than normal items
hide_dotfiles = false,
hide_gitignored = false,
hide_hidden = false, -- only works on Windows for hidden files/directories
-- hide_by_name = {
-- "node_modules"
-- },
-- hide_by_pattern = { -- uses glob style patterns
--"*.meta",
--"*/src/*/tsconfig.json",
-- },
always_show = { -- remains visible even if other settings would normally hide it
".gitignore",
},
never_show = { -- remains hidden even if visible is toggled to true, this overrides always_show
".DS_Store",
"thumbs.db"
},
-- never_show_by_pattern = { -- uses glob style patterns
--".null-ls_*",
-- },
},
follow_current_file = {
enabled = false, -- This will find and focus the file in the active buffer every time
-- -- the current file is changed while the tree is open.
leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
},
group_empty_dirs = true, -- when true, empty folders will be grouped together
-- hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree
-- in whatever position is specified in window.position
-- "open_current", -- netrw disabled, opening a directory opens within the
-- window like netrw would, regardless of window.position
-- "disabled", -- netrw left alone, neo-tree does not handle opening dirs
use_libuv_file_watcher = true, -- This will use the OS level file watchers to detect changes
-- instead of relying on nvim autocmd events.
-- window = {
-- mappings = {
-- ["<bs>"] = "navigate_up",
-- ["."] = "set_root",
-- ["H"] = "toggle_hidden",
-- ["/"] = "fuzzy_finder",
-- ["D"] = "fuzzy_finder_directory",
-- ["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm
-- -- ["D"] = "fuzzy_sorter_directory",
-- ["f"] = "filter_on_submit",
-- ["<c-x>"] = "clear_filter",
-- ["[g"] = "prev_git_modified",
-- ["]g"] = "next_git_modified",
-- ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
-- ["oc"] = { "order_by_created", nowait = false },
-- ["od"] = { "order_by_diagnostics", nowait = false },
-- ["og"] = { "order_by_git_status", nowait = false },
-- ["om"] = { "order_by_modified", nowait = false },
-- ["on"] = { "order_by_name", nowait = false },
-- ["os"] = { "order_by_size", nowait = false },
-- ["ot"] = { "order_by_type", nowait = false },
-- -- ['<key>'] = function(state) ... end,
-- },
-- fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode
-- ["<down>"] = "move_cursor_down",
-- ["<C-n>"] = "move_cursor_down",
-- ["<up>"] = "move_cursor_up",
-- ["<C-p>"] = "move_cursor_up",
-- -- ['<key>'] = function(state, scroll_padding) ... end,
-- },
-- },
commands = {} -- Add a custom command or override a global one using the same function name
},
-- buffers = {
-- follow_current_file = {
-- enabled = true, -- This will find and focus the file in the active buffer every time
-- -- -- the current file is changed while the tree is open.
-- leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
-- },
-- group_empty_dirs = true, -- when true, empty folders will be grouped together
-- show_unloaded = true,
-- window = {
-- mappings = {
-- ["bd"] = "buffer_delete",
-- ["<bs>"] = "navigate_up",
-- ["."] = "set_root",
-- ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
-- ["oc"] = { "order_by_created", nowait = false },
-- ["od"] = { "order_by_diagnostics", nowait = false },
-- ["om"] = { "order_by_modified", nowait = false },
-- ["on"] = { "order_by_name", nowait = false },
-- ["os"] = { "order_by_size", nowait = false },
-- ["ot"] = { "order_by_type", nowait = false },
-- }
-- },
-- },
git_status = {
window = {
position = "float",
mappings = {
["A"] = "git_add_all",
["gu"] = "git_unstage_file",
["ga"] = "git_add_file",
["gr"] = "git_revert_file",
["gc"] = "git_commit",
["gp"] = "git_push",
["gg"] = "git_commit_and_push",
["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
["oc"] = { "order_by_created", nowait = false },
["od"] = { "order_by_diagnostics", nowait = false },
["om"] = { "order_by_modified", nowait = false },
["on"] = { "order_by_name", nowait = false },
["os"] = { "order_by_size", nowait = false },
["ot"] = { "order_by_type", nowait = false },
}
}
}
})

View File

@ -1,12 +0,0 @@
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
-- vim.keymap.set('n', '<Tab>', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
vim.keymap.set('n', '<leader>gb', builtin.git_branches, {})
vim.keymap.set('n', '<leader>gc', builtin.git_commits, {})
vim.keymap.set('n', '<leader>gs', builtin.git_status, {})
vim.keymap.set('n', '<leader>ls', builtin.lsp_document_symbols, {})
vim.keymap.set('n', 'gr', builtin.lsp_references, {noremap = true, silent = true})
vim.keymap.set('n', 'gd', builtin.lsp_definitions, {noremap = true, silent = true})

View File

@ -1,41 +0,0 @@
require 'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all" (the five listed parsers should always be installed)
-- ensure_installed = {"vim", "lua", "go", "bash", "diff", "css", "dockerfile", "git_config", "git_rebase", "git_attributes", "gitcommit", "gitignore", "gomod"},
ensure_installed = "all",
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
-- List of parsers to ignore installing (or "all")
-- ignore_install = { "javascript" },
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- parser_install_dir = "/some/path/to/store/parsers", -- Rem ember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
highlight = {
enable = true,
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- the name of the parser)
-- list of language that will be disabled
-- disable = { "c", "rust" },
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
-- disable = function(lang, buf)
-- local max_filesize = 100 * 1024 -- 100 KB
-- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
-- if ok and stats and stats.size > max_filesize then
-- return true
-- end
-- end,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages
-- additional_vim_regex_highlighting = false,
},
}

83
helpers
View File

@ -4,41 +4,6 @@ installed() {
command -v "$1" >/dev/null 2>&1
}
installed2() {
dpkg --list | grep -qw "ii $1"
}
apt_install() {
sudo apt install -y --autoremove "$*"
}
require() {
sw=()
for package in "$@"; do
if ! installed "$package" && ! installed2 "$package"; then
sw+=("$package")
fi
done
if [ ${#sw[@]} -gt 0 ]; then
info "This packages will be installed in your system:\n${sw[*]}"
#TODO use local install script if possible
apt_install "${sw[*]}"
[ $? -gt 0 ] && die "installation cancelled" 201
fi
}
require2() {
sw=()
for package in "$@"; do
if ! installed "$package" && ! installed2 "$package"; then
sw+=("$package")
fi
done
if [ ${#sw[@]} -gt 0 ]; then
die "This packages must be installed in your system:\n${sw[*]}" 200
fi
}
title() {
[ "$1" ] && title="$1" || title="$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${BASH_SOURCE[1]})"
info
@ -48,30 +13,23 @@ title() {
info
}
unpak_targz() {
require tar
tar -xzf "$1" -C "$2"
}
symlink() {
ln -sf "$1" "$2"
require() {
if ! installed "$1"; then
if [ "$2" ]; then
die "'$1' must to be installed in your system" 200
else
info "Installing '$1' because it is required to continue"
sudo apt install "$1"
[ $? -gt 0 ] && die "installation cancelled" 201
fi
fi
}
download() {
require wget
require wget 1
wget "$1" -O "$2"
}
clone() {
require git
git clone $*
}
clone_quick() {
require git
git clone $* --depth=1 --single-branch
}
abspath() {
echo $(realpath -q "${1/#\~/$HOME}")
}
@ -168,12 +126,13 @@ print() {
debug() {
if [ "$2" ]; then
print "${DIM}${BOLD}${RESET}${DIM}${FUNCNAME[1]:-?}():${BASH_LINENO:-?}\t$1 "
print "${DIM}${BOLD}${RESET}${DIM} ${FUNCNAME[1]:-?}():${BASH_LINENO:-?}\t$1 "
else
print "${DIM}${BOLD}${RESET}${DIM}$1 "
fi
}
verbose() {
print "${BOLD}${IVRB}${RESET}${FYELLOW} $1 "
}
@ -196,6 +155,7 @@ warn() {
error() {
print "${BOLD}${BLRED}${FWHITE}${IERROR} Error: ${BRESET}${FLRED} $1 " >&2
# print_stacktrace
}
fatal() {
@ -204,8 +164,19 @@ fatal() {
}
die() {
error "${1:-halted}"
exit ${2:-100}
error "$1"
[ "$2" ] && exit $2 || exit 100
}
die_fatal() {
fatal "$1"
[ "$2" ] && exit $2 || exit 100
}
die_help() {
error "$1"
[ "$2" ] && is_function "$2".help && $2.help
[ "$3" ] && exit $3 || exit 100
}
print_stacktrace() {

View File

@ -1,6 +1,6 @@
#!/bin/bash
##makedesc: Install apache2 (latest)
source `dirname $0`/../helpers || exit 255
[ -f `dirname $0`/../helpers ] && source `dirname $0`/../helpers || exit 255
title

View File

@ -1,59 +1,62 @@
#!/bin/bash
##makedesc: Install software from apt
source `dirname $0`/../helpers || exit 255
##makedesc: Install bunch of software from apt
title
echo
echo "==============================================="
echo "Installing software from apt..."
echo "==============================================="
echo
sudo apt update && \
sudo apt upgrade -y --autoremove && \
sudo apt install -y \
alien \
apt-transport-https \
build-essential \
ca-certificates \
cmake \
curl \
dconf-editor \
default-jdk \
dialog \
gettext \
gnupg \
gparted \
hardinfo \
htop \
libaio1 \
libcurl4-gnutls-dev \
libexpat1-dev \
libghc-zlib-dev \
libssl-dev \
lsb-release \
lsp-plugins \
make \
mc \
meld \
nano \
neofetch \
net-tools \
nmap \
p7zip-full \
pulseeffects \
software-properties-common \
terminator \
ubuntu-restricted-extras \
unzip \
vlc \
ffmpeg \
xclip \
inotify-tools \
notify-osd \
fonts-open-sans \
libnotify-bin \
tree \
earlyoom
# sqlitebrowser
# etckeeper \
# geoclue-2.0 \
# gnome-software \
# minder \
# redshift \
# redshift-gtk
sudo apt upgrade -y --autoremove
sudo apt install -y \
alien \
apt-transport-https \
build-essential \
ca-certificates \
cmake \
curl \
dconf-editor \
default-jdk \
dialog \
gettext \
gnupg \
gparted \
hardinfo \
htop \
libaio1 \
libcurl4-gnutls-dev \
libexpat1-dev \
libghc-zlib-dev \
libssl-dev \
lsb-release \
lsp-plugins \
make \
mc \
meld \
nano \
neofetch \
net-tools \
nmap \
p7zip-full \
pulseeffects \
software-properties-common \
terminator \
ubuntu-restricted-extras \
unzip \
vlc \
ffmpeg \
xclip \
inotify-tools \
notify-osd \
fonts-open-sans \
libnotify-bin
# sqlitebrowser
# earlyoom \
# etckeeper \
# geoclue-2.0 \
# gnome-software \
# minder \
# redshift \
# redshift-gtk

View File

@ -1,17 +1,11 @@
#!/bin/bash
##makedesc: Install Canon Pixma MG2500 + ppa
source `dirname $0`/../helpers || exit 255
title
echo
echo "==============================================="
echo "Installing Canon Pixma MG2500 + ppa..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz && \
sudo apt install -y \
cnijfilter-mg2500series \
scangearmp-mg2500series
[ $? = 0 ] && {
echo
success "Canon Pixma MG2500 installed!"
info "Now you must add a new printer in your system."
echo
}
sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz
sudo apt install -y cnijfilter-mg2500series scangearmp-mg2500series

View File

@ -1,20 +1,14 @@
#!/bin/bash
##makedesc: Install google chrome (latest)
source `dirname $0`/../helpers || exit 255
echo
echo "==============================================="
echo "Installing google chrome (latest)..."
echo "==============================================="
echo
# https://t.me/axenov_blog/251
title
mkdir -p "$HOME/install"
download "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" \
"$HOME/install/google-chrome.deb" && \
sudo dpkg -i "$HOME/install/google-chrome.deb"
[ $? = 0 ] && {
echo
success "Google Chrome installed!"
google-chrome --version
echo
}
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb && \
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb && \
rm /tmp/google-chrome-stable_current_amd64.deb

View File

@ -1,41 +1,56 @@
#!/bin/bash
##makedesc: Install composer (latest)
source `dirname $0`/../helpers || exit 255
echo
echo "==============================================="
echo "Installing composer (latest)..."
echo "==============================================="
echo
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
title
require php
if installed "composer"; then
warn "WARNING: Removing current composer to install its actual version"
sudo apt remove -y --autoremove composer
sudo rm -f \
"$HOME/.local/bin/composer" \
/bin/composer \
/usr/bin/composer \
/usr/local/bin/composer \
/usr/src/composer \
"$HOME/.local/bin/composer"
fi
mkdir -p "$HOME/install" "$HOME/.local/bin"
download "https://getcomposer.org/installer" "$HOME/install/composer-setup.php" && \
php "$HOME/install/composer-setup.php" --install-dir="$HOME/.local/bin/composer"
[ $? = 0 ] && {
COMPOSER_GLOBAL_HOME="$($HOME/.local/bin/composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
}
echo
success "composer installed!"
composer --version
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
source "$HOME/.profile"
! installed "php" && echo "WARNING: You need php to be installed"
if installed "composer"; then
echo "WARNING: Removing current composer to install its actual version"
sudo apt remove -y --autoremove composer
sudo rm -f $HOME/.local/bin/composer
sudo rm -f /bin/composer
sudo rm -f /usr/bin/composer
sudo rm -f /usr/local/bin/composer
sudo rm -f /usr/src/composer
rm $HOME/.local/bin/composer
fi
mkdir -p $HOME/install $HOME/.local/bin
cd $HOME/install
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
wget https://getcomposer.org/installer -O composer-setup.php
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
>&2 echo 'ERROR: Invalid installer checksum'
rm composer-setup.php
exit 1
fi
php composer-setup.php --quiet
mv -f $HOME/install/composer.phar $HOME/.local/bin/composer
cd - >/dev/null
COMPOSER_GLOBAL_HOME="$($HOME/.local/bin/composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
source "${HOME}/.profile"
echo
echo "Finish!"
composer --version
echo

View File

@ -1,35 +1,43 @@
#!/bin/bash
##makedesc: Install docker (latest) + docker-compose (latest) + ppa
source `dirname $0`/../helpers || exit 255
echo
echo "==============================================="
echo "Installing docker (latest)..."
echo "==============================================="
echo
# https://docs.docker.com/engine/install/ubuntu/
title
require ca-certificates
require curl
require gnupg
require lsb-release
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
sudo chmod a+r /etc/apt/keyrings/docker.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt update && \
sudo apt install -y --autoremove \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin && \
sudo usermod -aG docker $(whoami)
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
[ $? = 0 ] && {
echo
success "Docker installed!"
info "Probably, you need to relogin to apply 'docker' group."
info "Your ones currently are: $(groups)"
docker --version
echo
}
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y --autoremove \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin
sudo usermod -aG docker $(whoami)
sudo cp ../dotfiles/etc/docker/daemon.json /etc/docker/daemon.json
echo
echo "Finish!"
docker --version
echo "Probably, you need to relogin to apply 'docker' group."
echo "Your ones currently are: $(groups)"
echo

View File

@ -1,22 +1,25 @@
#!/bin/bash
##makedesc: Install dotfiles
source `dirname $0`/../helpers || exit 255
title
echo
echo "==============================================="
echo "Installing dotfiles..."
echo "==============================================="
echo
install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
dotfiles_src_dir="`dirname $install_dir`/dotfiles"
postfix=".bak-`date '+%Y%m%d%H%M'`"
install_dotfile() {
mv "$HOME/$1" "$HOME/$1$postfix"
cp "$dotfiles_src_dir/$1" "$HOME/$1"
success "- $1"
install() {
echo "mv "$HOME/$1" "$HOME/$1$postfix""
echo "cp "$dotfiles_src_dir/$1" "$HOME/$1""
echo "- $1"
}
install_dotfile ".bash_aliases" && \
install_dotfile ".profile" && \
install_dotfile ".bashrc" && \
install_dotfile ".gitconfig" && \
install_dotfile ".gitignore" && \
install_dotfile ".git_aliases"
install .bash_aliases
install .profile
install .bashrc
install .gitconfig
install .gitignore
install .git_aliases

View File

@ -1,22 +1,21 @@
#!/bin/bash
##makedesc: Install droidcam v1.9.0
source `dirname $0`/../helpers || exit 255
##makedesc: Install droidcam v1.8.2
# https://www.dev47apps.com/droidcam/linux/
title
echo
echo "==============================================="
echo "Installing droidcam v1.8.2..."
echo "==============================================="
echo
mkdir -p "$HOME/install/droidcam"
mkdir -p ~/install/droidcam
wget -O /tmp/droidcam.zip https://files.dev47apps.net/linux/droidcam_1.8.2.zip
unzip -oq /tmp/droidcam.zip -d ~/install/droidcam
rm -rf /tmp/droidcam.zip
cd ~/install/droidcam && sudo ./install-client
download "https://files.dev47apps.net/linux/droidcam_1.9.0.zip" "$HOME/install/droidcam.zip" && \
unzip -oq "$HOME/install/droidcam.zip" -d "$HOME/install/droidcam" && \
cd "$HOME/install/droidcam" && \
sudo ./install-client
[ $? = 0 ] && {
echo
success "droidcam installed!"
info "Don't forget to install the android app:"
info "https://play.google.com/store/apps/developer?id=Dev47Apps"
echo
}
echo
echo "Finish!"
echo "Don't forget to install android app: https://play.google.com/store/apps/developer?id=Dev47Apps"
echo

View File

@ -15,11 +15,11 @@ echo
# command -v "obs" >/dev/null 2>&1 || echo 'You need to install obs first!'
command -v "obs-studio" >/dev/null 2>&1 || echo 'You need to install obs-studio first!'
mkdir -p $HOMEinstall/droidcam-obs
mkdir -p ~/install/droidcam-obs
wget -O /tmp/droidcam-obs.zip https://files.dev47apps.net/obs/droidcam_obs_1.5.1_linux.zip
unzip -oq /tmp/droidcam-obs.zip -d $HOMEinstall/droidcam-obs
unzip -oq /tmp/droidcam-obs.zip -d ~/install/droidcam-obs
rm -rf /tmp/droidcam-obs.zip
cd $HOMEinstall/droidcam-obs && ./install.sh
cd ~/install/droidcam-obs && ./install.sh
sudo modprobe v4l2loopback video_nr=2 card_label="OBS Virtual Camera"
echo

View File

@ -1,15 +0,0 @@
#!/bin/bash
##makedesc: Install flameshot (latest)
source `dirname $0`/../helpers || exit 255
title
sudo apt install -y --autoremove flameshot && \
sudo systemctl restart flameshot
[ $? = 0 ] && {
echo
success "flameshot installed!"
flameshot -v
echo
}

View File

@ -0,0 +1,8 @@
#!/bin/bash
##makedesc: [TODO] Build flameshot from src (latest)
echo
echo "==============================================="
echo "Installing flameshot (latest)..."
echo "==============================================="
echo

View File

@ -1,38 +1,43 @@
#!/bin/bash
##makedesc: Install git (latest)
source `dirname $0`/../helpers || exit 255
title
echo
echo "==============================================="
echo "Installing git (latest)..."
echo "==============================================="
echo
require make
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed make && sudo apt install -y make
if installed git; then
if [ -d "$HOME/install/git" ]; then
cd "$HOME/install/git" && \
if [ -d "${HOME}/install/git" ]; then
cd "${HOME}/install/git" && \
git pull
else
clone "https://github.com/git/git.git" "$HOME/install/git" --depth=1 --single-branch && \
cd "$HOME/install/git"
git clone https://github.com/git/git.git --depth=1 "${HOME}/install/git" && \
cd "${HOME}/install/git"
fi
sudo make prefix=/usr/local all && \
sudo make prefix=/usr/local install
else
require wget
mkdir -p "$HOME/install/git"
download "https://github.com/git/git/archive/master.zip" "/tmp/git.zip" && \
unzip -oq "/tmp/git.zip" -d "$HOME/install/git" && \
! installed wget && sudo apt install -y wget
[ -d "${HOME}/install/git" ] || mkdir -p "${HOME}/install/git"
wget https://github.com/git/git/archive/master.zip -O /tmp/git.zip && \
unzip -oq /tmp/git.zip -d "${HOME}/install/git" && \
rm /tmp/git.zip && \
cd "$HOME/install/git/git-master" && \
cd "${HOME}/install/git/git-master" && \
sudo make prefix=/usr/local all && \
sudo make prefix=/usr/local install && \
cd - && \
rm -rf git && \
clone "https://github.com/git/git.git" "$HOME/install/git" --depth=1 --single-branch
git clone https://github.com/git/git.git --depth=1 "${HOME}/install/git"
fi
[ $? = 0 ] && {
echo
success "git installed!"
git --version
echo
}
echo
echo "Finish!"
git --version
echo

View File

@ -1,28 +1,30 @@
#!/bin/bash
##makedesc: Install golang v1.21.0
source `dirname $0`/../helpers || exit 255
##makedesc: Install golang v1.18.3
# https://go.dev/dl/
# https://golang.org/doc/install
# https://www.vultr.com/docs/install-the-latest-version-of-golang-on-ubuntu
[ $1 ] && VERSION="$1" || VERSION="1.21.6"
title "Installing golang v$VERSION..."
[ $1 ] && VERSION="$1" || VERSION="1.18.3"
FILE="go$VERSION.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go && \
download "https://golang.org/dl/$FILE" "/tmp/$FILE" && \
sudo tar -xzf "/tmp/$FILE" -C /usr/local && \
rm -rf "/tmp/$FILE" && \
sudo chown $USER: -R /usr/local/go && \
echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile" && \
echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile" && \
source ~/.profile
[ $? = 0 ] && {
echo
success "golang installed!"
info "NOTE: now run 'source ~/.profile' to apply new env vars"
go version
echo
}
echo
echo "==============================================="
echo "Installing golang v$VERSION..."
echo "==============================================="
echo
sudo rm -rf /usr/local/go && \
wget "https://golang.org/dl/$FILE" -O /tmp/$FILE && \
sudo tar -xzf /tmp/$FILE -C /usr/local && \
rm -rf /tmp/$FILE && \
sudo chown $USER: -R /usr/local/go && \
echo 'export PATH="$PATH:/usr/local/go/bin\"' >> $HOME/.profile && \
echo 'export GOPATH="$HOME/.go"' >> $HOME/.profile
echo
echo "Finish!"
go version
echo "NOTE: now run 'source ~/.profile' to apply new env vars"
echo

View File

@ -1,15 +0,0 @@
#!/bin/bash
##makedesc: Install grub-customizer (latest + ppa)
source `dirname $0`/../helpers || exit 255
title
sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer && \
sudo apt install -y --autoremove grub-customizer
[ $? = 0 ] && {
echo
success "grub-customizer installed!"
grub-customizer -v
echo
}

11
install/grubc 100755
View File

@ -0,0 +1,11 @@
#!/bin/bash
##makedesc: Install grub-customizer (latest) + ppa
echo
echo "==============================================="
echo "Installing grub-customizer (latest)..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer
sudo apt install -y --autoremove grub-customizer

View File

@ -1,14 +1,14 @@
#!/bin/bash
##makedesc: Install JetBrains Mono fonts
source `dirname $0`/../helpers || exit 255
[ -f `dirname $0`/../helpers ] && source `dirname $0`/../helpers || exit 255
# https://www.jetbrains.com/lp/mono/#how-to-install
title
require unzip
mkdir -p "$HOME/install/jbmono" "$HOME/.local/share/fonts/"
download "https://download.jetbrains.com/fonts/JetBrainsMono-2.304.zip" "$HOME/install/jbmono.zip" && \
unzip -oj "$HOME/install/jbmono.zip" "fonts/ttf/*.ttf" -d "$HOME/.local/share/fonts/" && \
fc-cache -vf "$HOME/.local/share/fonts/"

View File

@ -1,9 +1,14 @@
#!/bin/bash
##makedesc: Install KDE Backports
source `dirname $0`/../helpers || exit 255
title
echo
echo "==============================================="
echo "Installing KDE Backports..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:kubuntu-ppa/backports && \
sudo apt update && \
sudo apt full-upgrade
sudo add-apt-repository -y ppa:kubuntu-ppa/backports
# sudo add-apt-repository -y ppa:kubuntu-ppa/backports-extra
sudo apt update
# sudo pkcon update
sudo apt full-upgrade

View File

@ -1,53 +0,0 @@
#!/bin/bash
##makedesc: Install neovim (latest)
source `dirname $0`/../helpers || exit 255
# https://github.com/neovim/neovim/blob/master/INSTALL.md#linux
# https://github.com/folke/lazy.nvim/blob/main/README.md#-installation
# https://raw.githubusercontent.com/neovim/neovim/master/runtime/nvim.desktop
title
require git wget tar grep
[ -d "$HOME/.config/nvim" ] && mv -f "$HOME/.config/nvim" $HOME/.config/nvim.bak
mkdir -p $HOME/install $HOME/.config/nvim/lua/{core,plugins}
tee <<EOF "$HOME/.config/nvim/init.lua" > /dev/null
-- plugins
require('core.plugins')
EOF
tee <<EOF "$HOME/.config/nvim/lua/core/plugins.lua" > /dev/null
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- install plugins
require("lazy").setup({
{ 'phaazon/hop.nvim' }
})
EOF
download https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz "$HOME/install/nvim.tar.gz" && \
sudo rm -rf /opt/nvim && \
sudo tar -zxf "$HOME/install/nvim.tar.gz" -C /opt
NEWPATH="export PATH=\"/opt/nvim-linux64/bin:\$PATH\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
}
echo
success "NeoVim installed!"
echo

View File

@ -1,31 +1,37 @@
#!/bin/bash
##makedesc: Install openvpn v2.6.3 (src)
source `dirname $0`/../helpers || exit 255
##makedesc: Install openvpn v2.5.8 (src)
# https://openvpn.net/community-downloads/
# https://openvpn.net/community-resources/installing-openvpn/
[ "$1" ] && OVPNVER="$1" || OVPNVER='2.6.3'
[ $1 ] && OVPNVER="$1" || OVPNVER='2.5.8'
title "Installing openvpn v${OVPNVER} (src)..."
echo
echo "==============================================="
echo "Installing openvpn v${OVPNVER} (src)..."
echo "==============================================="
echo
require libssl-dev \
set -ex
sudo apt install -y \
libssl-dev \
liblzo2-dev \
libpam0g-dev
mkdir -p "$HOME/install/"
download "https://swupdate.openvpn.org/community/releases/openvpn-${OVPNVER}.tar.gz" "$HOME/install/openvpn-${OVPNVER}.tar.gz" && \
unpak_targz "$HOME/install/openvpn-${OVPNVER}.tar.gz" "$HOME/install/" && \
cd "$HOME/install/openvpn-${OVPNVER}" && \
sudo ./configure && \
mkdir -p "${HOME}/install/"
wget "https://swupdate.openvpn.org/community/releases/openvpn-${OVPNVER}.tar.gz" \
-O "/tmp/openvpn-${OVPNVER}.tar.gz"
tar -xzf "/tmp/openvpn-${OVPNVER}.tar.gz" -C "${HOME}/install/"
cd "${HOME}/install/openvpn-${OVPNVER}"
sudo ./configure && \
sudo make && \
sudo make install &&
apt_install network-manager-openvpn \
sudo apt install -y \
network-manager-openvpn \
network-manager-openvpn-gnome
[ $? = 0 ] && {
echo
success "openvpn installed!"
openvpn --version
echo
}
echo
echo "Finish!"
openvpn --version
echo

View File

@ -1,27 +1,34 @@
#!/bin/bash
##makedesc: Install papirus-icon-theme (latest)
source `dirname $0`/../helpers || exit 255
title
echo
echo "==============================================="
echo "Installing papirus-icon-theme (latest)..."
echo "==============================================="
echo
mkdir -p "$HOME/install/papirus-icon-theme" "$HOME/.local/share/icons/"
if installed git; then
clone_quick https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git "$HOME/install/"
else
download https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O "$HOME/install/papirus-icon-theme.zip" && \
unzip -oq "$HOME/install/papirus-icon-theme.zip" -d "$HOME/install/papirus-icon-theme" && \
rm -f "$HOME/install/papirus-icon-theme.zip"
fi
symlink "$HOME/install/papirus-icon-theme/Papirus" "$HOME/.local/share/icons/Papirus" && \
symlink "$HOME/install/papirus-icon-theme/Papirus-Dark" "$HOME/.local/share/icons/Papirus-Dark" && \
symlink "$HOME/install/papirus-icon-theme/Papirus-Light" "$HOME/.local/share/icons/Papirus-Light"
[ $? = 0 ] && {
echo
success "Papirus icons installed!"
info "You can find them in $HOME/.local/share/icons/"
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
if installed git; then
mkdir -p "${HOME}/install/"
git clone https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git "${HOME}/install/papirus-icon-theme" --depth=1 --single-branch
else
! installed wget && sudo apt install -y wget
mkdir -p "${HOME}/install/papirus-icon-theme"
wget https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O "${HOME}/install/papirus-icon-theme.zip"
unzip -oq "${HOME}/install/papirus-icon-theme.zip" -d "${HOME}/install/papirus-icon-theme"
rm -f "${HOME}/install/papirus-icon-theme.zip"
fi
mkdir -p "${HOME}/.local/share/icons/"
ln -sf "${HOME}/install/papirus-icon-theme/Papirus" "${HOME}/.local/share/icons/Papirus"
ln -sf "${HOME}/install/papirus-icon-theme/Papirus-Dark" "${HOME}/.local/share/icons/Papirus-Dark"
ln -sf "${HOME}/install/papirus-icon-theme/Papirus-Light" "${HOME}/.local/share/icons/Papirus-Light"
echo
echo "Finish! Don't forget to change current icon theme."
echo "You can find them here:"
echo -e "\t${HOME}/.local/share/icons/"
echo

View File

@ -1,14 +1,16 @@
#!/bin/bash
##makedesc: Install postgresql (latest) and php-pgsql (if php is installed)
source `dirname $0`/../helpers || exit 255
title
echo
echo "==============================================="
echo "Installing postgresql (latest)..."
echo "==============================================="
echo
require postgresql postgresql-contrib && \
sudo service postgresql restart && \
{
echo
success "openvpn installed!"
postgres --version
echo
}
installed() {
command -v "$1" >/dev/null 2>&1
}
sudo apt install -y --autoremove postgresql postgresql-contrib
sudo service postgresql restart
installed 'php' && sudo apt install -y --autoremove php-pgsql

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
echo "$NEWPATH" >> "${HOME}/.profile"
}
source "$HOME/.profile"
source "${HOME}/.profile"
composer global require vimeo/psalm --dev

View File

@ -16,11 +16,11 @@ installed() {
! installed 'make' && sudo apt install -y make
! installed 'wget' && sudo apt install -y wget
[ -d "$HOME/install/php-spx" ] || mkdir -p "$HOME/install/php-spx"
[ -d "${HOME}/install/php-spx" ] || mkdir -p "${HOME}/install/php-spx"
wget https://github.com/NoiseByNorthwest/php-spx/archive/refs/heads/release/latest.zip -O /tmp/php-spx.zip \
&& unzip -oq /tmp/php-spx.zip -d "$HOME/install/php-spx" \
&& unzip -oq /tmp/php-spx.zip -d "${HOME}/install/php-spx" \
&& rm /tmp/php-spx.zip \
&& cd "$HOME/install/php-spx/php-spx-release-latest" \
&& cd "${HOME}/install/php-spx/php-spx-release-latest" \
&& phpize \
&& ./configure \
&& make \

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
echo "$NEWPATH" >> "${HOME}/.profile"
}
source "$HOME/.profile"
source "${HOME}/.profile"
composer global require squizlabs/php_codesniffer --dev
composer global require friendsofphp/php-cs-fixer --dev

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
echo "$NEWPATH" >> "${HOME}/.profile"
}
source "$HOME/.profile"
source "${HOME}/.profile"
composer global require phpmd/phpmd --dev

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
echo "$NEWPATH" >> "${HOME}/.profile"
}
source "$HOME/.profile"
source "${HOME}/.profile"
composer global require phpstan/phpstan --dev

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "$HOME/.profile"
echo "$NEWPATH" >> "${HOME}/.profile"
}
source "$HOME/.profile"
source "${HOME}/.profile"
composer global require phpunit/phpunit --dev

View File

@ -1,33 +1,28 @@
#!/bin/bash
##makedesc: Install postman (latest)
source `dirname $0`/../helpers || exit 255
# https://learning.postman.com/docs/getting-started/installation-and-updates/#installing-postman-on-linux
echo
echo "==============================================="
echo "Installing postman (latest)..."
echo "==============================================="
echo
# set -ex
mkdir -p ${HOME}/install/postman
mkdir -p ${HOME}/.local/bin
wget "https://dl.pstmn.io/download/latest/linux64" -O ${HOME}/install/postman.tar.gz && \
tar -xzf ${HOME}/install/postman.tar.gz -C ${HOME}/install/postman && \
ln -sf ${HOME}/install/postman/Postman/Postman ${HOME}/.local/bin/postman && \
mkdir -p "${HOME}/.local/share/applications" && \
cat << EOF > "${HOME}/.local/share/applications/Postman.desktop"
#!/usr/bin/env xdg-open
title
mkdir -p "$HOME/install" && \
"$HOME/.local/bin" && \
"$HOME/.local/share/applications"
download "https://dl.pstmn.io/download/latest/linux64" "$HOME/install/postman.tar.gz" && \
unpak_targz "$HOME/install/postman.tar.gz" "$HOME/install" && \
symlink "$HOME/install/Postman/Postman" "$HOME/.local/bin/postman" && \
cat << EOF > "$HOME/.local/share/applications/Postman.desktop" && sudo update-desktop-database
[Desktop Entry]
Name=Postman
Exec=$HOME/.local/bin/postman %U
Icon=$HOME/install/Postman/app/icons/icon_128x128.png
Categories=Development,Network
Exec=${HOME}/.local/bin/postman
Icon=${HOME}/install/postman/Postman/app/icons/icon_128x128.png
Categories=Utility,Network
Terminal=false
Type=Application
Encoding=UTF-8
EOF
[ $? = 0 ] && {
echo
success "Postman installed!"
echo
}
sudo update-desktop-database

View File

@ -7,7 +7,7 @@ echo "Installing telegram (latest)..."
echo "==============================================="
echo
mkdir -p "$HOME/install" "$HOME/.local/bin"
wget "https://telegram.org/dl/desktop/linux" -O $HOME/install/telegram.tar.gz && \
tar -xJf $HOME/install/telegram.tar.gz -C $HOME/.local/bin
$HOME/.local/bin/Telegram/Telegram & disown > /dev/null
mkdir -p "${HOME}/install" "${HOME}/.local/bin"
wget "https://telegram.org/dl/desktop/linux" -O ${HOME}/install/telegram.tar.gz && \
tar -xJf ${HOME}/install/telegram.tar.gz -C ${HOME}/.local/bin
${HOME}/.local/bin/Telegram/Telegram & disown > /dev/null

View File

@ -1,7 +1,6 @@
#!/bin/bash
##makedesc: Install Vivaldi + ppa
# https://repo.vivaldi.com
# https://help.vivaldi.com/desktop/#install-update
# https://help.vivaldi.com/desktop/install-update/manual-setup-vivaldi-linux-repositories/

View File

@ -12,8 +12,8 @@ echo
# 11.04.23: release 2021.12.17 in snap/apt/github is broken (Unable to extract uploader id)
# and still no fix officially released, so we just build it from actual sources
# curl -L https://yt-dl.org/downloads/latest/youtube-dl -o "$HOME/.local/bin/youtube-dl" && \
# sudo chmod +rx "$HOME/.local/bin/youtube-dl"
# curl -L https://yt-dl.org/downloads/latest/youtube-dl -o "${HOME}/.local/bin/youtube-dl" && \
# sudo chmod +rx "${HOME}/.local/bin/youtube-dl"
installed() {
command -v "$1" >/dev/null 2>&1

View File

@ -11,5 +11,5 @@ echo
install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
tools_dir="`dirname $install_dir`/tools"
cp "${tools_dir}/ytdlcue.sh" "$HOME/.local/bin/ytdlcue"
sudo chmod +rx "$HOME/.local/bin/ytdlcue"
cp "${tools_dir}/ytdlcue.sh" "${HOME}/.local/bin/ytdlcue"
sudo chmod +rx "${HOME}/.local/bin/ytdlcue"

View File

@ -8,4 +8,4 @@ echo "==============================================="
echo
sudo apt install -y --autoremove zsh
echo "source ~/.profile" >> "$HOME/.zshrc"
echo "source ~/.profile" >> ~/.zshrc

View File

@ -1,13 +0,0 @@
#!/bin/bash
# https://forums.opensuse.org/t/networkmanager-shows-connection-to-lo/164441/13
# https://man.archlinux.org/man/NetworkManager.conf.5.en#Device_List_Format
# https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-networkmanager-to-ignore-certain-devices_configuring-and-managing-networking
sudo touch /etc/NetworkManager/conf.d/10-ignore-veth.conf
sudo tee <<EOF /etc/NetworkManager/conf.d/10-ignore-veth.conf > /dev/null
# Disable virtual interfaces to be managed via NetworkManager
[keyfile]
unmanaged-devices=interface-name:veth*
EOF
sudo systemctl reload NetworkManager

View File

@ -1,13 +0,0 @@
#!/bin/bash
##makedesc: Uninstall apache2
source `dirname $0`/../helpers || exit 255
title
sudo apt remove -y --autoremove apache2
[ $? = 0 ] && {
echo
success "apache2 uninstalled!"
echo
}

View File

@ -1,19 +0,0 @@
#!/bin/bash
##makedesc: Uninstall grub-customizer with ppa
source `dirname $0`/../helpers || exit 255
title
source_file="/etc/apt/sources.list.d/$(ls -1 /etc/apt/sources.list.d/ | grep danielrichter2007)"
sudo apt remove -y --autoremove grub-customizer && \
[ -f "$source_file" ] && {
sudo rm "$source_file" && \
sudo apt update
}
[ $? = 0 ] && {
echo
success "grub-customizer uninstalled!"
echo
}

View File

@ -9,10 +9,10 @@ echo
set -x
rm -rf \
"$HOME/.local/bin/lite-xl" \
"$HOME/.local/share/applications/org.lite_xl.lite_xl.desktop" \
"$HOME/.local/share/lite-xl" \
"$HOME/.config/lite-xl"
"${HOME}/.local/bin/lite-xl" \
"${HOME}/.local/share/applications/org.lite_xl.lite_xl.desktop" \
"${HOME}/.local/share/lite-xl" \
"${HOME}/.config/lite-xl"
sudo update-desktop-database && \
xdg-desktop-menu forceupdate