mirror of
https://codeberg.org/hyperreal/dotfiles
synced 2024-11-25 11:53:43 +01:00
Update
This commit is contained in:
parent
465bdd2529
commit
757cce1bc4
143
.config/mc/ini
Normal file
143
.config/mc/ini
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
[Midnight-Commander]
|
||||||
|
verbose=true
|
||||||
|
shell_patterns=true
|
||||||
|
auto_save_setup=true
|
||||||
|
preallocate_space=false
|
||||||
|
auto_menu=false
|
||||||
|
use_internal_view=true
|
||||||
|
use_internal_edit=true
|
||||||
|
clear_before_exec=true
|
||||||
|
confirm_delete=true
|
||||||
|
confirm_overwrite=true
|
||||||
|
confirm_execute=false
|
||||||
|
confirm_history_cleanup=true
|
||||||
|
confirm_exit=false
|
||||||
|
confirm_directory_hotlist_delete=false
|
||||||
|
confirm_view_dir=false
|
||||||
|
safe_delete=false
|
||||||
|
safe_overwrite=false
|
||||||
|
use_8th_bit_as_meta=false
|
||||||
|
mouse_move_pages_viewer=true
|
||||||
|
mouse_close_dialog=false
|
||||||
|
fast_refresh=false
|
||||||
|
drop_menus=false
|
||||||
|
wrap_mode=true
|
||||||
|
old_esc_mode=true
|
||||||
|
cd_symlinks=true
|
||||||
|
show_all_if_ambiguous=false
|
||||||
|
use_file_to_guess_type=true
|
||||||
|
alternate_plus_minus=false
|
||||||
|
only_leading_plus_minus=true
|
||||||
|
show_output_starts_shell=false
|
||||||
|
xtree_mode=false
|
||||||
|
file_op_compute_totals=true
|
||||||
|
classic_progressbar=true
|
||||||
|
use_netrc=true
|
||||||
|
ftpfs_always_use_proxy=false
|
||||||
|
ftpfs_use_passive_connections=true
|
||||||
|
ftpfs_use_passive_connections_over_proxy=false
|
||||||
|
ftpfs_use_unix_list_options=true
|
||||||
|
ftpfs_first_cd_then_ls=true
|
||||||
|
ignore_ftp_chattr_errors=true
|
||||||
|
editor_fill_tabs_with_spaces=false
|
||||||
|
editor_return_does_auto_indent=true
|
||||||
|
editor_backspace_through_tabs=false
|
||||||
|
editor_fake_half_tabs=true
|
||||||
|
editor_option_save_position=true
|
||||||
|
editor_option_auto_para_formatting=false
|
||||||
|
editor_option_typewriter_wrap=false
|
||||||
|
editor_edit_confirm_save=true
|
||||||
|
editor_syntax_highlighting=true
|
||||||
|
editor_persistent_selections=true
|
||||||
|
editor_drop_selection_on_copy=true
|
||||||
|
editor_cursor_beyond_eol=false
|
||||||
|
editor_cursor_after_inserted_block=false
|
||||||
|
editor_visible_tabs=true
|
||||||
|
editor_visible_spaces=true
|
||||||
|
editor_line_state=false
|
||||||
|
editor_simple_statusbar=false
|
||||||
|
editor_check_new_line=false
|
||||||
|
editor_show_right_margin=false
|
||||||
|
editor_group_undo=false
|
||||||
|
editor_state_full_filename=false
|
||||||
|
editor_ask_filename_before_edit=false
|
||||||
|
nice_rotating_dash=true
|
||||||
|
shadows=true
|
||||||
|
mcview_remember_file_position=false
|
||||||
|
auto_fill_mkdir_name=true
|
||||||
|
copymove_persistent_attr=true
|
||||||
|
pause_after_run=1
|
||||||
|
mouse_repeat_rate=100
|
||||||
|
double_click_speed=250
|
||||||
|
old_esc_mode_timeout=1000000
|
||||||
|
max_dirt_limit=10
|
||||||
|
num_history_items_recorded=60
|
||||||
|
vfs_timeout=60
|
||||||
|
ftpfs_directory_timeout=900
|
||||||
|
ftpfs_retry_seconds=30
|
||||||
|
fish_directory_timeout=900
|
||||||
|
editor_tab_spacing=8
|
||||||
|
editor_word_wrap_line_length=72
|
||||||
|
editor_option_save_mode=0
|
||||||
|
editor_backup_extension=~
|
||||||
|
editor_filesize_threshold=64M
|
||||||
|
editor_stop_format_chars=-+*\\,.;:&>
|
||||||
|
mcview_eof=
|
||||||
|
skin=catppuccin
|
||||||
|
|
||||||
|
[Layout]
|
||||||
|
output_lines=0
|
||||||
|
left_panel_size=105
|
||||||
|
top_panel_size=0
|
||||||
|
message_visible=true
|
||||||
|
keybar_visible=true
|
||||||
|
xterm_title=true
|
||||||
|
command_prompt=true
|
||||||
|
menubar_visible=true
|
||||||
|
free_space=true
|
||||||
|
horizontal_split=false
|
||||||
|
vertical_equal=true
|
||||||
|
horizontal_equal=true
|
||||||
|
|
||||||
|
[Misc]
|
||||||
|
timeformat_recent=%b %e %H:%M
|
||||||
|
timeformat_old=%b %e %Y
|
||||||
|
ftp_proxy_host=gate
|
||||||
|
ftpfs_password=anonymous@
|
||||||
|
display_codepage=UTF-8
|
||||||
|
source_codepage=Other_8_bit
|
||||||
|
autodetect_codeset=
|
||||||
|
clipboard_store=
|
||||||
|
clipboard_paste=
|
||||||
|
|
||||||
|
[Colors]
|
||||||
|
base_color=
|
||||||
|
xterm-256color=
|
||||||
|
color_terminals=
|
||||||
|
|
||||||
|
[Panels]
|
||||||
|
show_mini_info=true
|
||||||
|
kilobyte_si=false
|
||||||
|
mix_all_files=false
|
||||||
|
show_backups=true
|
||||||
|
show_dot_files=true
|
||||||
|
fast_reload=false
|
||||||
|
fast_reload_msg_shown=false
|
||||||
|
mark_moves_down=true
|
||||||
|
reverse_files_only=true
|
||||||
|
auto_save_setup_panels=true
|
||||||
|
navigate_with_arrows=true
|
||||||
|
panel_scroll_pages=true
|
||||||
|
panel_scroll_center=false
|
||||||
|
mouse_move_pages=true
|
||||||
|
filetype_mode=true
|
||||||
|
permission_mode=false
|
||||||
|
torben_fj_mode=false
|
||||||
|
quick_search_mode=2
|
||||||
|
select_flags=6
|
||||||
|
|
||||||
|
[Panelize]
|
||||||
|
Find *.orig after patching=find . -name \\*.orig -print
|
||||||
|
Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
|
||||||
|
Find rejects after patching=find . -name \\*.rej -print
|
||||||
|
Modified git files=git ls-files --modified
|
35
.config/mc/panels.ini
Normal file
35
.config/mc/panels.ini
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[New Left Panel]
|
||||||
|
display=listing
|
||||||
|
reverse=false
|
||||||
|
case_sensitive=true
|
||||||
|
exec_first=false
|
||||||
|
sort_order=name
|
||||||
|
list_mode=full
|
||||||
|
brief_cols=2
|
||||||
|
user_format=half type name | size | perm
|
||||||
|
user_status0=half type name | size | perm
|
||||||
|
user_status1=half type name | size | perm
|
||||||
|
user_status2=half type name | size | perm
|
||||||
|
user_status3=half type name | size | perm
|
||||||
|
user_mini_status=false
|
||||||
|
list_format=full
|
||||||
|
|
||||||
|
[New Right Panel]
|
||||||
|
display=listing
|
||||||
|
reverse=false
|
||||||
|
case_sensitive=true
|
||||||
|
exec_first=false
|
||||||
|
sort_order=name
|
||||||
|
list_mode=full
|
||||||
|
brief_cols=2
|
||||||
|
user_format=half type name | size | perm
|
||||||
|
user_status0=half type name | size | perm
|
||||||
|
user_status1=half type name | size | perm
|
||||||
|
user_status2=half type name | size | perm
|
||||||
|
user_status3=half type name | size | perm
|
||||||
|
user_mini_status=false
|
||||||
|
list_format=full
|
||||||
|
|
||||||
|
[Dirs]
|
||||||
|
current_is_left=true
|
||||||
|
other_dir=/var/home/jas
|
@ -35,10 +35,12 @@ require('packer').startup(function()
|
|||||||
use 'lukas-reineke/indent-blankline.nvim'
|
use 'lukas-reineke/indent-blankline.nvim'
|
||||||
|
|
||||||
-- Add git related info in the signs columns and popups
|
-- Add git related info in the signs columns and popups
|
||||||
use {
|
-- use {
|
||||||
'lewis6991/gitsigns.nvim',
|
-- 'lewis6991/gitsigns.nvim',
|
||||||
requires = { 'nvim-lua/plenary.nvim' }
|
-- config = function()
|
||||||
}
|
-- require('gitsigns').setup()
|
||||||
|
-- end
|
||||||
|
-- }
|
||||||
|
|
||||||
-- Highlight, edit, and navigate code using a fast incremental parsing library
|
-- Highlight, edit, and navigate code using a fast incremental parsing library
|
||||||
use 'nvim-treesitter/nvim-treesitter'
|
use 'nvim-treesitter/nvim-treesitter'
|
||||||
@ -58,9 +60,6 @@ require('packer').startup(function()
|
|||||||
-- Remember last edit location in file
|
-- Remember last edit location in file
|
||||||
use 'ethanholz/nvim-lastplace'
|
use 'ethanholz/nvim-lastplace'
|
||||||
|
|
||||||
-- Colorize hex color codes
|
|
||||||
use 'norcalli/nvim-colorizer.lua'
|
|
||||||
|
|
||||||
-- File manager
|
-- File manager
|
||||||
use {
|
use {
|
||||||
'kyazdani42/nvim-tree.lua',
|
'kyazdani42/nvim-tree.lua',
|
||||||
@ -70,18 +69,12 @@ require('packer').startup(function()
|
|||||||
config = function() require'nvim-tree'.setup{} end
|
config = function() require'nvim-tree'.setup{} end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- dhall syntax
|
|
||||||
use 'vmchale/dhall-vim'
|
|
||||||
|
|
||||||
-- lualine
|
-- lualine
|
||||||
use {
|
use {
|
||||||
'nvim-lualine/lualine.nvim',
|
'nvim-lualine/lualine.nvim',
|
||||||
requires = { 'kyazdan42/nvim-web-devicons', opt = true }
|
requires = { 'kyazdan42/nvim-web-devicons', opt = true }
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Embark color theme
|
|
||||||
-- use 'embark-theme/vim'
|
|
||||||
|
|
||||||
-- Editorconfig
|
-- Editorconfig
|
||||||
use 'editorconfig/editorconfig-vim'
|
use 'editorconfig/editorconfig-vim'
|
||||||
|
|
||||||
@ -91,24 +84,12 @@ require('packer').startup(function()
|
|||||||
-- sloum/gemini-vim-syntax
|
-- sloum/gemini-vim-syntax
|
||||||
use 'https://tildegit.org/sloum/gemini-vim-syntax'
|
use 'https://tildegit.org/sloum/gemini-vim-syntax'
|
||||||
|
|
||||||
-- dracula-pro/vim
|
|
||||||
-- use '~/.config/nvim/draculapro'
|
|
||||||
|
|
||||||
-- catppuccin theme
|
-- catppuccin theme
|
||||||
use {
|
use {
|
||||||
'catppuccin/nvim',
|
'catppuccin/nvim',
|
||||||
as = 'catppuccin'
|
as = 'catppuccin'
|
||||||
}
|
}
|
||||||
|
|
||||||
-- go.nvim
|
|
||||||
use 'ray-x/go.nvim'
|
|
||||||
|
|
||||||
-- fish syntax
|
|
||||||
use 'khaveesh/vim-fish-syntax'
|
|
||||||
|
|
||||||
-- Nim syntax
|
|
||||||
use 'alaviss/nim.nvim'
|
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Local map function
|
-- Local map function
|
||||||
@ -161,11 +142,12 @@ vim.wo.signcolumn = 'yes'
|
|||||||
|
|
||||||
--Set colorscheme (order is important here)
|
--Set colorscheme (order is important here)
|
||||||
vim.o.termguicolors = true
|
vim.o.termguicolors = true
|
||||||
vim.g.catppuccin_flavor = "mocha"
|
vim.g.catppuccin_flavour = "mocha"
|
||||||
vim.cmd [[colorscheme catppuccin]]
|
require("catppuccin").setup()
|
||||||
|
vim.cmd("colorscheme catppuccin")
|
||||||
|
|
||||||
--Highlight column 88
|
--Highlight column 88
|
||||||
vim.cmd [[set colorcolumn=88]]
|
vim.cmd("set colorcolumn=88")
|
||||||
|
|
||||||
--Set splits
|
--Set splits
|
||||||
vim.o.splitbelow = true
|
vim.o.splitbelow = true
|
||||||
@ -192,12 +174,12 @@ require('lualine').setup{
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Sometimes I don't let go of the shift key in time
|
-- Sometimes I don't let go of the shift key in time
|
||||||
vim.cmd [[command! WQ wq]]
|
vim.cmd("command! WQ wq")
|
||||||
vim.cmd [[command! Wq wq]]
|
vim.cmd("command! Wq wq")
|
||||||
vim.cmd [[command! Wqa wqa]]
|
vim.cmd("command! Wqa wqa")
|
||||||
vim.cmd [[command! WQa wqa]]
|
vim.cmd("command! WQa wqa")
|
||||||
vim.cmd [[command! W w]]
|
vim.cmd("command! W w")
|
||||||
vim.cmd [[command! Q q]]
|
vim.cmd("command! Q q")
|
||||||
|
|
||||||
-- Sometimes I accidentally undo a change when trying to enter INSERT mode
|
-- Sometimes I accidentally undo a change when trying to enter INSERT mode
|
||||||
map("n", "u", "<Nop>", opt)
|
map("n", "u", "<Nop>", opt)
|
||||||
@ -245,17 +227,6 @@ map("n", "<S-x>", ":bd!<CR>", opt) -- close tab
|
|||||||
map("n", "<TAB>", ":BufferLineCycleNext<CR>", opt)
|
map("n", "<TAB>", ":BufferLineCycleNext<CR>", opt)
|
||||||
map("n", "<S-TAB>", ":BufferLineCyclePrev<CR>", opt)
|
map("n", "<S-TAB>", ":BufferLineCyclePrev<CR>", opt)
|
||||||
|
|
||||||
-- Gitsigns
|
|
||||||
require('gitsigns').setup {
|
|
||||||
signs = {
|
|
||||||
add = { hl = 'GitGutterAdd', text = '+' },
|
|
||||||
change = { hl = 'GitGutterChange', text = '~' },
|
|
||||||
delete = { hl = 'GitGutterDelete', text = '_' },
|
|
||||||
topdelete = { hl = 'GitGutterDelete', text = '‾' },
|
|
||||||
changedelete = { hl = 'GitGutterChange', text = '~' },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Telescope
|
-- Telescope
|
||||||
require('telescope').setup {
|
require('telescope').setup {
|
||||||
defaults = {
|
defaults = {
|
||||||
@ -297,15 +268,6 @@ map('n', '<C-n>', ':NvimTreeToggle<CR>', opt)
|
|||||||
map('n', '<leader>r', ':NvimTreeRefresh<CR>', opt)
|
map('n', '<leader>r', ':NvimTreeRefresh<CR>', opt)
|
||||||
map('n', '<leader>n', ':NvimTreeFindFile<CR>', opt)
|
map('n', '<leader>n', ':NvimTreeFindFile<CR>', opt)
|
||||||
|
|
||||||
-- go.nvim settings
|
|
||||||
vim.api.nvim_exec(
|
|
||||||
[[
|
|
||||||
autocmd BufWritePre *.go :silent! lua require('go.format').goimport()
|
|
||||||
]],
|
|
||||||
false
|
|
||||||
)
|
|
||||||
require('go').setup()
|
|
||||||
|
|
||||||
-- LSP settings
|
-- LSP settings
|
||||||
local nvim_lsp = require 'lspconfig'
|
local nvim_lsp = require 'lspconfig'
|
||||||
local on_attach = function(_, bufnr)
|
local on_attach = function(_, bufnr)
|
||||||
@ -337,7 +299,7 @@ local capabilities = vim.lsp.protocol.make_client_capabilities()
|
|||||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
||||||
-- Enable the following language servers
|
-- Enable the following language servers
|
||||||
local servers = { 'bashls', 'dockerls', 'gopls', 'pyright', 'yamlls' }
|
local servers = { 'ansiblels', 'bashls', 'dockerls', 'jsonls', 'pyright', 'yamlls' }
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
nvim_lsp[lsp].setup {
|
nvim_lsp[lsp].setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
@ -376,6 +338,7 @@ require('lspconfig').sumneko_lua.setup {
|
|||||||
-- Make the server aware of Neovim runtime files
|
-- Make the server aware of Neovim runtime files
|
||||||
library = vim.api.nvim_get_runtime_file('', true),
|
library = vim.api.nvim_get_runtime_file('', true),
|
||||||
preloadFileSize = 1000,
|
preloadFileSize = 1000,
|
||||||
|
checkThirdParty = false,
|
||||||
},
|
},
|
||||||
-- Do not send telemetry data containing a randomized but unique identifier
|
-- Do not send telemetry data containing a randomized but unique identifier
|
||||||
telemetry = {
|
telemetry = {
|
||||||
@ -385,6 +348,9 @@ require('lspconfig').sumneko_lua.setup {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Ansible LSP
|
||||||
|
require('lspconfig').ansiblels.setup{}
|
||||||
|
|
||||||
-- Bash LSP
|
-- Bash LSP
|
||||||
require('lspconfig').bashls.setup{}
|
require('lspconfig').bashls.setup{}
|
||||||
|
|
||||||
@ -394,9 +360,6 @@ require('lspconfig').dockerls.setup{}
|
|||||||
-- JSON LSP
|
-- JSON LSP
|
||||||
require('lspconfig').jsonls.setup{}
|
require('lspconfig').jsonls.setup{}
|
||||||
|
|
||||||
-- Nim LSP
|
|
||||||
require('lspconfig').nimls.setup{}
|
|
||||||
|
|
||||||
-- Pyright (Python) LSP
|
-- Pyright (Python) LSP
|
||||||
require('lspconfig').pyright.setup{}
|
require('lspconfig').pyright.setup{}
|
||||||
|
|
||||||
|
36
.config/systemd/user/container-offlineimap.service
Normal file
36
.config/systemd/user/container-offlineimap.service
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# container-offlineimap.service
|
||||||
|
# autogenerated by Podman 4.1.1
|
||||||
|
# Tue Aug 16 12:45:40 CDT 2022
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Podman container-offlineimap.service
|
||||||
|
Documentation=man:podman-generate-systemd(1)
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
RequiresMountsFor=%t/containers
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=PODMAN_SYSTEMD_UNIT=%n
|
||||||
|
Restart=on-failure
|
||||||
|
TimeoutStopSec=70
|
||||||
|
ExecStartPre=/bin/rm -f %t/%n.ctr-id
|
||||||
|
ExecStart=/usr/bin/podman run \
|
||||||
|
--cidfile=%t/%n.ctr-id \
|
||||||
|
--cgroups=no-conmon \
|
||||||
|
--rm \
|
||||||
|
--sdnotify=conmon \
|
||||||
|
-d \
|
||||||
|
--replace \
|
||||||
|
-it \
|
||||||
|
--name offlineimap \
|
||||||
|
--network host \
|
||||||
|
-v /var/home/jas/mail:/mail:Z \
|
||||||
|
-v /var/home/jas/.offlineimap-metadata:/metadata:Z \
|
||||||
|
-v /var/home/jas/.offlineimaprc:/.offlineimaprc:Z localhost/offlineimap
|
||||||
|
ExecStop=/usr/bin/podman stop --ignore --cidfile=%t/%n.ctr-id
|
||||||
|
ExecStopPost=/usr/bin/podman rm -f --ignore --cidfile=%t/%n.ctr-id
|
||||||
|
Type=notify
|
||||||
|
NotifyAccess=all
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
9
.config/systemd/user/container-offlineimap.timer
Normal file
9
.config/systemd/user/container-offlineimap.timer
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Run container-offlineimap.service daily at 22:00:00
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=*-*-* 22:00:00
|
||||||
|
Persistent=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
29
.gitconfig
29
.gitconfig
@ -1,3 +1,31 @@
|
|||||||
|
# Filename: $HOME/.gitconfig
|
||||||
|
# Purpose: config for git(1)
|
||||||
|
# Author: Jeffrey Serio <hyperreal@fedoraproject.org>
|
||||||
|
# License: GPL v3
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
[format]
|
||||||
|
numbered = auto
|
||||||
|
|
||||||
|
[color]
|
||||||
|
branch = yes
|
||||||
|
diff = auto
|
||||||
|
pager = yes
|
||||||
|
status = auto
|
||||||
|
[color "branch"]
|
||||||
|
current = green
|
||||||
|
local = yellow
|
||||||
|
remote = cyan
|
||||||
|
[color "diff"]
|
||||||
|
meta = yellow
|
||||||
|
frag = magenta
|
||||||
|
old = red
|
||||||
|
new = green
|
||||||
|
[color "status"]
|
||||||
|
header = magenta
|
||||||
|
added = green
|
||||||
|
changed = yellow
|
||||||
|
untracked = cyan
|
||||||
[commit]
|
[commit]
|
||||||
[core]
|
[core]
|
||||||
editor = nvim
|
editor = nvim
|
||||||
@ -10,3 +38,4 @@
|
|||||||
name = Jeffrey Serio
|
name = Jeffrey Serio
|
||||||
[global]
|
[global]
|
||||||
|
|
||||||
|
# vim:ft=gitconfig ai et sw=4 ts=4:
|
||||||
|
139
.zshenv
139
.zshenv
@ -1,48 +1,115 @@
|
|||||||
# ~/.zshenv
|
# PATH variable declaration as array
|
||||||
|
# -U means unique, which tells the shell not to add anything to the array if it's
|
||||||
## go paths
|
# already there.
|
||||||
export GOPATH="${HOME}/go"
|
|
||||||
|
|
||||||
## path variable
|
|
||||||
typeset -U PATH path
|
typeset -U PATH path
|
||||||
path=(
|
|
||||||
/usr/local/bin
|
# Add /usr/local dirs to PATH
|
||||||
/usr/local/sbin
|
path=("/usr/local/bin" "/usr/local/sbin")
|
||||||
"${HOME}/.local/bin"
|
path+=("/bin" "/sbin" "/usr/bin" "/usr/sbin")
|
||||||
"${HOME}/bin"
|
|
||||||
"${GOPATH}/bin"
|
# Add nimble (Nim) to PATH
|
||||||
"${HOME}/.cargo/bin"
|
[ -d "${HOME}/.nimble/bin" ] && path+=("${HOME}/.nimble/bin")
|
||||||
"${path[@]}"
|
|
||||||
)
|
# Set Go path if it exist
|
||||||
|
[ -d "${HOME}/go" ] && GOPATH="${HOME}/go" && path+=("${GOPATH}/bin")
|
||||||
|
|
||||||
|
# Set Cargo path for Rust binaries
|
||||||
|
[ -d "${HOME}/.cargo/bin" ] && path+=("${HOME}/.cargo/bin")
|
||||||
|
|
||||||
|
# If ~/bin exists, add it to PATH
|
||||||
|
[ -d "${HOME}/bin" ] && path+=("${HOME}/bin")
|
||||||
|
|
||||||
|
# If ~/.local/bin exists, add it to path
|
||||||
|
[ -d "${HOME}/.local/bin" ] && path+=("${HOME}/.local/bin")
|
||||||
|
|
||||||
export PATH
|
export PATH
|
||||||
|
|
||||||
## reply-to email address
|
# Setup pager
|
||||||
|
if [[ -x $(which most) ]]; then
|
||||||
|
export PAGER="most"
|
||||||
|
export MANPAGER="most"
|
||||||
|
else
|
||||||
|
export PAGER="less -X"
|
||||||
|
export MANPAGER="less -iMXF"
|
||||||
|
|
||||||
|
if [[ $terminfo[colors] -ge 8 ]]; then
|
||||||
|
export LESS_TERMCAP_mb=$'\E[01;31m'
|
||||||
|
export LESS_TERMCAP_md=$'\E[01;31m'
|
||||||
|
export LESS_TERMCAP_me=$'\E[0m'
|
||||||
|
export LESS_TERMCAP_se=$'\E[0m'
|
||||||
|
export LESS_TERMCAP_so=$'\E[01;44;33m'
|
||||||
|
export LESS_TERMCAP_ue=$'\E[0m'
|
||||||
|
export LESS_TERMCAP_us=$'\E[01;32m'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Editor - Neovim, else nano
|
||||||
|
if test -x "$(command -v nvim)"; then
|
||||||
|
EDITOR=nvim
|
||||||
|
elif test -x "$(command -v vim)"; then
|
||||||
|
EDITOR=vim
|
||||||
|
else
|
||||||
|
EDITOR=nano
|
||||||
|
fi
|
||||||
|
|
||||||
|
export EDITOR
|
||||||
|
|
||||||
|
# lscolors (generated from vivid)
|
||||||
|
if [ -f ~/.lscolors.sh ]; then
|
||||||
|
export LS_COLORS=$(cat ~/.lscolors.sh)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Format of process time reports with 'time'
|
||||||
|
# %% A '%'
|
||||||
|
# %U CPU seconds spent in user mode
|
||||||
|
# %S CPU seconds spent in kernel mode
|
||||||
|
# %E Elapsed time in seconds
|
||||||
|
# %P CPU percentage, computed as (%U+%S)/%E
|
||||||
|
# %J The name of this job
|
||||||
|
# Default is:
|
||||||
|
# %E real %U user %S system %P %J
|
||||||
|
TIMEFMT="\
|
||||||
|
|
||||||
|
The name of this job : %J
|
||||||
|
CPU seconds spent in user mode : %U
|
||||||
|
CPU seconds spent in kernel mode : %S
|
||||||
|
Elapsed time in seconds : %E
|
||||||
|
CPU percentage : %P"
|
||||||
|
|
||||||
|
# HISTSIZE is the number of lines of history that is kept within any given
|
||||||
|
# running zsh instance. SAVEHIST is the number of lines of history that is
|
||||||
|
# written out to the HISTFILE when that event occurs. If you use the
|
||||||
|
# HIST_EXPIRE_DUPS_FIRST option, setting this value larger than the SAVEHIST
|
||||||
|
# size will give you the difference as a cushion for saving duplicated history
|
||||||
|
# events.
|
||||||
|
HISTSIZE=100000
|
||||||
|
SAVEHIST=65536
|
||||||
|
|
||||||
|
# Name of the file used to store command history
|
||||||
|
HISTFILE=~/.zsh_history
|
||||||
|
|
||||||
|
# If nonnegative, commands whose combined user and system execution times
|
||||||
|
# (measured in seconds) are greater than this value have timing stats printed
|
||||||
|
# for them.
|
||||||
|
REPORTTIME=10
|
||||||
|
|
||||||
|
# reply-to email address
|
||||||
export REPLYTO="hyperreal@fedoraproject.org"
|
export REPLYTO="hyperreal@fedoraproject.org"
|
||||||
|
|
||||||
## set language
|
# Language
|
||||||
export LANG=en_US.UTF-8
|
export LANG="en_US.UTF-8"
|
||||||
|
|
||||||
## set default editor
|
# Manpages
|
||||||
export EDITOR="nvim"
|
export MANPATH="${MANPATH:-/usr/share/man:/usr/local/share/man}"
|
||||||
|
|
||||||
## manpages
|
if [ -d "${HOME}/.fzf/man" ]; then
|
||||||
export MANPATH="${MANPATH:-/usr/share/man:/usr/local/share/man:/var/home/jas/.fzf/man}"
|
export MANPATH="${MANPATH}:${HOME}/.fzf/man"
|
||||||
|
fi
|
||||||
|
|
||||||
## manpage colors
|
# Bat theme
|
||||||
export LESS_TERMCAP_mb=$'\e[01;31m' # begin blinking
|
|
||||||
export LESS_TERMCAP_md=$'\e[01;37m' # begin bold
|
|
||||||
export LESS_TERMCAP_me=$'\e[0m' # end all mode like so, us, mb, md, mr
|
|
||||||
export LESS_TERMCAP_se=$'\e[0m' # end standout-mode
|
|
||||||
export LESS_TERMCAP_so=$'\e[45;93m' # start standout mode
|
|
||||||
export LESS_TERMCAP_ue=$'\e[0m' # end underline
|
|
||||||
export LESS_TERMCAP_us=$'\e[4;93m' # start underlining
|
|
||||||
|
|
||||||
## set pager stuffs
|
|
||||||
export BAT_THEME="Catppuccin"
|
export BAT_THEME="Catppuccin"
|
||||||
|
|
||||||
## set history stuffs
|
# Automatically remove duplicates from these arrays
|
||||||
export HISTFILE=~/.zsh_history
|
typeset -gU path cdpath manpath fpath
|
||||||
export HISTSIZE=10000
|
|
||||||
export SAVEHIST=10000
|
|
||||||
|
|
||||||
# vim:set ft=zsh ai et sw=4 ts=4:
|
# vim:set ft=zsh ai et sw=4 ts=4:
|
||||||
|
86
.zshrc
86
.zshrc
@ -1,6 +1,46 @@
|
|||||||
# ~/.zshrc
|
# Filename : ~/.zshrc
|
||||||
|
# Purpose : setup file for zsh
|
||||||
|
# Author : Jeffrey Serio <hyperreal@fedoraproject.org>
|
||||||
|
# Homepage : https://hyperreal.coffee
|
||||||
|
#
|
||||||
|
# Zsh Manual - https://zsh-manual.netlify.app
|
||||||
|
# Zsh Guide - https://zsh-guide.netlify.app
|
||||||
|
#
|
||||||
|
# ,----[ man -k zsh ]
|
||||||
|
# |
|
||||||
|
# | zsh (1) - the Z shell
|
||||||
|
# | zshall (1) - the Z shell meta-man page
|
||||||
|
# | zshbuiltins (1) - zsh builtin commands
|
||||||
|
# | zshcalsys (1) - zsh calendar system
|
||||||
|
# | zshcompctl (1) - zsh programmable completion
|
||||||
|
# | zshcompsys (1) - zsh completion system
|
||||||
|
# | zshcompwid (1) - zsh completion widgets
|
||||||
|
# | zshcontrib (1) - user contributions to zsh
|
||||||
|
# | zshexpn (1) - zsh expansion and substitution
|
||||||
|
# | zshmisc (1) - everything and then some
|
||||||
|
# | zshmodules (1) - zsh loadable modules
|
||||||
|
# | zshoptions (1) - zsh options
|
||||||
|
# | zshparam (1) - zsh parameters
|
||||||
|
# | zshroadmap (1) - informal introduction to the zsh manual
|
||||||
|
# | zshtcpsys (1) - zsh tcp system
|
||||||
|
# | zshzftpsys (1) - zftp function front-end
|
||||||
|
# | zshzle (1) - zsh command line editor
|
||||||
|
# `----
|
||||||
|
#
|
||||||
|
# Zsh startup sequence
|
||||||
|
# 1) /etc/zshenv -> Always run for every zsh. (login + interactive + other)
|
||||||
|
# 2) ~/.zshenv -> Usually run for every zsh. (login + interactive + other)
|
||||||
|
# 3) /etc/zprofile -> Run for login shells. (login)
|
||||||
|
# 4) ~/.zprofile -> Run for login shells. (login)
|
||||||
|
# 5) /etc/zshrc -> Run for interactive shells. (login + interactive)
|
||||||
|
# 6) ~/.zshrc -> Run for interactive shells. (login + interactive)
|
||||||
|
# 7) /etc/zlogin -> Run for login shells. (login)
|
||||||
|
# 8) ~/.zlogin -> Run for login shells. (login)
|
||||||
|
#
|
||||||
|
# This file is based on Christian Schneider's zsh configuration
|
||||||
|
# https://www.strcat.de/dotfiles
|
||||||
|
|
||||||
## Plugins
|
# Plugins
|
||||||
if ! test -f ~/.zplug/init.zsh; then
|
if ! test -f ~/.zplug/init.zsh; then
|
||||||
export ZPLUG_HOME=~/.zplug
|
export ZPLUG_HOME=~/.zplug
|
||||||
git clone https://github.com/zplug/zplug $ZPLUG_HOME
|
git clone https://github.com/zplug/zplug $ZPLUG_HOME
|
||||||
@ -8,18 +48,25 @@ fi
|
|||||||
|
|
||||||
source ~/.zplug/init.zsh
|
source ~/.zplug/init.zsh
|
||||||
|
|
||||||
zplug "~/.zshrc.d", from:local, use:'(*).zsh'
|
# Load file from ~/.zshrc.d
|
||||||
|
zplug "~/.zshrc.d", from:local, use:'*'
|
||||||
|
|
||||||
|
# Use autosuggestions when typing commands
|
||||||
zplug "zsh-users/zsh-autosuggestions"
|
zplug "zsh-users/zsh-autosuggestions"
|
||||||
|
|
||||||
|
# Use a keybinding to complete parts of command from the history file
|
||||||
zplug "zsh-users/zsh-history-substring-search"
|
zplug "zsh-users/zsh-history-substring-search"
|
||||||
|
|
||||||
|
# Use syntax highlighting when typing commands
|
||||||
zplug "zsh-users/zsh-syntax-highlighting", defer:2
|
zplug "zsh-users/zsh-syntax-highlighting", defer:2
|
||||||
zplug "amaya382/zsh-fzf-widgets"
|
|
||||||
zplug "chitoku-k/fzf-zsh-completions"
|
# Press escape twice to prepend `sudo` to the command line
|
||||||
zplug "plugins/dnf", from:oh-my-zsh
|
|
||||||
zplug "plugins/extract", from:oh-my-zsh
|
|
||||||
zplug "plugins/firewalld", from:oh-my-zsh
|
|
||||||
zplug "plugins/git", from:oh-my-zsh
|
|
||||||
zplug "plugins/sudo", from:oh-my-zsh
|
zplug "plugins/sudo", from:oh-my-zsh
|
||||||
|
|
||||||
|
# systemd aliases
|
||||||
zplug "plugins/systemd", from:oh-my-zsh
|
zplug "plugins/systemd", from:oh-my-zsh
|
||||||
|
|
||||||
|
# Directory bookmarks using FZF
|
||||||
zplug "urbainvaes/fzf-marks"
|
zplug "urbainvaes/fzf-marks"
|
||||||
|
|
||||||
if ! zplug check; then
|
if ! zplug check; then
|
||||||
@ -29,27 +76,10 @@ fi
|
|||||||
|
|
||||||
zplug load
|
zplug load
|
||||||
|
|
||||||
## General shell options
|
# lscolors.sh
|
||||||
# See https://zsh-manual.netlify.app/options
|
|
||||||
setopt appendhistory
|
|
||||||
setopt autocd
|
|
||||||
setopt autolist
|
|
||||||
setopt automenu
|
|
||||||
setopt autoremoveslash
|
|
||||||
setopt cdablevars
|
|
||||||
setopt histallowclobber
|
|
||||||
setopt histignorealldups
|
|
||||||
setopt histignoredups
|
|
||||||
setopt histsavenodups
|
|
||||||
setopt interactivecomments
|
|
||||||
setopt listpacked
|
|
||||||
setopt listtypes
|
|
||||||
setopt longlistjobs
|
|
||||||
|
|
||||||
## lscolors
|
|
||||||
export LS_COLORS=$(cat ~/.lscolors.sh)
|
export LS_COLORS=$(cat ~/.lscolors.sh)
|
||||||
|
|
||||||
## Prompt
|
# starship.rs prompt
|
||||||
eval "$(starship init zsh)"
|
eval "$(starship init zsh)"
|
||||||
|
|
||||||
# vim:set ft=zsh ai et sw=4 ts=4:
|
# vim:set ft=zsh ai et sw=4 ts=4:
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
# ~/.zshrc.d/aliases.zsh
|
|
||||||
|
|
||||||
## the ls family
|
|
||||||
if test -x "$(command -v exa)"; then
|
|
||||||
alias ls="exa"
|
|
||||||
fi
|
|
||||||
alias l="ls -lFhg"
|
|
||||||
alias la="ls -a"
|
|
||||||
alias ll="ls -l"
|
|
||||||
alias lal="ls -al"
|
|
||||||
alias ldot="ls -gld .*"
|
|
||||||
alias lse="/bin/ls -lZ"
|
|
||||||
|
|
||||||
lgn() { exa --tree --level=$1 ; }
|
|
||||||
|
|
||||||
## greps
|
|
||||||
alias grep="grep --color"
|
|
||||||
alias sgrep="grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}"
|
|
||||||
|
|
||||||
## copy SSH pubkey to clipboard
|
|
||||||
alias pubkey="more ~/.ssh/id_ed25519.pub | xclip -selection clipboard | echo '==> SSH public key copied'"
|
|
||||||
|
|
||||||
## mosh
|
|
||||||
alias mosh="mosh -p 60001"
|
|
||||||
|
|
||||||
## display disk usage with dust
|
|
||||||
alias dud="dust --depth 1 -w 88"
|
|
||||||
|
|
||||||
## prompt user before overwriting copied and moved files
|
|
||||||
alias cp="cp -i"
|
|
||||||
alias mv="mv -i"
|
|
||||||
alias rm="rm -i"
|
|
||||||
|
|
||||||
## display zsh functions with bat
|
|
||||||
alias zfun="functions | bat -l zsh"
|
|
||||||
|
|
||||||
## luamake
|
|
||||||
alias luamake="/home/jas/.local/share/sumneko/lua-language-server/3rd/luamake/luamake"
|
|
||||||
|
|
||||||
## assorted globals
|
|
||||||
alias -g H="| head"
|
|
||||||
alias -g T="| tail"
|
|
||||||
alias -g G="| grep"
|
|
||||||
alias -g L="| less -X"
|
|
||||||
alias -g B="| bat"
|
|
||||||
alias -g LL="2>&1 | less"
|
|
||||||
alias -g CA="2>&1 | cat -A"
|
|
||||||
alias -g NE="2> /dev/null"
|
|
||||||
alias -g NUL="> /dev/null 2>&1"
|
|
||||||
alias -g P="2>&1| pygmentize -l pytb"
|
|
||||||
alias -g J="| jq ."
|
|
||||||
alias -g CC="| xclip -selection clipboard"
|
|
||||||
|
|
||||||
## networking
|
|
||||||
alias pubip="curl ipinfo.io"
|
|
||||||
alias netCons="lsof -i"
|
|
||||||
alias tulp="ss -tulp"
|
|
||||||
alias openPorts="sudo lsof -i | grep LISTEN"
|
|
||||||
alias pong="ping -c 3 www.google.com"
|
|
||||||
alias lsock="sudo lsof -i -P"
|
|
||||||
alias lsockU="sudo lsof -nP | grep UDP"
|
|
||||||
alias lsockT="sudo lsof -nP | grep TCP"
|
|
||||||
|
|
||||||
## logs directory
|
|
||||||
alias logs="ls /var/log/"
|
|
||||||
|
|
||||||
## reboot/poweroff
|
|
||||||
alias rbt="sudo systemctl reboot"
|
|
||||||
alias shut="sudo systemctl poweroff"
|
|
||||||
|
|
||||||
# vim:set ft=zsh ai et sw=4 ts=4:
|
|
@ -15,21 +15,21 @@ ZSH_HIGHLIGHT_STYLES[comment]='fg=#585b70'
|
|||||||
## Constants
|
## Constants
|
||||||
## Entitites
|
## Entitites
|
||||||
## Functions/methods
|
## Functions/methods
|
||||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[alias]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[function]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[function]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[command]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[command]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[precommand]='fg=#cba6f7,italic'
|
ZSH_HIGHLIGHT_STYLES[precommand]='fg=#a6e3a1,italic'
|
||||||
ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#fab387,italic'
|
ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#fab387,italic'
|
||||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#fab387'
|
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#fab387'
|
||||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#fab387'
|
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#fab387'
|
||||||
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#cba6f7'
|
||||||
## Keywords
|
## Keywords
|
||||||
## Built ins
|
## Built ins
|
||||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#94e2d5'
|
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#94e2d5'
|
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#a6e3a1'
|
||||||
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#94e2d5'
|
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#a6e3a1'
|
||||||
## Punctuation
|
## Punctuation
|
||||||
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#f38ba8'
|
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#f38ba8'
|
||||||
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#cdd6f4'
|
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#cdd6f4'
|
||||||
@ -57,10 +57,10 @@ ZSH_HIGHLIGHT_STYLES[named-fd]='fg=#cdd6f4'
|
|||||||
ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#cdd6f4'
|
ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#cdd6f4'
|
||||||
## No category relevant in spec
|
## No category relevant in spec
|
||||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#e64553'
|
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#e64553'
|
||||||
ZSH_HIGHLIGHT_STYLES[path]='fg=#cdd6f4'
|
ZSH_HIGHLIGHT_STYLES[path]='fg=#cdd6f4,underline'
|
||||||
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#f38ba8'
|
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#f38ba8,underline'
|
||||||
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#cdd6f4'
|
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#cdd6f4,underline'
|
||||||
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#f38ba8'
|
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#f38ba8,underline'
|
||||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#cdd6f4'
|
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#cdd6f4'
|
||||||
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#cba6f7'
|
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#cba6f7'
|
||||||
#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?'
|
#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?'
|
||||||
|
@ -1,77 +0,0 @@
|
|||||||
# ~/.zshrc.d/functions.zsh
|
|
||||||
|
|
||||||
## Do an ls after cd
|
|
||||||
cd() { builtin cd "$@" && ls; }
|
|
||||||
|
|
||||||
## Create new directory and enter it
|
|
||||||
mkd() { mkdir -p "$@" && cd "$_"; }
|
|
||||||
|
|
||||||
## pids
|
|
||||||
pids() { pgrep -a "$@"; }
|
|
||||||
|
|
||||||
## variation of our manzsh() function; pick you poison:
|
|
||||||
manzsh() { /usr/bin/man zshall | most +/"$1" ; }
|
|
||||||
|
|
||||||
## restart zsh
|
|
||||||
restart () {
|
|
||||||
exec $SHELL $SHELL_ARGS "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
rsrc() { cd && clear && restart; }
|
|
||||||
|
|
||||||
## parse HackerNews feed (https://hnrss.org/newest)
|
|
||||||
hn() {
|
|
||||||
python3 <(cat <<EOF
|
|
||||||
|
|
||||||
import feedparser
|
|
||||||
HNFeed = feedparser.parse("https://hnrss.org/newest")
|
|
||||||
|
|
||||||
class bcolors:
|
|
||||||
HEADER = '\033[95m'
|
|
||||||
ENDC = '\033[0m'
|
|
||||||
|
|
||||||
for item in HNFeed.entries:
|
|
||||||
print(f"{bcolors.HEADER}%s{bcolors.ENDC}" % item.title)
|
|
||||||
print(item.links[0].href)
|
|
||||||
print("")
|
|
||||||
|
|
||||||
EOF
|
|
||||||
) | bat -p
|
|
||||||
}
|
|
||||||
|
|
||||||
## fetch open source license
|
|
||||||
license() {
|
|
||||||
local base_url
|
|
||||||
base_url="https://api.github.com/licenses"
|
|
||||||
|
|
||||||
local headers
|
|
||||||
headers="Accept: application/vnd.github.drax-preview+json"
|
|
||||||
|
|
||||||
local res
|
|
||||||
if (( $# == 0 )); then
|
|
||||||
res=$(curl --silent --header $headers $base_url)
|
|
||||||
|
|
||||||
echo "Available licenses:"
|
|
||||||
echo
|
|
||||||
echo "$res" | jq ".[].key" | tr -d '"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
local license="$argv[1]"
|
|
||||||
res=$(curl --silent --header $headers $base_url/$license | jq ."body")
|
|
||||||
echo -e $res | tr -d '"'
|
|
||||||
}
|
|
||||||
|
|
||||||
nmap_ssh() {
|
|
||||||
if sudo podman image exists localhost/nmap; then
|
|
||||||
sudo podman run -it --rm \
|
|
||||||
--cap-add=NET_RAW \
|
|
||||||
--cap-add=NET_ADMIN \
|
|
||||||
--network host \
|
|
||||||
--name nmap \
|
|
||||||
nmap -sV -p 22 -open 10.0.0.0/24
|
|
||||||
else
|
|
||||||
echo "localhost/nmap image does not exist"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# vim:set ft=zsh ai et sw=4 ts=4:
|
|
148
.zshrc.d/zshaliases
Normal file
148
.zshrc.d/zshaliases
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
# Get top 10 shell commands
|
||||||
|
alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
|
||||||
|
|
||||||
|
# history mechanism
|
||||||
|
alias h='history'
|
||||||
|
|
||||||
|
# Aliases for APT
|
||||||
|
if [ -e "/etc/debian_version" ]; then
|
||||||
|
alias acs="sudo apt-cache search"
|
||||||
|
alias acp="sudo apt-cache policy"
|
||||||
|
alias afs="sudo apt-file search"
|
||||||
|
alias afu="sudo apt-file update"
|
||||||
|
alias aac="sudo apt autoclean"
|
||||||
|
alias agc="sudo apt clean"
|
||||||
|
alias agi="sudo apt install"
|
||||||
|
alias agli="sudo apt list --installed"
|
||||||
|
alias agp="sudo apt purge"
|
||||||
|
alias agr="sudo apt remove"
|
||||||
|
alias agu="sudo apt update"
|
||||||
|
alias agud="sudo apt update && sudo apt dist-upgrade"
|
||||||
|
alias agar="sudo apt autoremove"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "/etc/redhat-release" ]; then
|
||||||
|
alias dnfc='sudo dnf clean all'
|
||||||
|
alias dnfgi='sudo dnf groupinstall'
|
||||||
|
alias dnfgl='dnf grouplist'
|
||||||
|
alias dnfgr='sudo dnf groupremove'
|
||||||
|
alias dnfi='sudo dnf install'
|
||||||
|
alias dnfl='dnf list'
|
||||||
|
alias dnfli='dnf list installed'
|
||||||
|
alias dnfmc='dnf makecache'
|
||||||
|
alias dnfp='dnf info'
|
||||||
|
alias dnfr='sudo dnf remove'
|
||||||
|
alias dnfs='dnf search'
|
||||||
|
alias dnfu='sudo dnf update'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Convert UPPER to lower (or back)
|
||||||
|
alias UP2low='for i in *(.); mv $i ${i:l}'
|
||||||
|
alias low2UP='for i in *(.); mv $i ${i:u}'
|
||||||
|
|
||||||
|
# The ls family
|
||||||
|
if test -x "$(command -v exa)"; then
|
||||||
|
alias ls='exa'
|
||||||
|
else
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
alias l='ls -lFhg'
|
||||||
|
alias la='ls -a'
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias lal='ls -al'
|
||||||
|
alias ldot='ls -gld .*'
|
||||||
|
alias lse='/bin/ls -lZ'
|
||||||
|
|
||||||
|
# greps
|
||||||
|
alias grep='grep --color'
|
||||||
|
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}'
|
||||||
|
|
||||||
|
# Copy SSH public key to clipboard (requires xclip or xsel)
|
||||||
|
if test -x "$(command -v xclip)"; then
|
||||||
|
alias pubkey='more ~/.ssh/id_ed25519.pub | xclip -selection clipboard | echo "SSH public key copied"'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt user before overwriting files
|
||||||
|
alias cp='cp -i'
|
||||||
|
alias mv='mv -i'
|
||||||
|
alias rm='rm -i'
|
||||||
|
|
||||||
|
# Display zsh functions with bat
|
||||||
|
alias zfun='functions | bat -l zsh'
|
||||||
|
|
||||||
|
# Assorted global aliases
|
||||||
|
alias -g H='| head'
|
||||||
|
alias -g T='| tail'
|
||||||
|
alias -g G='| grep'
|
||||||
|
alias -g L='| less -X'
|
||||||
|
alias -g B='| bat'
|
||||||
|
alias -g LL='2>&1 | less'
|
||||||
|
alias -g NE='2> /dev/null'
|
||||||
|
alias -g NUL='> /dev/null 2>&1'
|
||||||
|
alias -g P='2>&1| pygmentize -l pytb'
|
||||||
|
alias -g J='| jq'
|
||||||
|
alias -g CC='| xclip -selection clipboard'
|
||||||
|
alias -g C='| wc -l'
|
||||||
|
alias -g SS='| sort'
|
||||||
|
alias -g Su='| sort -u'
|
||||||
|
alias -g Sn='| sort -n'
|
||||||
|
alias -g Snr='| sort -nr'
|
||||||
|
|
||||||
|
# Get public IP address
|
||||||
|
alias pubip='curl ipinfo.io'
|
||||||
|
|
||||||
|
# List apps with network connections
|
||||||
|
alias netCons='lsof -i'
|
||||||
|
|
||||||
|
# List ports
|
||||||
|
alias tulp='ss -tulp'
|
||||||
|
|
||||||
|
# List open ports
|
||||||
|
alias openPorts='sudo lsof -i | grep LISTEN'
|
||||||
|
|
||||||
|
# Ping google.com
|
||||||
|
alias pong='ping -c 3 www.google.com'
|
||||||
|
|
||||||
|
# List sockets in use
|
||||||
|
alias lsock='sudo lsof -i -P'
|
||||||
|
|
||||||
|
# List UDP sockets in use
|
||||||
|
alias lsockU='sudo lsof -nP | grep UDP'
|
||||||
|
|
||||||
|
# List TCP sockets in use
|
||||||
|
alias lsockT='sudo lsof -nP | grep TCP'
|
||||||
|
|
||||||
|
# Reboot / Poweroff
|
||||||
|
alias rbt='sudo systemctl reboot'
|
||||||
|
alias shut='sudo systemctl poweroff'
|
||||||
|
|
||||||
|
# GPG
|
||||||
|
alias gpgs='gpg --search-keys'
|
||||||
|
alias gpgl='gpg --list-keys --with-fingerprint'
|
||||||
|
|
||||||
|
# Suffix aliases
|
||||||
|
alias -s {conf,config,cfg,md,rc,txt,zshrc}="nvim"
|
||||||
|
|
||||||
|
# firewalld
|
||||||
|
if test -x "$(command -v firewall-cmd)"; then
|
||||||
|
alias fw='sudo firewall-cmd'
|
||||||
|
alias fwp='sudo firewall-cmd --permanent'
|
||||||
|
alias fwr='sudo firewall-cmd --reload'
|
||||||
|
alias fwrp='sudo firewall-cmd --runtime-to-permanent'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# git
|
||||||
|
alias ga='git add'
|
||||||
|
alias gcl='git clone'
|
||||||
|
alias gcmsg='git commit -m'
|
||||||
|
alias gd='git diff'
|
||||||
|
alias gl='git pull'
|
||||||
|
alias gp='git push'
|
||||||
|
alias gr='git remote'
|
||||||
|
alias grbi='git rebase -i'
|
||||||
|
alias grm='git rm'
|
||||||
|
alias grv='git remote -v'
|
||||||
|
alias gst='git status'
|
||||||
|
|
||||||
|
# vim:set ft=zsh ai et sw=4 ts=4:
|
@ -1,5 +1,3 @@
|
|||||||
# ~/.zshrc.d/input.zsh
|
|
||||||
|
|
||||||
typeset -g -A key
|
typeset -g -A key
|
||||||
|
|
||||||
key[Home]="${terminfo[khome]}"
|
key[Home]="${terminfo[khome]}"
|
314
.zshrc.d/zshfunctions
Normal file
314
.zshrc.d/zshfunctions
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
# snakify filenames
|
||||||
|
snakify () {
|
||||||
|
emulate -L zsh
|
||||||
|
local filename=$(basename -- "$1")
|
||||||
|
local extension="${filename##*.}"
|
||||||
|
local filename="${filename%.*}"
|
||||||
|
local new_filename=$(echo ${filename// /_} | tr '-' '_' | tr -cd '[:alnum:]._-')
|
||||||
|
local new_basename=$(echo "$new_filename.$extension")
|
||||||
|
mv -i "$1" "$new_basename"
|
||||||
|
mv -i "$new_basename" "${new_basename:l}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Print timestamp
|
||||||
|
tstamp() {
|
||||||
|
emulate -L zsh
|
||||||
|
date '+%Y-%m-%d %H:%M:%S'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find history events by search pattern and list them by date.
|
||||||
|
whatwhen () {
|
||||||
|
emulate -L zsh
|
||||||
|
local usage help ident format_l format_s first_char remain first last
|
||||||
|
usage='USAGE: whatwhen [options] <searchstring> <search range>'
|
||||||
|
help='Use `whatwhen -h'\'' for further explanations.'
|
||||||
|
ident=${(l,${#${:-Usage: }},, ,)}
|
||||||
|
format_l="${ident}%s\t\t\t%s\n"
|
||||||
|
format_s="${format_l//(\\t)##/\\t}"
|
||||||
|
# Make the first char of the word to search for case
|
||||||
|
# insensitive; e.g. [aA]
|
||||||
|
first_char=[${(L)1[1]}${(U)1[1]}]
|
||||||
|
remain=${1[2,-1]}
|
||||||
|
# Default search range is `-100'.
|
||||||
|
first=${2:-\-100}
|
||||||
|
# Optional, just used for `<first> <last>' given.
|
||||||
|
last=$3
|
||||||
|
case $1 in
|
||||||
|
("")
|
||||||
|
printf '%s\n\n' 'ERROR: No search string specified. Aborting.'
|
||||||
|
printf '%s\n%s\n\n' ${usage} ${help} && return 1
|
||||||
|
;;
|
||||||
|
(-h)
|
||||||
|
printf '%s\n\n' ${usage}
|
||||||
|
print 'OPTIONS:'
|
||||||
|
printf $format_l '-h' 'show help text'
|
||||||
|
print '\f'
|
||||||
|
print 'SEARCH RANGE:'
|
||||||
|
printf $format_l "'0'" 'the whole history,'
|
||||||
|
printf $format_l '-<n>' 'offset to the current history number; (default: -100)'
|
||||||
|
printf $format_s '<[-]first> [<last>]' 'just searching within a give range'
|
||||||
|
printf '\n%s\n' 'EXAMPLES:'
|
||||||
|
printf ${format_l/(\\t)/} 'whatwhen grml' '# Range is set to -100 by default.'
|
||||||
|
printf $format_l 'whatwhen zsh -250'
|
||||||
|
printf $format_l 'whatwhen foo 1 99'
|
||||||
|
;;
|
||||||
|
(\?)
|
||||||
|
printf '%s\n%s\n\n' ${usage} ${help} && return 1
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
# -l list results on stout rather than invoking $EDITOR.
|
||||||
|
# -i Print dates as in YYYY-MM-DD.
|
||||||
|
# -m Search for a - quoted - pattern within the history.
|
||||||
|
fc -li -m "*${first_char}${remain}*" $first $last
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
alias x=extract
|
||||||
|
|
||||||
|
extract() {
|
||||||
|
setopt localoptions noautopushd
|
||||||
|
|
||||||
|
if (( $# == 0 )); then
|
||||||
|
cat >&2 <<'EOF'
|
||||||
|
Usage: extract [-option] [file ...]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-r, --remove Remove archive after unpacking.
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
local remove_archive=1
|
||||||
|
if [[ "$1" == "-r" ]] || [[ "$1" == "--remove" ]]; then
|
||||||
|
remove_archive=0
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
local pwd="$PWD"
|
||||||
|
while (( $# > 0 )); do
|
||||||
|
if [[ ! -f "$1" ]]; then
|
||||||
|
echo "extract: '$1' is not a valid file" >&2
|
||||||
|
shift
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
local success=0
|
||||||
|
local extract_dir="${1:t:r}"
|
||||||
|
local file="$1" full_path="${1:A}"
|
||||||
|
case "${file:l}" in
|
||||||
|
(*.tar.gz|*.tgz) (( $+commands[pigz] )) && { pigz -dc "$file" | tar xv } || tar zxvf "$file" ;;
|
||||||
|
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$file" ;;
|
||||||
|
(*.tar.xz|*.txz)
|
||||||
|
tar --xz --help &> /dev/null \
|
||||||
|
&& tar --xz -xvf "$file" \
|
||||||
|
|| xzcat "$file" | tar xvf - ;;
|
||||||
|
(*.tar.zma|*.tlz)
|
||||||
|
tar --lzma --help &> /dev/null \
|
||||||
|
&& tar --lzma -xvf "$file" \
|
||||||
|
|| lzcat "$file" | tar xvf - ;;
|
||||||
|
(*.tar.zst|*.tzst)
|
||||||
|
tar --zstd --help &> /dev/null \
|
||||||
|
&& tar --zstd -xvf "$file" \
|
||||||
|
|| zstdcat "$file" | tar xvf - ;;
|
||||||
|
(*.tar) tar xvf "$file" ;;
|
||||||
|
(*.tar.lz) (( $+commands[lzip] )) && tar xvf "$file" ;;
|
||||||
|
(*.tar.lz4) lz4 -c -d "$file" | tar xvf - ;;
|
||||||
|
(*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$file" ;;
|
||||||
|
(*.gz) (( $+commands[pigz] )) && pigz -dk "$file" || gunzip -k "$file" ;;
|
||||||
|
(*.bz2) bunzip2 "$file" ;;
|
||||||
|
(*.xz) unxz "$file" ;;
|
||||||
|
(*.lrz) (( $+commands[lrunzip] )) && lrunzip "$file" ;;
|
||||||
|
(*.lz4) lz4 -d "$file" ;;
|
||||||
|
(*.lzma) unlzma "$file" ;;
|
||||||
|
(*.z) uncompress "$file" ;;
|
||||||
|
(*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$file" -d "$extract_dir" ;;
|
||||||
|
(*.rar) unrar x -ad "$file" ;;
|
||||||
|
(*.rpm)
|
||||||
|
command mkdir -p "$extract_dir" && builtin cd -q "$extract_dir" \
|
||||||
|
&& rpm2cpio "$full_path" | cpio --quiet -id ;;
|
||||||
|
(*.7z) 7za x "$file" ;;
|
||||||
|
(*.deb)
|
||||||
|
command mkdir -p "$extract_dir/control" "$extract_dir/data"
|
||||||
|
builtin cd -q "$extract_dir"; ar vx "$full_path" > /dev/null
|
||||||
|
builtin cd -q control; extract ../control.tar.*
|
||||||
|
builtin cd -q ../data; extract ../data.tar.*
|
||||||
|
builtin cd -q ..; command rm *.tar.* debian-binary ;;
|
||||||
|
(*.zst) unzstd "$file" ;;
|
||||||
|
(*.cab) cabextract -d "$extract_dir" "$file" ;;
|
||||||
|
(*.cpio) cpio -idmvF "$file" ;;
|
||||||
|
(*)
|
||||||
|
echo "extract: '$file' cannot be extracted" >&2
|
||||||
|
success=1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
(( success = success > 0 ? success : $? ))
|
||||||
|
(( success == 0 && remove_archive == 0 )) && rm "$full_path"
|
||||||
|
shift
|
||||||
|
|
||||||
|
# Go back to original working directory in case we ran cd previously
|
||||||
|
builtin cd -q "$pwd"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# ARCHIVE: Create a tarball from given directory
|
||||||
|
function create-archive()
|
||||||
|
{
|
||||||
|
local archive_name
|
||||||
|
archive_name="$1.tar.gz"
|
||||||
|
archive_name=${archive_name/\//}
|
||||||
|
tar cvfz "$archive_name" "$1"
|
||||||
|
echo "Created archive $archive_name"
|
||||||
|
}
|
||||||
|
compdef _directories create-archive
|
||||||
|
|
||||||
|
# Create a /overview/ of all available function()'s; the description for
|
||||||
|
# each funtion() *must* be the first line above the string `function'!
|
||||||
|
# Otherwise it wont work.
|
||||||
|
# Display all function()'s with her descriptions
|
||||||
|
function funlist()
|
||||||
|
{
|
||||||
|
grep -B 1 "^function" $HOME/.zshrc.d/zshfunctions | \
|
||||||
|
grep -v "^\-\-$" | \
|
||||||
|
awk '{ if(/^#/) { gsub(/^#[:space:]*/, ""); ht=$0 }; getline; gsub(/ ?\(\)/, ":"); printf("-> %-20s %s\n", $2, ht); }' | \
|
||||||
|
sort -u -k 3
|
||||||
|
}
|
||||||
|
|
||||||
|
# show directory stack and ask for a dir to switch to
|
||||||
|
function dstack() {
|
||||||
|
emulate -L zsh
|
||||||
|
autoload -U colors
|
||||||
|
local color=$fg_bold[blue]
|
||||||
|
integer i=0
|
||||||
|
dirs -p | while read dir
|
||||||
|
do
|
||||||
|
local num="${$(printf "%-4d " $i)/ /.}"
|
||||||
|
printf " %s $color%s$reset_color\n" $num $dir
|
||||||
|
(( i++ ))
|
||||||
|
done
|
||||||
|
integer dir=-1
|
||||||
|
read -r 'dir?Jump to directory: ' || return
|
||||||
|
(( dir == -1 )) && return
|
||||||
|
if (( dir < 0 || dir >= i ))
|
||||||
|
then
|
||||||
|
echo d: no such directory stack entry: $dir
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
cd ~$dir
|
||||||
|
}
|
||||||
|
|
||||||
|
# zremovecomp() remove *.zwc files
|
||||||
|
function zremovecomp() {
|
||||||
|
local i
|
||||||
|
for i in ${HOME}/*.zwc(N); do
|
||||||
|
printf "Removing $i\n"
|
||||||
|
command rm -f $i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# grep(1)'ing $HISTFILE
|
||||||
|
histgrep () { fc -fl -m "*(#i)$1*" 1 | grep -i --color $1 }
|
||||||
|
|
||||||
|
# A nicer output of cal(1)
|
||||||
|
# MISC: Colorize the output of cal(1)
|
||||||
|
function calendar() {
|
||||||
|
if [[ ! -f /usr/bin/cal ]] ; then
|
||||||
|
echo "Please install cal before trying to use it!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [[ "$#" = "0" ]] ; then
|
||||||
|
/usr/bin/cal | egrep -C 40 --color "\<$(date +%e| tr -d ' ')\>"
|
||||||
|
else
|
||||||
|
/usr/bin/cal $@ | egrep -C 40 --color "\<($(date +%B)|$(date +%e | tr -d ' '))\>"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# PROG: invoke this every time when u change .zshrc to recompile it.
|
||||||
|
function src()
|
||||||
|
{
|
||||||
|
autoload -U zrecompile
|
||||||
|
[ -f ~/.zshrc ] && zrecompile -p ~/.zshrc
|
||||||
|
[ -f ~/.zcompdump ] && zrecompile -p ~/.zcompdump
|
||||||
|
[ -f ~/.zcompdump ] && zrecompile -p ~/.zcompdump
|
||||||
|
[ -f ~/.zshrc.zwc.old ] && command rm -f ~/.zshrc.zwc.old
|
||||||
|
[ -f ~/.zcompdump.zwc.old ] && command rm -f ~/.zcompdump.zwc.old
|
||||||
|
source ~/.zshrc
|
||||||
|
}
|
||||||
|
|
||||||
|
# Do an ls after cd
|
||||||
|
cd() { builtin cd "$@" && ls; }
|
||||||
|
|
||||||
|
# Create new directory and enter it
|
||||||
|
mkd() { mkdir -p "$@" && cd "$_"; }
|
||||||
|
|
||||||
|
# pids
|
||||||
|
pids() { pgrep -a "$@"; }
|
||||||
|
|
||||||
|
# zshall manpage
|
||||||
|
manzsh() { /usr/bin/man zshall | most +/"$1" ; }
|
||||||
|
|
||||||
|
# Restart zsh
|
||||||
|
restart() {
|
||||||
|
exec $SHELL $SHELL_ARGS "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
rsrc() { cd && clear && restart; }
|
||||||
|
|
||||||
|
# Parse HackerNews feed (https://hnrss.org/newest)
|
||||||
|
hn() {
|
||||||
|
python3 <(cat <<EOF
|
||||||
|
|
||||||
|
import feedparser
|
||||||
|
HNFeed = feedparser.parse("https://hnrss.org/newest")
|
||||||
|
|
||||||
|
class bcolors:
|
||||||
|
HEADER = '\033[95m'
|
||||||
|
ENDC = '\033[0m'
|
||||||
|
|
||||||
|
for item in HNFeed.entries:
|
||||||
|
print(f"{bcolors.HEADER}%s{bcolors.ENDC}" % item.title)
|
||||||
|
print(item.links[0].href)
|
||||||
|
print("")
|
||||||
|
|
||||||
|
EOF
|
||||||
|
) | bat -p
|
||||||
|
}
|
||||||
|
|
||||||
|
# fetch open source license
|
||||||
|
license() {
|
||||||
|
local base_url
|
||||||
|
base_url="https://api.github.com/licenses"
|
||||||
|
|
||||||
|
local headers
|
||||||
|
headers="Accept: application/vnd.github.drax-preview+json"
|
||||||
|
|
||||||
|
local res
|
||||||
|
if (( $# == 0 )); then
|
||||||
|
res=$(curl --silent --header $headers $base_url)
|
||||||
|
|
||||||
|
echo "Available licenses:"
|
||||||
|
echo
|
||||||
|
echo "$res" | jq ".[].key" | tr -d '"'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local license="$argv[1]"
|
||||||
|
res=$(curl --silent --header $headers $base_url/$license | jq ."body")
|
||||||
|
echo -e $res | tr -d '"'
|
||||||
|
}
|
||||||
|
|
||||||
|
# use nmap from podman to check for open SSH ports on local net
|
||||||
|
if test -x "$(command -v podman)"; then
|
||||||
|
nmap_ssh() {
|
||||||
|
if sudo podman image exists localhost/nmap; then
|
||||||
|
sudo podman run -it --rm \
|
||||||
|
--cap-add=NET_RAW \
|
||||||
|
--cap-add=NET_ADMIN \
|
||||||
|
--network host \
|
||||||
|
--name nmap \
|
||||||
|
nmap -sV -p 22 -open 10.0.0.0/24
|
||||||
|
else
|
||||||
|
echo "localhost/nmap image does not exist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# vim:set ft=zsh ai et sw=4 ts=4:
|
154
.zshrc.d/zshoptions
Normal file
154
.zshrc.d/zshoptions
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
## General shell options
|
||||||
|
# See https://zsh-manual.netlify.app/options
|
||||||
|
|
||||||
|
# This is a multiple move based on zsh pattern matching (like "mmv").
|
||||||
|
# Read ``less ${^fpath}/zmv(N)'' for more details.
|
||||||
|
autoload zmv
|
||||||
|
|
||||||
|
# A builtin that can clone a running shell onto another terminal.
|
||||||
|
zmodload -e zsh/clone
|
||||||
|
|
||||||
|
# When listing options (by 'setopt', 'unsetopt', 'set -o', or 'set +o'),
|
||||||
|
# those turned on by default appear in the list prefixed with 'no'.
|
||||||
|
# Hence (unless KSH_OPTION_PRINT is set), 'setopt' shows all options whose
|
||||||
|
# settings are changed from default.
|
||||||
|
#
|
||||||
|
# Report the status of background jobs immediately, rather than waiting until
|
||||||
|
# just before printing a prompt.
|
||||||
|
setopt notify
|
||||||
|
|
||||||
|
# Allow comments even in interactive shells.
|
||||||
|
setopt interactivecomments
|
||||||
|
|
||||||
|
# Send *not* a HUP signal to running jobs when the shell exits.
|
||||||
|
setopt nohup
|
||||||
|
|
||||||
|
# If a pattern for filename generation has no matches, delete the pattern from
|
||||||
|
# the argument list instead of reporting an error.
|
||||||
|
# Overrides NOMATCH
|
||||||
|
setopt nullglob
|
||||||
|
|
||||||
|
# Perform =filename access
|
||||||
|
# $ setopt EQUALS
|
||||||
|
# $ echo =ls
|
||||||
|
# /bin/ls
|
||||||
|
# $ unsetopt EQUALS
|
||||||
|
# $ echo =ls
|
||||||
|
# =ls
|
||||||
|
# NOTE: It's not really needed because zsh sets the per default.
|
||||||
|
setopt equals
|
||||||
|
|
||||||
|
# Try to make completion list smaller by printing the matches in columns with
|
||||||
|
# different widths.
|
||||||
|
setopt list_packed
|
||||||
|
|
||||||
|
# Expands single letters and ranges of letters between braces
|
||||||
|
# $ print 1{abw-z}2
|
||||||
|
# $ 1a2 1b2 1w2 1y2 1z2
|
||||||
|
setopt braceccl
|
||||||
|
|
||||||
|
# If the argument to a cd command (or an implied cd with the AUTO_CD option
|
||||||
|
# set) is not a directory, and does not begin with a slash, try to expand the
|
||||||
|
# expression as if it were preceded by a '~' (See section 14.7 Filename
|
||||||
|
# Expansion).
|
||||||
|
setopt cdablevars
|
||||||
|
|
||||||
|
# Report the status of background and suspended jobs before exiting a shell
|
||||||
|
# with job control; a second attempt to exit the shell will succeed.
|
||||||
|
setopt checkjobs
|
||||||
|
|
||||||
|
# Make cd push the old directory onto the directory stack.
|
||||||
|
setopt autopushd
|
||||||
|
|
||||||
|
# Change to directory without cd
|
||||||
|
setopt autocd
|
||||||
|
|
||||||
|
# Query the user before executing 'rm *' or 'rm path/*'
|
||||||
|
setopt normstarsilent
|
||||||
|
setopt no_rm_star_wait
|
||||||
|
|
||||||
|
# Shaddapa you face
|
||||||
|
setopt nobeep
|
||||||
|
|
||||||
|
# When writing out the history file, older commands that duplicate newer ones
|
||||||
|
# are omitted.
|
||||||
|
set histsavenodups
|
||||||
|
|
||||||
|
# When searching for history entries in the line editor, do not display
|
||||||
|
# duplicates of a line previously found, even if the duplicates are not
|
||||||
|
# contiguous.
|
||||||
|
setopt histfindnodups
|
||||||
|
|
||||||
|
# If the internal history needs to be trimmed to add the current command line,
|
||||||
|
# setting this option will cause the oldest history event that has a duplicate
|
||||||
|
# to be lost before losing a unique event from the list.
|
||||||
|
setopt hist_expire_dups_first
|
||||||
|
|
||||||
|
# If a new command line being added to the history list duplicates an older
|
||||||
|
# one, the older command is removed from the list (even if it is not the
|
||||||
|
# previous event).
|
||||||
|
setopt hist_ignore_all_dups
|
||||||
|
|
||||||
|
# Do not enter command lines into the history list if they are duplicates of
|
||||||
|
# the previous event.
|
||||||
|
setopt hist_ignore_dups
|
||||||
|
|
||||||
|
# Remove superfluous blanks from each command line being added to history.
|
||||||
|
setopt hist_reduce_blanks
|
||||||
|
|
||||||
|
# Whenever the user enters a line with history expansion, don't execute the
|
||||||
|
# line directly; instead, perform history expansion and reload the line into
|
||||||
|
# the editing buffer.
|
||||||
|
setopt hist_verify
|
||||||
|
|
||||||
|
# Do not remove function definitions from the history list.
|
||||||
|
unsetopt hist_no_functions
|
||||||
|
|
||||||
|
# Remove the history (fc -l) command from the history list when invoked.
|
||||||
|
# Note that the command lingers in the internal history until the next command
|
||||||
|
# is entered before it vanishes, allowing you to briefly reuse or edit the
|
||||||
|
# line.
|
||||||
|
setopt hist_no_store
|
||||||
|
|
||||||
|
# If this is set, zsh sessions will append their history list to the history
|
||||||
|
# file, rather than overwrite it. Thus, multiple parallel zsh sessions will all
|
||||||
|
# have their history lists added to the history file, in the order they are
|
||||||
|
# killed.
|
||||||
|
setopt appendhistory
|
||||||
|
|
||||||
|
# If unset, the cursor is set to the end of the word if completion is started.
|
||||||
|
# Otherwise, it stays there and completion is done from both ends.
|
||||||
|
unsetopt completeinword
|
||||||
|
|
||||||
|
# When listing files that are possible completions, show the type of each file
|
||||||
|
# with a trailing identifying mark.
|
||||||
|
setopt listtypes
|
||||||
|
|
||||||
|
# Do not require a leading '.' in a filename to be matched explicitly.
|
||||||
|
setopt globdots
|
||||||
|
|
||||||
|
# List jobs in long format by default
|
||||||
|
setopt longlistjobs
|
||||||
|
|
||||||
|
# Don't push multiple copies of the same directory onto the directory staack.
|
||||||
|
setopt pushdignoredups
|
||||||
|
|
||||||
|
# This option both imports new commands from the history file, and also causes
|
||||||
|
# your typed commands to be appended to the history file (the latter is like
|
||||||
|
# specifying INC_APPEND_HISTORY).
|
||||||
|
# The history lines are also output with timestamps ala EXTENDED_HISTORY
|
||||||
|
# (which makes it easier to find the spot where we left off reading the file
|
||||||
|
# after it gets re-written).
|
||||||
|
setopt sharehistory
|
||||||
|
|
||||||
|
# Save each command's beginning timestamp (in seconds since the epoch)
|
||||||
|
# and the duration (in seconds) to the history file. The format of this
|
||||||
|
# prefixed data is:
|
||||||
|
# ':<beginning time>:<elapsed seconds>;<command>'
|
||||||
|
setopt extendedhistory
|
||||||
|
|
||||||
|
# Do *not* run all background jobs at a lower nice priority
|
||||||
|
unsetopt bgnice
|
||||||
|
|
||||||
|
# vim:set ft=zsh ai et sw=4 ts=4:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user