1
0
Fork 0

Compare commits

...

13 Commits

25 changed files with 154 additions and 574 deletions

View File

@ -15,11 +15,12 @@ alias diff="diff --color=auto"
alias grep="grep --color=auto"
alias ls="ls --color=auto"
alias ll="ls -AF1"
alias lll="ls -AFlh"
alias lll="ls -AFl"
# history
HISTCONTROL="ignoreboth:erasedups"
HISTFILESIZE="-1"
HISTFILESIZE=-1
HISTSIZE=-1
HISTIGNORE="q"
shopt -s histappend
PROMPT_COMMAND=${PROMPT_COMMAND:+${PROMPT_COMMAND%;}; }"history -a; history -c; history -r;"

View File

@ -1,16 +0,0 @@
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept comment "Accept any localhost traffic"
ct state established,related accept comment "Accept trafic originated from us"
meta l4proto { icmp, icmpv6 } accept comment "Accept ICMP/ICMPv6 traffic"
udp dport mdns accept comment "Accept mDNS"
tcp dport ipp accept comment "Accept IPP"
}
}

View File

@ -1,6 +0,0 @@
local optl = vim.opt_local
-- options
optl.tabstop = 2
optl.shiftwidth = 2
optl.expandtab = true

View File

@ -1,2 +0,0 @@
-- treesitter
vim.treesitter.start()

View File

@ -1,10 +0,0 @@
local optl = vim.opt_local
-- options
optl.omnifunc = "v:lua.vim.lua_omnifunc"
optl.tabstop = 2
optl.shiftwidth = 2
optl.expandtab = true
-- treesitter
vim.treesitter.start()

View File

@ -1,11 +0,0 @@
local optl = vim.opt_local
-- options
optl.tabstop = 2
optl.shiftwidth = 2
optl.expandtab = true
-- keymaps
local keymap_set = vim.keymap.set
keymap_set("n", "]h", "/\\_^#.*\\ze\\n\\{2}<esc>")
keymap_set("n", "[h", "?\\_^#.*\\ze\\n\\{2}<esc>")

View File

@ -1,4 +0,0 @@
-- keymaps
local keymap_set = vim.keymap.set
keymap_set("n", "<esc>", "<cmd>Rexplore<cr>", { buffer = true})
keymap_set("n", "<leader>.", "<cmd>Rexplore<cr>", { buffer = true })

View File

@ -1,2 +0,0 @@
-- treesitter
vim.treesitter.start()

View File

@ -1,19 +0,0 @@
if exists("b:current_syntax")
unlet! b:current_syntax
endif
" yaml
syntax clear markdownYamlHead
syntax region markdownYamlHead start="^-\{3}\n\S" end="\S\n\%(-\|\.\)\{3}$" keepend contains=@markdownYamlTop,@Spell
" citation
syntax match markdownPCite "\^\@<!\[\_[^\[\]]\{-}-\{0,1}@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\_.\{-}\]" contains=@markdownInline,markdownCiteKey
syn match markdownICite "@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\s\[.\{-1,}\]" contains=markdownCiteKey,@Spell display
syn match markdownCiteKey /\(-\=@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\)/ containedin=markdownPCite,markdownICite contains=@NoSpell display
hi def link markdownPCite Comment
hi def link markdownICite Comment
hi def link markdownCiteKey markdownLabel
hi def link markdownLabel Label
let b:current_syntax = "markdown"

View File

@ -1,272 +0,0 @@
-- Name: basic
-- Description: a basic colorscheme
-- Author: urosm <urosm@kompot.si>
-- Maintainer: urosm <https://git.kompot.si/urosm/dot/src/branch/main/.config/nvim/colors/basic.lua>
-- Website: https://git.kompot.si/urosm/dot/src/branch/main/.config/nvim/colors/basic.lua
-- License: Same as Vim
-- Last Updated: 2024 Jul 08
-- A simple neovim colorscheme that defines highlight groups from a list of 8
-- colors.
-- init ------------------------------------------------------------------------
vim.cmd.highlight("clear")
vim.g.colors_name = "basic"
local hi = function(name, val) vim.api.nvim_set_hl(0, name, val) end
-- colors ----------------------------------------------------------------------
local C = {
black = { cterm = 0, gui = "#000000" },
red = { cterm = 1, gui = "#fa3500" },
green = { cterm = 2, gui = "#009843" },
orange = { cterm = 3, gui = "#d06600" },
blue = { cterm = 4, gui = "#856cff" },
magenta = { cterm = 5, gui = "#ff1170" },
cyan = { cterm = 6, gui = "#008cca" },
white = { cterm = 7, gui = "#e2e2e2" },
bright_black = { cterm = 8, gui = "#848484" },
bright_red = { cterm = 9, gui = "#ff888e" },
bright_green = { cterm = 10, gui = "#00c55b" },
bright_orange = { cterm = 11, gui = "#ff8d48" },
bright_blue = { cterm = 12, gui = "#ac9fff" },
bright_magenta = { cterm = 13, gui = "#ffb1c0" },
bright_cyan = { cterm = 14, gui = "#92ccff" },
bright_white = { cterm = 15, gui = "#ffffff" },
}
local fg = C.white
local bg = C.black
local accent = C.magenta
local dimmed = C.blue
local none_none_h = {}
local none_none_reverse_h = { reverse = true }
local none_none_underline_h = { underline = true }
local none_none_italic = { italic = true }
local none_none_bold_h = { bold = true }
local none_none_bold_italic_h = { bold = true, italic = true }
local none_none_strikethrough_h = { strikethrough = true }
local bg_fg_h = { ctermfg = bg.cterm, fg = bg.gui, ctermbg = fg.cterm, bg = fg.gui }
local bg_accent_h = { ctermfg = bg.cterm, fg = bg.gui, ctermbg = accent.cterm, bg = accent.gui }
local bg_dimmed_h = { ctermfg = bg.cterm, fg = bg.gui, ctermbg = dimmed.cterm, bg = dimmed.gui }
local bg_red_h = { ctermfg = bg.cterm, fg = bg.gui, ctermbg = C.red.cterm, bg = C.red.gui }
local bg_orange_h = { ctermfg = bg.cterm, fg = bg.gui, ctermbg = C.orange.cterm, bg = C.orange.gui }
local accent_none_h = { ctermfg = accent.cterm, fg = accent.gui }
local accent_fg_h = { ctermfg = accent.cterm, fg = accent.gui, ctermbg = fg.cterm, bg = fg.gui }
local accent_fg_reverse_h = { ctermfg = accent.cterm, fg = accent.gui, ctermbg = fg.cterm, bg = fg.gui, reverse = true }
local dimmed_none_h = { ctermfg = dimmed.cterm, fg = dimmed.gui }
local dimmed_none_reverse_h = { ctermfg = dimmed.cterm, fg = dimmed.gui, reverse = true }
local dimmed_fg_h = { ctermfg = dimmed.cterm, fg = dimmed.gui, ctermbg = fg.cterm, bg = fg.gui }
local red_none_h = { ctermfg = C.red.cterm, fg = C.red.gui }
local red_none_underline_h = { ctermfg = C.red.cterm, fg = C.red.gui, underline = true }
local green_none_h = { ctermfg = C.green.cterm, fg = C.green.gui }
local green_none_underline_h = { ctermfg = C.green.cterm, fg = C.green.gui, underline = true }
local orange_none_h = { ctermfg = C.orange.cterm, fg = C.orange.gui }
local orange_none_underline_h = { ctermfg = C.orange.cterm, fg = C.orange.gui, underline = true }
local blue_none_h = { ctermfg = C.blue.cterm, fg = C.blue.gui }
local blue_none_underline_h = { ctermfg = C.blue.cterm, fg = C.blue.gui, underline = true }
local magenta_none_h = { ctermfg = C.magenta.cterm, fg = C.magenta.gui }
local black_none_h = { ctermfg = C.black.cterm, fg = C.black.gui }
local white_none_h = { ctermfg = C.white.cterm, fg = C.white.gui }
local white_none_underline_h = { ctermfg = C.white.cterm, fg = C.white.gui, underline = true }
-- normal ----------------------------------------------------------------------
hi("Normal", none_none_h)
hi("NormalNC", none_none_h)
-- tui -------------------------------------------------------------------------
hi("StatusLine", dimmed_none_h)
hi("StatusLineNC", dimmed_none_h)
hi("TabLine", dimmed_none_h)
hi("TabLineFill", dimmed_none_h)
hi("TabLineSel", accent_none_h)
hi("WinBar", accent_none_h)
hi("WinBarNC", dimmed_none_h)
hi("WinSeparator", dimmed_none_h)
hi("LineNr", accent_none_h)
hi("LineNrAbove", dimmed_none_h)
hi("LineNrBelow", dimmed_none_h)
hi("SignColumn", dimmed_none_h)
hi("FoldColumn", dimmed_none_h)
hi("WildMenu", accent_none_h)
-- float -----------------------------------------------------------------------
hi("NormalFloat", bg_fg_h)
hi("FloatBorder", dimmed_fg_h)
hi("FloatTitle", accent_fg_h)
-- menu ------------------------------------------------------------------------
hi("Pmenu", accent_fg_h)
hi("PmenuSel", accent_fg_reverse_h)
hi("PmenuKind", accent_fg_h)
hi("PmenuKindSel", accent_fg_reverse_h)
hi("PmenuExtra", accent_fg_h)
hi("PmenuExtraSel", accent_fg_reverse_h)
hi("PmenuSbar", accent_fg_h)
hi("PmenuThumb", accent_fg_reverse_h)
-- messages --------------------------------------------------------------------
hi("MsgArea", none_none_h)
hi("MsgSeparator", none_none_h)
hi("ModeMsg", accent_none_h)
hi("MoreMsg", accent_none_h)
hi("WarningMsg", orange_none_h)
hi("ErrorMsg", red_none_h)
hi("Question", accent_none_h)
hi("Title", accent_none_h)
-- buffer ----------------------------------------------------------------------
hi("Conceal", dimmed_none_h)
hi("NonText", dimmed_none_h)
hi("EndOfBuffer", dimmed_none_h)
hi("Whitespace", dimmed_none_h)
hi("Folded", dimmed_none_h)
hi("SpecialKey", accent_none_h)
hi("ColorColumn", dimmed_none_reverse_h)
-- cursor ----------------------------------------------------------------------
hi("CursorLine", none_none_reverse_h)
hi("CursorLineNr", none_none_reverse_h)
hi("CursorLineSign", none_none_reverse_h)
hi("CursorLineFold", none_none_reverse_h)
hi("CursorColumn", none_none_reverse_h)
hi("QuickFixLine", none_none_reverse_h)
hi("Cursor", none_none_reverse_h)
hi("lCursor", none_none_reverse_h)
hi("CursorIM", none_none_reverse_h)
hi("TermCursor", none_none_reverse_h)
hi("TermCursorNC", none_none_reverse_h)
-- match -----------------------------------------------------------------------
hi("Search", bg_orange_h)
hi("Substitute", bg_orange_h)
hi("IncSearch", bg_accent_h)
hi("CurSearch", bg_accent_h)
hi("MatchParen", accent_fg_h)
-- selection -------------------------------------------------------------------
hi("Visual", bg_dimmed_h)
hi("Visualnos", bg_dimmed_h)
-- diff ------------------------------------------------------------------------
hi("DiffAdd", green_none_h)
hi("DiffChange", orange_none_h)
hi("DiffDelete", red_none_h)
hi("DiffText", orange_none_underline_h)
-- spell -----------------------------------------------------------------------
hi("SpellBad", red_none_underline_h)
hi("SpellCap", orange_none_underline_h)
hi("SpellLocal", orange_none_underline_h)
hi("SpellRare", orange_none_underline_h)
-- diagnostic ------------------------------------------------------------------
hi("DiagnosticError", red_none_h)
hi("DiagnosticWarn", orange_none_h)
hi("DiagnosticInfo", blue_none_h)
hi("DiagnosticHint", white_none_h)
hi("DiagnosticOk", green_none_h)
hi("DiagnosticVirtualError", red_none_h)
hi("DiagnosticVirtualWarn", orange_none_h)
hi("DiagnosticVirtualInfo", blue_none_h)
hi("DiagnosticVirtualHint", white_none_h)
hi("DiagnosticVirtualOk", green_none_h)
hi("DiagnosticUnderlineError", red_none_underline_h)
hi("DiagnosticUnderlineWarn", orange_none_underline_h)
hi("DiagnosticUnderlineInfo", blue_none_underline_h)
hi("DiagnosticUnderlineHint", white_none_underline_h)
hi("DiagnosticUnderlineOk", green_none_underline_h)
hi("DiagnosticFloatingError", red_none_h)
hi("DiagnosticFloatingWarn", orange_none_h)
hi("DiagnosticFloatingInfo", blue_none_h)
hi("DiagnosticFloatingHint", white_none_h)
hi("DiagnosticFloatingOk", green_none_h)
hi("DiagnosticSingError", red_none_h)
hi("DiagnosticSingWarn", orange_none_h)
hi("DiagnosticSingInfo", blue_none_h)
hi("DiagnosticSingHint", white_none_h)
hi("DiagnosticSingOk", green_none_h)
hi("DiagnosticDeprecated", white_none_underline_h)
hi("DiagnosticUnnecessary", white_none_underline_h)
-- misc ------------------------------------------------------------------------
hi("Directory", blue_none_h)
-- syntax ----------------------------------------------------------------------
hi("Comment", blue_none_h)
hi("Constant", red_none_h)
hi("String", red_none_h)
hi("Character", red_none_h)
hi("Number", red_none_h)
hi("Boolean", red_none_h)
hi("Float", red_none_h)
hi("Identifier", none_none_h)
hi("Function", none_none_h)
hi("Statement", orange_none_h)
hi("Conditional", orange_none_h)
hi("Repeat", orange_none_h)
hi("Label", orange_none_h)
hi("Operator", orange_none_h)
hi("Keyword", orange_none_h)
hi("Exception", orange_none_h)
hi("PreProc", magenta_none_h)
hi("Include", magenta_none_h)
hi("Define", magenta_none_h)
hi("Macro", magenta_none_h)
hi("PreCondit", magenta_none_h)
hi("Type", green_none_h)
hi("StorageClass", green_none_h)
hi("Structure", green_none_h)
hi("Typedef", green_none_h)
hi("Special", orange_none_h)
hi("SpecialChar", orange_none_h)
hi("Tag", orange_none_h)
hi("Delimiter", orange_none_h)
hi("SpecialComment", orange_none_h)
hi("Debug", orange_none_h)
hi("Underlined", none_none_underline_h)
hi("Ignore", black_none_h)
hi("Error", bg_red_h)
hi("Todo", bg_orange_h)
hi("Italic", none_none_italic)
hi("Bold", none_none_bold_h)
hi("BoldItalic", none_none_bold_italic_h)
hi("Strike", none_none_strikethrough_h)
-- markdown --------------------------------------------------------------------
hi("markdownLabel", magenta_none_h)
hi("markdownHeadingDelimiter", blue_none_h)
hi("markdownItalicDelimiter", blue_none_h)
hi("markdownBoldDelimiter", blue_none_h)
hi("markdownBoldItalicDelimiter", blue_none_h)
hi("markdownStrikeDelimiter", blue_none_h)
hi("markdownCodeDelimiter", blue_none_h)
hi("markdownLinkTextDelimiter", blue_none_h)
hi("markdownLinkDelimiter", blue_none_h)
hi("markdownUrl", blue_none_h)
-- yaml ------------------------------------------------------------------------
hi("yamlBlockMappingKey", blue_none_h)
hi("yamlPlainScalar", red_none_h)

View File

@ -1,129 +0,0 @@
local opt, cmd, api = vim.opt, vim.cmd, vim.api
local fn = vim.fn
local v, g = vim.v, vim.g
-- colorscheme -----------------------------------------------------------------
cmd.colorscheme("basic")
-- statusline ------------------------------------------------------------------
function Statusline()
local wordcount = fn.wordcount()
return table.concat({
fn.pathshorten(fn.getcwd()),
" %=",
" <%b>",
" ", wordcount.visual_chars or wordcount.cursor_chars, "/", wordcount.chars,
" ", wordcount.visual_words or wordcount.cursor_words, "/", wordcount.words,
" %l/%L",
" %c"
})
end
-- options ---------------------------------------------------------------------
-- moving around, searching and patterns
opt.path = {".", "", "**"}
opt.ignorecase = true
opt.smartcase = true
-- displaying text
opt.scrolloff = 10
opt.breakindent = true
opt.showbreak = "+++ "
opt.number = true
opt.relativenumber = true
opt.colorcolumn = "+1"
-- multiple windows
opt.laststatus = 3
opt.statusline = "%!v:lua.Statusline()"
-- multiple tab pages
opt.showtabline = 2
-- terminal
opt.title = true
-- messages and info
opt.shortmess:append({ I = true })
-- selecting text
opt.clipboard = "unnamedplus"
-- editing text
opt.undofile = true
opt.textwidth = 80
opt.completeopt = { "menuone", "preview" }
-- tabs and indenting
opt.tabstop = 4
opt.shiftwidth = 4
opt.smarttab = true
opt.softtabstop = -1
opt.expandtab = true
opt.smartindent = true
-- reading and writing files
opt.writebackup = false
opt.backup = false
-- command line editing
opt.wildmode = "longest:full,full"
opt.wildignorecase = true
-- various
opt.signcolumn = "number"
opt.winbar = "%f%( %h%m%r%y%)"
opt.wildoptions = { "fuzzy" }
-- keymaps ---------------------------------------------------------------------
local keymap_set = vim.keymap.set
keymap_set("n", "<esc>", "<cmd>nohlsearch<cr>")
keymap_set("c", "<m-h>", "<left>")
keymap_set("c", "<m-l>", "<right>")
keymap_set("n", "<leader>f", ":find ")
keymap_set("n", "<leader>b", ":buffer ")
keymap_set("n", "<leader>h", ":help ")
keymap_set("n", "<leader>g", ":vimgrep /")
keymap_set("n", "<leader>s", "<cmd>set spell!<cr>")
keymap_set("n", "<leader>m", "<cmd>make<cr>")
keymap_set("n", "<leader>d", "<cmd>bdelete<cr>")
keymap_set("n", "]b", "<cmd>bnext<cr>")
keymap_set("n", "[b", "<cmd>bprev<cr>")
keymap_set("n", "]B", "<cmd>blast<cr>")
keymap_set("n", "[B", "<cmd>bfirst<cr>")
keymap_set("n", "]t", "<cmd>tabnext<cr>")
keymap_set("n", "[t", "<cmd>tabprev<cr>")
keymap_set("n", "]T", "<cmd>tablast<cr>")
keymap_set("n", "[T", "<cmd>tabfirst<cr>")
keymap_set("n", "]q", "<cmd>cnext<cr>zz")
keymap_set("n", "[q", "<cmd>cprev<cr>zz")
keymap_set("n", "]Q", "<cmd>clast<cr>zz")
keymap_set("n", "[Q", "<cmd>cfirst<cr>zz")
keymap_set("n", "<leader>co", "<cmd>copen<cr>")
keymap_set("n", "<leader>cc", "<cmd>cclose<cr>")
keymap_set("n", "<c-h>", "<c-w>h")
keymap_set("n", "<c-j>", "<c-w>j")
keymap_set("n", "<c-k>", "<c-w>k")
keymap_set("n", "<c-l>", "<c-w>l")
keymap_set("n", "<leader>.", "<cmd>edit .<cr>")
-- buffer autocomplete ---------------------------------------------------------
-- @note disable autocompletion for now
-- local bufautocomplete_augroup = api.nvim_create_augroup("Buffer autocompletion", {}),
-- api.nvim_create_autocmd("InsertCharPre", {
-- group = bufautocomplete_augroup,
-- pattern = "*",
-- callback = function ()
-- if fn.pumvisible() == 0 and v.char:find("%w") then
-- api.nvim_input("<c-n>")
-- end
-- end,
-- desc = "Buffer autocomplete on InsertCharPre",
-- })

View File

@ -1,2 +0,0 @@
# kratice
gl.

View File

@ -1,2 +0,0 @@
# from dot.git
Defaults !admin_flag

View File

@ -32,8 +32,6 @@ set $wsp 9:p:top
set $session_mode "session: (r)eload (l)ock (q)uit (s)uspend (h)ibernate re(b)oot (p)oweroff"
set $layout_mode "layout: split(h) split(v) (s)tacking (t)abbed"
set $find_exclude_expr \( -path "$HOME/.cache" -o -path "$HOME/.mozilla" -o -path "$HOME/.thunderbird" -o -name .git \)
# commands
set $swaylock swaylock -f \
--color=$black \
@ -51,7 +49,7 @@ set $swaylock swaylock -f \
# bar ##########################################################################
bar {
separator_symbol " | "
status_command status.sh
status_command exec status.sh
strip_workspace_numbers yes
wrap_scroll yes
colors {
@ -158,30 +156,26 @@ bindsym $mod+semicolon scratchpad show
bindsym $mod+shift+g sticky toggle
# exec
bindsym --to-code {
$mod+return exec "$TERMINAL"
$mod+space exec fuzzel
$mod+slash exec find "$HOME" $find_exclude_expr -prune -o -print | fuzzel -dp'open > ' | xargs -r xdg-open
$mod+question exec find "$HOME" $find_exclude_expr -prune -o -type f -print0 | xargs -0r grep -in "$(wl-paste)" 2>/dev/null | awk -F: '{ printf("%8s %-62s\t%-80s\\n","+"$2,"\\""$1"\\"",$3) }' | fuzzel -dw160 -p"open > " | cut -f1 | xargs -r "$TERMINAL" "$EDITOR"
$mod+apostrophe exec swaymsg -t get_tree | jq -r 'recurse(.nodes[]) | select(.nodes==[] and .type=="con" and .focused==false) | (.id|tostring) + "\t" + .name' | fuzzel -dp'focus > ' | cut -f1 | xargs -rI{} swaymsg [con_id={}] focus
$mod+home exec "$TERMINAL" nmtui connect
$mod+shift+home exec "$TERMINAL" nmtui
$mod+end exec devmon -c
$mod+n exec makoctl dismiss
$mod+shift+n exec makoctl restore
print exec grim - | wl-copy
bindsym {
$mod+return exec exec "$TERMINAL"
$mod+home exec exec "$TERMINAL" -Tnmtui nmtui connect
$mod+end exec devmon -c
$mod+n exec makoctl dismiss
print exec grim - | wl-copy
$mod+space exec fuzzel
$mod+shift+space exec find "$HOME" \( -path "$HOME/.cache" -o -path "$HOME/.mozilla" -o -path "$HOME/.thunderbird" -o -name .git \) -prune -o -print | fuzzel -dp'open > ' | xargs -rI{} swaymsg -q exec 'exec xdg-open "{}"'
}
# exec (laptop)
bindsym {
XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
XF86AudioMicMute exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@)"
XF86MonBrightnessUp exec brightnessctl -n set +1%, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
XF86MonBrightnessDown exec brightnessctl -n set 1%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
shift+XF86MonBrightnessUp exec brightnessctl -n set +10%, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
shift+XF86MonBrightnessDown exec brightnessctl -n set 10%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
XF86AudioMicMute exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@)"
XF86MonBrightnessUp exec brightnessctl -qn set +1%, notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
XF86MonBrightnessDown exec brightnessctl -qn set 1%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
shift+XF86MonBrightnessUp exec brightnessctl -qn set +10%, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
shift+XF86MonBrightnessDown exec brightnessctl -qn set 10%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)"
}
# resize
@ -227,17 +221,17 @@ exec {
systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
hash dbus-update-activation-environment 2>/dev/null && \
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway
swayidle -w \
exec swayidle -w \
timeout 300 'brightnessctl -s set 1%' resume 'brightnessctl -r' \
timeout 600 '$swaylock' \
timeout 900 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
timeout 900 'swaymsg -q "output * power off"' resume 'swaymsg -q "output * power on"' \
timeout 1800 'systemctl suspend-then-hibernate' \
before-sleep '$swaylock'
wlsunset -l 45 -L 15
mako --max-visible=0
devmon --exec-on-drive 'notify-send "Mounted %f at %d"' --exec-on-unmount 'notify-send "Unmounted %f"'
foot -s
wayneko --layer overlay --type inu --background-colour 0xe2e2e2 --outline-colour 0x856cff
exec wlsunset -l 45 -L 15
exec mako --max-visible=0
exec devmon --exec-on-drive 'notify-send "Mounted %f at %d"' --exec-on-unmount 'notify-send "Unmounted %f"'
exec foot -s
exec wayneko --type inu --background-colour 0xe2e2e2 --outline-colour 0x856cff --layer top --follow-pointer false
}
@ -251,8 +245,7 @@ font monospace 13
# keyboard
input "type:keyboard" {
xkb_layout us,si
xkb_options caps:escape,grp:alt_shift_toggle,compose:ralt
xkb_options caps:escape,compose:ralt
repeat_delay 200
repeat_rate 30
}

View File

@ -6,8 +6,6 @@ local P, S, B = lpeg.P, lpeg.S, lpeg.B
local lex = lexer.new(..., {no_user_word_lists = true})
local md = '.markdown'
local ws = lex:get_rule('whitespace')
local nl = P('\n')
local bl = nl * nl
@ -111,8 +109,8 @@ lex:embed(html, html_start_rule, html_end_rule)
local yaml = lexer.load('yaml')
local doc_bounds_rule = yaml:get_rule('doc_bounds')
local hr_rule = lex:get_rule('hr')
local yaml_start_rule = doc_bounds_rule - hr_rule
local yaml_end_rule = doc_bounds_rule - hr_rule
local yaml_start_rule = doc_bounds_rule * nl - hr_rule
local yaml_end_rule = doc_bounds_rule * nl - hr_rule
lex:embed(yaml, yaml_start_rule, yaml_end_rule)
return lex

View File

@ -42,7 +42,7 @@ lexers.STYLE_CURSOR_LINE = 'underlined'
lexers.STYLE_COLOR_COLUMN = 'fore:black,back:blue'
lexers.STYLE_SELECTION = 'fore:black,back:white'
lexers.STYLE_STATUS = 'fore:blue'
lexers.STYLE_STATUS_FOCUSED = 'fore:blue'
lexers.STYLE_STATUS_FOCUSED = 'fore:magenta'
lexers.STYLE_SEPARATOR = 'fore:blue'
lexers.STYLE_INFO = 'fore:red'
lexers.STYLE_EOF = 'fore:blue'

View File

@ -16,9 +16,6 @@ local e = vis.events
e.subscribe(e.INIT, function()
-- load theme
require("themes/basic")
local lexers = vis.lexers
lexers.lexers = {}
if lexers.load and not lexers.property then lexers.load("text") end
-- mappings
vis:map(m.NORMAL, 'y', '<vis-register>+<vis-operator-yank>')
@ -34,21 +31,46 @@ e.subscribe(e.INIT, function()
vis:map(m.VISUAL, 'P', '<vis-register>+<vis-put-before>')
vis:map(m.VISUAL_LINE, 'P', '<vis-register>+<vis-put-before>')
vis:map(m.NORMAL, 'f', '<vis-motion-to-right>')
vis:map(m.OPERATOR_PENDING, 'f', '<vis-motion-to-right>')
vis:map(m.VISUAL, 'f', '<vis-motion-to-right>')
vis:map(m.NORMAL, 'F', '<vis-motion-to-left>')
vis:map(m.OPERATOR_PENDING, 'F', '<vis-motion-to-left>')
vis:map(m.VISUAL, 'F', '<vis-motion-to-left>')
vis:map(m.NORMAL, 't', '<vis-motion-till-right>')
vis:map(m.OPERATOR_PENDING, 't', '<vis-motion-till-right>')
vis:map(m.VISUAL, 't', '<vis-motion-till-right>')
vis:map(m.NORMAL, 'T', '<vis-motion-till-left>')
vis:map(m.OPERATOR_PENDING, 'T', '<vis-motion-till-left>')
vis:map(m.VISUAL, 'T', '<vis-motion-till-left>')
vis:map(m.NORMAL, '?', '<vis-selections-save><vis-search-backward>')
vis:map(m.NORMAL, '/', '<vis-selections-save><vis-search-forward>')
vis:map(m.NORMAL, ' w', function() vis:command('w') end)
vis:map(m.NORMAL, ' W', function() vis:command('w!') end)
vis:map(m.NORMAL, ' q', function() vis:command('q') end)
vis:map(m.NORMAL, ' Q', function() vis:command('q!') end)
vis:map(m.NORMAL, ' e', function()
local s, f = vis:pipe('find -type f | vis-menu -l 5 -p "Edit file"')
if s ~= 0 or not f then return end
if s ~= 0 or f == nil then return end
cmd = ('e "%s"'):format(f:sub(1, -2))
vis:info(cmd)
vis:command(cmd)
end, 'Edit file')
vis:map(m.NORMAL, ' o', function()
local s, f = vis:pipe('find -type f | vis-menu -l 5 -p "Open file"')
if s ~= 0 or f == nil then return end
cmd = ('o "%s"'):format(f:sub(1, -2))
vis:info(cmd)
vis:command(cmd)
end, 'Open file')
vis:map(m.NORMAL, ' cd', function()
local s, f = vis:pipe('find -type d | vis-menu -l 5 -p "Change directory"')
if s ~= 0 or not f then return end
if s ~= 0 or f == nil then return end
cmd = ('cd "%s"'):format(f:sub(1, -2))
vis:info(cmd)
vis:command(cmd)
@ -125,40 +147,78 @@ end)
-- set title
local modified = false
local function set_title(title)
os.execute('printf "\\e];'..title..(modified and '[+]' or '')..'\\e"')
local function set_title(name)
os.execute(('printf "\\e];%s%s\\e"'):format(name, modified and '[+]' or ''))
end
e.subscribe(e.WIN_OPEN, function(win)
set_title(win.file.name or '[No Name]')
end)
e.subscribe(e.FILE_SAVE_POST, function(file)
modified = false
set_title(file.name)
end)
e.subscribe(e.WIN_STATUS, function(win)
if not modified and win.file.modified then
modified = true
if os.getenv('TERM') ~= 'linux' then
e.subscribe(e.WIN_OPEN, function(win)
set_title(win.file.name or '[No Name]')
end)
e.subscribe(e.FILE_SAVE_POST, function(file)
modified = false
set_title(file.name)
end)
e.subscribe(e.WIN_STATUS, function(win)
if not modified and win.file.modified then
modified = true
set_title(win.file.name or '[No Name]')
end
end)
end
-- cursor position
local cursors_path = os.getenv('XDG_CACHE_HOME')..'/vis-cursors'
local cursors = {}
local files = {}
local function get_cursors()
local f = io.open(cursors_path)
if f == nil then return end
files = {}
for l in f:lines() do
local path, pos = l:match('(.+):(%d+)')
cursors[path] = pos
table.insert(files, path)
end
f:close()
end
e.subscribe(e.INIT, get_cursors)
e.subscribe(e.WIN_OPEN, function(win)
if win.file == nil or win.file.path == nil then return end
local pos = cursors[win.file.path]
if pos == nil then
cursors[win.file.path] = win.selection.pos
return
end
win.selection.pos = tonumber(pos)
vis:feedkeys('zz')
end)
-- find root
e.subscribe(e.WIN_OPEN, function(win)
if not win.file.path then return end
local dir = win.file.path
local home = os.getenv('HOME')
if not dir:find(home) then return end
while true do
dir = dir:match('^(.+)/[^/]+$') or home
local _, find = vis:pipe(('find %s ! -path %s -prune -type d -name .git'):format(dir, dir))
if find or dir == home then
local cmd = ('cd "%s"'):format(dir)
vis:info(cmd)
vis:command(cmd)
break
end
e.subscribe(e.WIN_CLOSE, function(win)
if win.file == nil or win.file.path == nil then return end
get_cursors()
for i, path in ipairs(files) do
if path == win.file.path then table.remove(files, i) end
end
if win.selection.pos == 0 then return end
table.insert(files, 1, win.file.path)
cursors[win.file.path] = win.selection.pos
end)
e.subscribe(e.QUIT, function()
local f = io.open(cursors_path, 'w+')
if f == nil then return end
local buf = {}
for i, path in ipairs(files) do
table.insert(buf, ('%s:%d'):format(path, cursors[path]))
if i > 100 then break end -- remember only 100
end
local out = table.concat(buf, '\n')
f:write(out)
f:close()
end)

View File

@ -20,11 +20,6 @@ while :; do
} else {
"full_text":"(0)",
} end, ","'
# keyboard layout
swaymsg -t get_inputs | jq -Mcj '[.[] | select(.type=="keyboard")][0] | {
"full_text":.xkb_active_layout_name,
"urgent":.xkb_active_layout_index,
}, ","'
# battery
# shellcheck disable=SC2002
cat /sys/class/power_supply/BAT0/capacity | jq -Mcj '
@ -44,6 +39,6 @@ while :; do
}, ","'
printf "],"
# timeout
timeout 1 swaymsg -t subscribe '["input","binding"]' >/dev/null
timeout 1 swaymsg -qt subscribe '["binding"]' >/dev/null
sleep 0.1
done

View File

@ -0,0 +1,17 @@
#!/bin/sh
case "$(file -i "$1" 2>/dev/null)" in
*": text/"* | *": application/javascript"*)
DIRPATH="$(dirname "$1")"
while :; do
[ "$DIRPATH" = "/" ] && DIRPATH=$HOME
[ "$DIRPATH" = "$HOME" ] || [ -n "$(find "$DIRPATH" ! -path "$DIRPATH" -prune -type d -name .git)" ] && break
DIRPATH="$(dirname "$DIRPATH")"
done
exec $TERMINAL -D "$DIRPATH" "$EDITOR" "$1"
;;
*": inode/directory;"*)
exec $TERMINAL -D "$1"
;;
*) exec /usr/bin/xdg-open "$1" ;;
esac

View File

@ -1,5 +0,0 @@
[Desktop Entry]
Type=Application
Exec=footclient -D %f
Name=Foot Client Working Directory
MimeType=inode/directory;

View File

@ -0,0 +1,5 @@
[Desktop Entry]
Type=Application
Exec=-Tnmtui nmtui
Name=nmtui
Terminal=true

View File

@ -0,0 +1,5 @@
[Desktop Entry]
Type=Application
Exec=-Ttop top
Name=top
Terminal=true

View File

@ -1,11 +0,0 @@
[Desktop Entry]
Name=Vis
GenericName=Text Editor
TryExec=vis
Exec=vis %F
Terminal=true
Type=Application
Keywords=Text;editor;
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;

View File

@ -57,6 +57,6 @@ if [ "$(tty)" = "/dev/tty1" ] && command -v sway >/dev/null; then
export BROWSER=firefox
# run sway
export XDG_CURRENT_DESKTOP=sway
export WLR_RENDERER=vulkan
# export WLR_RENDERER=vulkan
exec systemd-cat -t sway sway
fi

View File

@ -14,9 +14,6 @@ git pull origin main
## setup urosm@milano
```sh
# disable the annoying `.sudo_as_admin_successful` file
sudo cp -ri .config/sudoers.d /etc/
rm .sudo_as_admin_successful
# update to debian testing
sudo cp -ri .config/apt /etc/
sudo apt update