Compare commits

...

14 Commits
master ... wip

51 changed files with 1295 additions and 403 deletions

View File

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

View File

@ -0,0 +1,11 @@
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

@ -0,0 +1,6 @@
{
"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

@ -0,0 +1,13 @@
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

@ -0,0 +1,54 @@
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

@ -0,0 +1,7 @@
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

@ -0,0 +1,111 @@
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

@ -0,0 +1,187 @@
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

@ -0,0 +1,60 @@
-- 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

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

View File

@ -0,0 +1,278 @@
-- 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

@ -0,0 +1,12 @@
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

@ -0,0 +1,41 @@
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,6 +4,41 @@ installed() {
command -v "$1" >/dev/null 2>&1 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() { title() {
[ "$1" ] && title="$1" || title="$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${BASH_SOURCE[1]})" [ "$1" ] && title="$1" || title="$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${BASH_SOURCE[1]})"
info info
@ -13,23 +48,30 @@ title() {
info info
} }
require() { unpak_targz() {
if ! installed "$1"; then require tar
if [ "$2" ]; then tar -xzf "$1" -C "$2"
die "'$1' must to be installed in your system" 200 }
else
info "Installing '$1' because it is required to continue" symlink() {
sudo apt install "$1" ln -sf "$1" "$2"
[ $? -gt 0 ] && die "installation cancelled" 201
fi
fi
} }
download() { download() {
require wget 1 require wget
wget "$1" -O "$2" wget "$1" -O "$2"
} }
clone() {
require git
git clone $*
}
clone_quick() {
require git
git clone $* --depth=1 --single-branch
}
abspath() { abspath() {
echo $(realpath -q "${1/#\~/$HOME}") echo $(realpath -q "${1/#\~/$HOME}")
} }
@ -126,13 +168,12 @@ print() {
debug() { debug() {
if [ "$2" ]; then 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 else
print "${DIM}${BOLD}${RESET}${DIM}$1 " print "${DIM}${BOLD}${RESET}${DIM}$1 "
fi fi
} }
verbose() { verbose() {
print "${BOLD}${IVRB}${RESET}${FYELLOW} $1 " print "${BOLD}${IVRB}${RESET}${FYELLOW} $1 "
} }
@ -155,7 +196,6 @@ warn() {
error() { error() {
print "${BOLD}${BLRED}${FWHITE}${IERROR} Error: ${BRESET}${FLRED} $1 " >&2 print "${BOLD}${BLRED}${FWHITE}${IERROR} Error: ${BRESET}${FLRED} $1 " >&2
# print_stacktrace
} }
fatal() { fatal() {
@ -164,19 +204,8 @@ fatal() {
} }
die() { die() {
error "$1" error "${1:-halted}"
[ "$2" ] && exit $2 || exit 100 exit ${2:-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() { print_stacktrace() {

View File

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

View File

@ -1,16 +1,12 @@
#!/bin/bash #!/bin/bash
##makedesc: Install bunch of software from apt ##makedesc: Install software from apt
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing software from apt..."
echo "==============================================="
echo
sudo apt update && \ sudo apt update && \
sudo apt upgrade -y --autoremove sudo apt upgrade -y --autoremove && \
sudo apt install -y \
sudo apt install -y \
alien \ alien \
apt-transport-https \ apt-transport-https \
build-essential \ build-essential \
@ -51,9 +47,10 @@ sudo apt install -y \
inotify-tools \ inotify-tools \
notify-osd \ notify-osd \
fonts-open-sans \ fonts-open-sans \
libnotify-bin libnotify-bin \
tree \
earlyoom
# sqlitebrowser # sqlitebrowser
# earlyoom \
# etckeeper \ # etckeeper \
# geoclue-2.0 \ # geoclue-2.0 \
# gnome-software \ # gnome-software \

View File

@ -1,11 +1,17 @@
#!/bin/bash #!/bin/bash
##makedesc: Install Canon Pixma MG2500 + ppa ##makedesc: Install Canon Pixma MG2500 + ppa
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing Canon Pixma MG2500 + ppa..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz && \
sudo apt install -y cnijfilter-mg2500series scangearmp-mg2500series 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
}

View File

@ -1,14 +1,20 @@
#!/bin/bash #!/bin/bash
##makedesc: Install google chrome (latest) ##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 # https://t.me/axenov_blog/251
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb && \ title
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb && \
rm /tmp/google-chrome-stable_current_amd64.deb 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
}

View File

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

View File

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

View File

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

View File

@ -1,21 +1,22 @@
#!/bin/bash #!/bin/bash
##makedesc: Install droidcam v1.8.2 ##makedesc: Install droidcam v1.9.0
source `dirname $0`/../helpers || exit 255
# https://www.dev47apps.com/droidcam/linux/ # https://www.dev47apps.com/droidcam/linux/
echo title
echo "==============================================="
echo "Installing droidcam v1.8.2..."
echo "==============================================="
echo
mkdir -p ~/install/droidcam mkdir -p "$HOME/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
echo download "https://files.dev47apps.net/linux/droidcam_1.9.0.zip" "$HOME/install/droidcam.zip" && \
echo "Finish!" unzip -oq "$HOME/install/droidcam.zip" -d "$HOME/install/droidcam" && \
echo "Don't forget to install android app: https://play.google.com/store/apps/developer?id=Dev47Apps" cd "$HOME/install/droidcam" && \
echo 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
}

View File

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

15
install/flameshot 100755
View File

@ -0,0 +1,15 @@
#!/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

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

View File

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

View File

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

View File

@ -0,0 +1,15 @@
#!/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
}

View File

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

View File

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

53
install/nvim 100755
View File

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

View File

@ -1,34 +1,27 @@
#!/bin/bash #!/bin/bash
##makedesc: Install papirus-icon-theme (latest) ##makedesc: Install papirus-icon-theme (latest)
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing papirus-icon-theme (latest)..."
echo "==============================================="
echo
installed() { mkdir -p "$HOME/install/papirus-icon-theme" "$HOME/.local/share/icons/"
command -v "$1" >/dev/null 2>&1
}
if installed git; then if installed git; then
mkdir -p "${HOME}/install/" clone_quick https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git "$HOME/install/"
git clone https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git "${HOME}/install/papirus-icon-theme" --depth=1 --single-branch
else else
! installed wget && sudo apt install -y wget download https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O "$HOME/install/papirus-icon-theme.zip" && \
mkdir -p "${HOME}/install/papirus-icon-theme" unzip -oq "$HOME/install/papirus-icon-theme.zip" -d "$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" rm -f "$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 fi
mkdir -p "${HOME}/.local/share/icons/" symlink "$HOME/install/papirus-icon-theme/Papirus" "$HOME/.local/share/icons/Papirus" && \
ln -sf "${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" && \
ln -sf "${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"
ln -sf "${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
}
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,16 +1,14 @@
#!/bin/bash #!/bin/bash
##makedesc: Install postgresql (latest) and php-pgsql (if php is installed) ##makedesc: Install postgresql (latest) and php-pgsql (if php is installed)
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing postgresql (latest)..."
echo "==============================================="
echo
installed() { require postgresql postgresql-contrib && \
command -v "$1" >/dev/null 2>&1 sudo service postgresql restart && \
} {
echo
sudo apt install -y --autoremove postgresql postgresql-contrib success "openvpn installed!"
sudo service postgresql restart postgres --version
installed 'php' && sudo apt install -y --autoremove php-pgsql echo
}

View File

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

View File

@ -16,11 +16,11 @@ installed() {
! installed 'make' && sudo apt install -y make ! installed 'make' && sudo apt install -y make
! installed 'wget' && sudo apt install -y wget ! 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 \ 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 \ && rm /tmp/php-spx.zip \
&& cd "${HOME}/install/php-spx/php-spx-release-latest" \ && cd "$HOME/install/php-spx/php-spx-release-latest" \
&& phpize \ && phpize \
&& ./configure \ && ./configure \
&& make \ && make \

View File

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

View File

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

View File

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

View File

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

View File

@ -1,28 +1,33 @@
#!/bin/bash #!/bin/bash
##makedesc: Install postman (latest) ##makedesc: Install postman (latest)
source `dirname $0`/../helpers || exit 255
echo # https://learning.postman.com/docs/getting-started/installation-and-updates/#installing-postman-on-linux
echo "==============================================="
echo "Installing postman (latest)..."
echo "==============================================="
echo
mkdir -p ${HOME}/install/postman # set -ex
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] [Desktop Entry]
Name=Postman Name=Postman
Exec=${HOME}/.local/bin/postman Exec=$HOME/.local/bin/postman %U
Icon=${HOME}/install/postman/Postman/app/icons/icon_128x128.png Icon=$HOME/install/Postman/app/icons/icon_128x128.png
Categories=Utility,Network Categories=Development,Network
Terminal=false Terminal=false
Type=Application Type=Application
Encoding=UTF-8 Encoding=UTF-8
EOF EOF
sudo update-desktop-database
[ $? = 0 ] && {
echo
success "Postman installed!"
echo
}

View File

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

View File

@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
##makedesc: Install Vivaldi + ppa ##makedesc: Install Vivaldi + ppa
# https://repo.vivaldi.com
# https://help.vivaldi.com/desktop/#install-update # https://help.vivaldi.com/desktop/#install-update
# https://help.vivaldi.com/desktop/install-update/manual-setup-vivaldi-linux-repositories/ # 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) # 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 # 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" && \ # curl -L https://yt-dl.org/downloads/latest/youtube-dl -o "$HOME/.local/bin/youtube-dl" && \
# sudo chmod +rx "${HOME}/.local/bin/youtube-dl" # sudo chmod +rx "$HOME/.local/bin/youtube-dl"
installed() { installed() {
command -v "$1" >/dev/null 2>&1 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 )" install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
tools_dir="`dirname $install_dir`/tools" tools_dir="`dirname $install_dir`/tools"
cp "${tools_dir}/ytdlcue.sh" "${HOME}/.local/bin/ytdlcue" cp "${tools_dir}/ytdlcue.sh" "$HOME/.local/bin/ytdlcue"
sudo chmod +rx "${HOME}/.local/bin/ytdlcue" sudo chmod +rx "$HOME/.local/bin/ytdlcue"

View File

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

View File

@ -0,0 +1,13 @@
#!/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

13
uninstall/apache2 100755
View File

@ -0,0 +1,13 @@
#!/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

@ -0,0 +1,19 @@
#!/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 set -x
rm -rf \ rm -rf \
"${HOME}/.local/bin/lite-xl" \ "$HOME/.local/bin/lite-xl" \
"${HOME}/.local/share/applications/org.lite_xl.lite_xl.desktop" \ "$HOME/.local/share/applications/org.lite_xl.lite_xl.desktop" \
"${HOME}/.local/share/lite-xl" \ "$HOME/.local/share/lite-xl" \
"${HOME}/.config/lite-xl" "$HOME/.config/lite-xl"
sudo update-desktop-database && \ sudo update-desktop-database && \
xdg-desktop-menu forceupdate xdg-desktop-menu forceupdate