Compare commits

..

9 Commits

18 changed files with 447 additions and 47 deletions

266
a4/.config/a4/a4.ini Normal file
View File

@@ -0,0 +1,266 @@
# Session settings
# Name used for the default session
session = default
# Key press used to detatch from a session. Typically a Control key specified
# with prefix C-, for example C-\ for Control-backslash. Single keys are also
# allowed but not Meta (M-) keys.
detach_key = C-\
# Application Theming
# Colors are specified as -1 for default, 0-7 for standard, 8-15 for bright,
# 16-231 for extended, 232-255 for gray scale, 0xRRGGBB for 24-bit RGB colors,
# or you can use any of the X11 or Web Color Names. One or more comma separated
# font attributes may optionally be specified: bold, italic, reverse, strike,
# and blink. The attributes may also optionally include one of three underline
# types single, double, or curly.
include = theme_blue.ini
#statusbar_attr = white 0x5F636A
#tag_unoccupied = white 0x5F636A
#titlebar_unselected = white 0x004C6C
titlebar_unselected = 0x808080 0x000000
#tag_occupied = white 0x004C6C
#tag_urgent = white 0x004C6C bold,blink
#titlebar_selected = white 0x00AEEF
titlebar_selected = white 0x004C6C
#tag_selected = white 0x00AEEF bold
# Read only settings are overlayed onto the three titlebar settings above. Set
# either fg or bg to -1 to retain that titlebar setting. Any specified
# attributes are combined with those from above. These must be in this order
# and must be after all other titlebar definitions!
#titlebar_urgent = 0xE7DDB4 -1 blink
#titlebar_readonly = 0xA56815 -1 bold,italic
# Define up to 9 alphanumeric tag names, how they will be displayed on the
# status bar, and the types of colors and font attributes.
tagnames = 1 2 3 4 5 6 7 8 9
#tagnames = play dev test stage prod
tag_printf = " %s "
# Number of lines saved for each terminal's scroll back history
scroll_history = 5000
# The size of the layout zoom area is a number from .1 to .9, and the number of
# terminals in the zoom area is a number 1 or more.
zoomsize = .5
zoomnum = 1
# Specify one or more status bar commands to cycle through at the given number
# of interval seconds. Set interval to 0 to have the command run once and not
# refresh. Set interval to -1 to not have any status bar text.
statusbar_cmd = date; echo " | a4/$A4_SESSION" $A4
statusbar_cmd = uptime; echo " | a4/$A4_SESSION" $A4
#statusbar_cmd = cat ~/.cache/status/statusbar.txt; echo ' | a4' $A4
statusbar_interval = 10
statusbar_display = true
statusbar_top = true
#statusbar_begin = [
#statusbar_end = ]
# The terminal cursor can be set to visible or hidden, blinking or solid, and
# the shape can be 1-block, 2-underline, or 3-bar.
cursorvis = true
cursorblink = true
cursorshape = 1
# Any number of actions assigned to the optional special keyword "startup" are
# run when a4 is started, in the order specified.
#include = startup.ini
startup = create
#startup = view 2
#startup = create
#startup = keysequence ssh example.com\n
[Layouts]
# Layout symbol string in the status bar. First layout is the default. Order
# determines layout toggle cycle.
zoom_left = " │├┤ "
zoom_right = " ├┤│ "
fullscreen = " │ │ "
grid = " ├┼┤ "
columns = " │││ "
rows = " ─── "
zoom_top = " ├┬┤ "
zoom_bottom = " ├┴┤ "
[KeyboardActions]
# Keyboard actions have a key combination of no more than three keys assigned
# to them. A key can be raw or can include modifiers Meta or Alt, M-, Control,
# C-, Shift, S-, or with combinations of those. Any modifier keys must be put
# in the order of M-C-S-. Two special keys that must be fully spelled out are
# "Space" and "Hyphen".
C-g c = create
C-g x x = destroy
C-g Enter = zoom
C-g . = minimize
C-g q q = quit
C-g C-l = redraw
C-g s = statusbar vis
C-g S = statusbar pos
# The four actions view, tag, viewtoggle, and tagtoggle each take tag name as a
# parameter. You can use the special '#' character as a shortcut to assign
# mappings for up to 9 digits to the list of tag names. For the key
# combination, the last occurrence of '#' is replaced with the digit 'n' and
# then the 'nth' tag name is passed as the action parameter. For example,
# "C-g # F# = view #" expands to "C-g F1 = view 1", "C-g F2 = view 2", ....
C-g v # = view #
C-g F# = view #
C-g t # = tag #
C-g V # = viewtoggle #
C-g T # = tagtoggle #
C-g v 0 = view _all
C-g v Tab = view _swap
C-g t 0 = tag _all
# The focus action takes several possible parameters, including window number.
# You can use the special '#' character as a shortcut to assign mappings for
# all digits 1-9. in the key combination and the action parameter to assign
# that combo/action pairing to digits 1-9. For the key combination, the last
# occurrence of '#' is replaced with the digit 'n' and the same digit 'n' is
# passed as the action parameter. For example, "C-g # = focus #" is expanded
# out to "C-g 1 = focus 1", "C-g 2 = focus 2", ....
C-g # = focus #
C-g j = focus next
C-g C-j = focus NEXT
C-g k = focus prev
C-g C-k = focus PREV
C-g Tab = focus swap
C-g H = focus left
C-g J = focus down
C-g K = focus up
C-g L = focus right
C-g ) = focus group
C-g 0 = focus groupall
C-g * = readonly
C-a # = view #
C-a f = layout fullscreen
C-a g = layout grid
C-a h = layout zoom_left
C-a j = layout zoom_bottom
C-a k = layout zoom_top
C-a l = layout zoom_right
C-a c = layout columns
C-a r = layout rows
# Cycle through all layouts in order listed in the [Layouts] section
C-a Space = layout +1
C-a C-Space = layout -1
C-a Tab = layout swap
C-a i = zoomnum +1
C-a d = zoomnum -1
C-a I = zoomsize +.05
C-a D = zoomsize -.05
S-PageUp = scrollback .5
S-PageDown = scrollback -.5
C-g PageUp = scrollback 1.0
C-g PageDown = scrollback -1.0
# Specify ANSI escape or other key sequence overrides
#include = vt220.ini
#Home = keysequence \e[1~
#End = keysequence \e[4~
#C-g Space = keysequence Hello world!
[MouseTermwinActions]
click-1 = focus
C-click-1 = zoom
click-3 = focus group
C-click-3 = focus 0
wheel-up = scrollback 3
wheel-dn = scrollback -3
S-wheel-up = scrollback 0.5
S-wheel-dn = scrollback -0.5
C-wheel-up = scrollback 1.0
C-wheel-dn = scrollback -1.0
[MouseTitlebarActions]
click-1 = minimize
click-3 = readonly
[MouseTagNamesActions]
click-1 = view
C-click-1 = viewtoggle
click-3 = tag
C-click-3 = tagtoggle
[MouseLayoutSymbolActions]
click-1 = layout +1
click-3 = layout -1
C-click-1 = zoomnum +1
C-click-3 = zoomnum -1
M-C-click-1 = zoomsize +.05
M-C-click-3 = zoomsize -.05
[MouseStatusTextActions]
click-1 = statusbar next
[MouseFrameLinesActions]
click-1 = layout fullscreen
# Terminals typically have a default foreground (fg) color, background (bg)
# color, and 16 standard colors that are used by terminal applications. They
# can also define color numbers up to 255, but the are used less often. In a4,
# you can define ColorSchemes that are then applied to terminal windows
# dynamically by comparing the terminal's title text to defined ColorRules (see
# below). The first defined ColorScheme is used by default for all windows.
# (The cursor color is not yet implemented.)
#include = cs_gruvbox.ini
#include = cs_solarized.ini
#include = cs_redsands.ini
#include = cs_fairyfloss.ini
#include = cs_kokuban.ini
#include = cs_frontend_fun_forrest.ini
#include = cs_seafoam_pastel.ini
[ColorScheme Basic]
fg = 7
bg = 0
#color123 = DarkOrange1
[ColorScheme BasicRed]
fg = 0
bg = 1
[ColorScheme Red160]
fg = 232
bg = 160
[ColorScheme Crimson]
fg = MidnightBlue
bg = Crimson
[colorscheme RedSands]
color00 = 0x000000
color01 = 0xff3f00
color02 = 0x00bb00
color03 = 0xe7b000
color04 = 0x0072ff
color05 = 0xbb00bb
color06 = 0x00bbbb
color07 = 0xbbbbbb
color08 = 0x555555
color09 = 0xbb0000
color10 = 0x00bb00
color11 = 0xe7b000
color12 = 0x0072ae
color13 = 0xff55ff
color14 = 0x55ffff
color15 = 0xffffff
fg = 0xd7c9a7
bg = 0x7a251e
cursor = 0xd7c9a7
# Color rules pair text with a colorscheme. A terminal window's title bar text
# is compared with each ColorRule text, in the order specified, until one
# matches, and then that colorscheme is applied to the terminal. If none of the
# rules match, then the first colorscheme defined in a4.ini is used.
# <pattern> = <colorscheme name> [<fg color|-1> [<bg color>]]
#[ColorRules]
#root@appdev.com = FairyFloss red
#@appdev.com = FairyFloss
#root@appprd = redsands red
#appprd = redsands
#root@appprddr = redsands red 0x521914
#appprddr = redsands -1 0x521914

View File

@@ -7,11 +7,14 @@ require("plugins.auto-session")
require("plugins.colorscheme")
require("plugins.conform")
require("plugins.flash")
require("plugins.guess-indent")
require("plugins.luasnip")
require("plugins.multicursor")
require("plugins.nvim-various-textobjs")
require("plugins.oil")
require("plugins.slimline")
require("plugins.snacks")
require("plugins.telescope")
require("plugins.surround")
require("plugins.treesitter")
require("plugins.which-key")

View File

@@ -15,7 +15,7 @@ vim.api.nvim_create_autocmd("LspAttach", {
return { abbr = item.label:gsub("%b()", "") }
end,
})
vim.keymap.set("n", "<leader>a", vim.lsp.buf.code_action)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action)
vim.keymap.set("i", "<C-space>", vim.lsp.completion.get)
vim.keymap.set("n", "<leader>k", function()
vim.diagnostic.jump({ float = true, count = -1 })

View File

@@ -6,6 +6,7 @@ vim.g.maplocalleader = " \\"
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.signcolumn = "yes"
vim.opt.title = true
vim.opt.timeout = false

View File

@@ -1,6 +1,6 @@
vim.pack.add({ "https://github.com/rmagatti/auto-session" })
vim.keymap.set("n", "<leader>A", "<cmd>AutoSession search<cr>")
vim.keymap.set("n", "<leader>wa", "<cmd>AutoSession search<cr>")
local ok, sess = pcall(require, "auto-session")
if ok then

View File

@@ -1,5 +1,5 @@
vim.pack.add({ "https://github.com/EdenEast/nightfox.nvim" })
vim.pack.add({ "https://github.com/EdenEast/nightfox.nvim", "https://github.com/rebelot/kanagawa.nvim" })
local cs = require("config.colorscheme")
cs.set_colorschemes("terafox", "dayfox")
cs.set_colorschemes("kanagawa-wave", "dayfox")
cs.update_colorscheme()

View File

@@ -6,10 +6,30 @@ if ok then
formatters_by_ft = {
lua = { "stylua" },
},
format_on_save = {
timeout_ms = 500,
lsp_format = "fallback",
},
format_on_save = function(bufnr)
-- Disable with a global or buffer-local variable
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
return
end
return { timeout_ms = 500, lsp_format = "fallback" }
end,
})
vim.api.nvim_create_user_command("FormatDisable", function(args)
if args.bang then
-- FormatDisable! will disable formatting just for this buffer
vim.b.disable_autoformat = true
else
vim.g.disable_autoformat = true
end
end, {
desc = "Disable autoformat-on-save",
bang = true,
})
vim.api.nvim_create_user_command("FormatEnable", function()
vim.b.disable_autoformat = false
vim.g.disable_autoformat = false
end, {
desc = "Re-enable autoformat-on-save",
})
else
print("plugin conform missing")

View File

@@ -0,0 +1,8 @@
vim.pack.add({ "https://github.com/NMAC427/guess-indent.nvim" })
local ok, guess_indent = pcall(require, "guess-indent")
if ok then
guess_indent.setup()
else
print("plugin guess-indent missing")
end

View File

@@ -0,0 +1,8 @@
vim.pack.add({ "https://github.com/sschleemilch/slimline.nvim" })
local ok, slimline = pcall(require, "slimline")
if ok then
slimline.setup()
else
print("plugin slimline missing")
end

View File

@@ -0,0 +1,8 @@
vim.pack.add({ "https://github.com/folke/which-key.nvim" })
local ok, whichkey = pcall(require, "which-key")
if ok then
whichkey.setup({ preset = "helix", delay = 1000 })
else
print("plugin whichkey missing")
end

View File

@@ -21,6 +21,14 @@
"rev": "fcea7ff883235d9024dc41e638f164a450c14ca2",
"src": "https://github.com/folke/flash.nvim"
},
"guess-indent.nvim": {
"rev": "84a4987ff36798c2fc1169cbaff67960aed9776f",
"src": "https://github.com/NMAC427/guess-indent.nvim"
},
"kanagawa.nvim": {
"rev": "aef7f5cec0a40dbe7f3304214850c472e2264b10",
"src": "https://github.com/rebelot/kanagawa.nvim"
},
"multicursor.nvim": {
"rev": "993c6eda70077c5619388900dcffefff73b40c96",
"src": "https://github.com/jake-stewart/multicursor.nvim",
@@ -57,6 +65,10 @@
"rev": "b9fd5226c2f76c951fc8ed5923d85e4de065e509",
"src": "https://github.com/nvim-lua/plenary.nvim"
},
"slimline.nvim": {
"rev": "b23d6239ae06d7b422b30b227756971348ffcd68",
"src": "https://github.com/sschleemilch/slimline.nvim"
},
"snacks.nvim": {
"rev": "fe7cfe9800a182274d0f868a74b7263b8c0c020b",
"src": "https://github.com/folke/snacks.nvim"
@@ -78,6 +90,10 @@
"rev": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179",
"src": "https://github.com/nvim-telescope/telescope.nvim",
"version": "'v0.2.1'"
},
"which-key.nvim": {
"rev": "3aab2147e74890957785941f0c1ad87d0a44c15a",
"src": "https://github.com/folke/which-key.nvim"
}
}
}

View File

@@ -32,7 +32,7 @@ local blocks = {
format = "Ram: {used}/{total} GB",
interval = 5,
color = colors.light_blue,
underline = true,
underline = false,
}),
oxwm.bar.block.static({
text = "",
@@ -45,8 +45,23 @@ local blocks = {
command = "uname -r",
interval = 999999999,
color = colors.red,
underline = true,
underline = false,
}),
-- oxwm.bar.block.static({
-- text = " │ ",
-- interval = 999999999,
-- color = colors.lavender,
-- underline = false,
-- }),
-- oxwm.bar.block.battery({
-- format = "Bat: {}%",
-- charging = "⚡ Bat: {}%",
-- discharging = "- Bat: {}%",
-- full = "✓ Bat: {}%",
-- interval = 30,
-- color = colors.green,
-- underline = false,
-- }),
oxwm.bar.block.static({
text = "",
interval = 999999999,
@@ -58,18 +73,8 @@ local blocks = {
date_format = "%a, %b %d - %H:%M",
interval = 1,
color = colors.cyan,
underline = true,
underline = false,
}),
-- Uncomment to add battery status (useful for laptops)
-- oxwm.bar.block.battery({
-- format = "Bat: {}%",
-- charging = "⚡ Bat: {}%",
-- discharging = "- Bat: {}%",
-- full = "✓ Bat: {}%",
-- interval = 30,
-- color = colors.green,
-- underline = true,
-- }),
}
-------------------------------------------------------------------------------
@@ -146,12 +151,16 @@ oxwm.bar.set_scheme_normal(colors.fg, colors.bg, "#444444")
-- Occupied tags
oxwm.bar.set_scheme_occupied(colors.cyan, colors.bg, colors.cyan)
-- Currently selected tag
oxwm.bar.set_scheme_selected(colors.cyan, colors.bg, colors.purple)
oxwm.bar.set_scheme_selected(colors.orange, colors.bg, colors.orange)
-- Urgent tags (windows requesting attention)
oxwm.bar.set_scheme_urgent(colors.red, colors.bg, colors.red)
-- Hide tags that have no windows and are not selected
-- oxwm.bar.set_hide_vacant_tags(true)
--
function shell_quote(s)
return '"' .. string.gsub(s, '[$"!`\\]', "\\%1") .. '"'
end
-------------------------------------------------------------------------------
-- Keybindings
@@ -168,7 +177,17 @@ oxwm.bar.set_scheme_urgent(colors.red, colors.bg, colors.red)
oxwm.key.bind({ modkey }, "Return", oxwm.spawn_terminal())
-- Launch Dmenu
oxwm.key.bind({ modkey }, "P", oxwm.spawn({ "sh", "-c", "dmenu_run -l 10" }))
oxwm.key.bind(
{ modkey },
"P",
oxwm.spawn({
"sh",
"-c",
"dmenu_run -l 10 -fn " .. shell_quote(bar_font) .. " -nb " .. shell_quote(colors.bg) .. " -nf " .. shell_quote(
colors.fg
) .. " -sb " .. shell_quote(colors.orange) .. " -sf " .. shell_quote(colors.black),
})
)
-- Copy screenshot to clipboard
oxwm.key.bind({ modkey }, "S", oxwm.spawn({ "sh", "-c", "maim -s | xclip -selection clipboard -t image/png" }))
oxwm.key.bind({ modkey }, "X", oxwm.client.kill())
@@ -281,6 +300,10 @@ oxwm.key.chord({
{ { modkey }, "Space" },
{ {}, "T" },
}, oxwm.spawn_terminal())
oxwm.key.chord({
{ { modkey }, "Space" },
{ {}, "F" },
}, oxwm.spawn({ "firefox" }))
oxwm.key.chord({
{ { modkey }, "Space" },
{ {}, "L" },

View File

@@ -1,13 +1,14 @@
return {
fg = "#bbbbbb",
fg = "#aaaaaa",
red = "#f7768e",
bg = "#1a1b26",
black = "#1a1b26",
cyan = "#0db9d7",
green = "#9ece6a",
lavender = "#a9b1d6",
light_blue = "#7aa2f7",
grey = "#bbbbbb",
grey = "#737373",
blue = "#6dade3",
purple = "#ad8ee6",
orange = "#d78042",
orange = "#bd6628",
}

View File

@@ -2,6 +2,7 @@ return {
fg = "#1a1b26",
red = "#b94646",
bg = "#dddddd",
black = "#1a1b26",
cyan = "#4d8080",
green = "#9ece6a",
lavender = "#a9b1d6",

View File

@@ -23,6 +23,7 @@ fi
alias nocaps='setxkbmap pl -option ctrl:nocaps'
alias fixdp='xrandr --output DP-0 --right-of DP-2'
alias a4='COLORTERM=truecolor TERM=xterm-256color a4'
tn() {
if [ $# -eq 0 ]; then

View File

@@ -58,31 +58,55 @@ XTerm.vt100.color15: #ECEFF4
st.font: FiraCode Nerd Font:size=10
! terrafox colors from https://github.com/edeneast/nightfox.nvim/raw/main/extra/terafox/alacritty.toml
! kanagawa wave colors from https://github.com/rebelot/kanagawa.nvim/blob/master/extras/alacritty/kanagawa_wave.toml
! dayfox colors from https://github.com/edeneast/nightfox.nvim/raw/main/extra/dayfox/alacritty.toml
Zutty.font: monaspaceneon
Zutty.fontpath: /usr/share/fonts:HOME/.local/share/fonts
Zutty.fontsize: 20
#ifdef THEME_DARK
st.lightmode: 0
st.background: #152528
st.foreground: #e6eaea
st.background: #1f1f28
st.foreground: #dcd7ba
st.cursorColor: #cbd9d8
st.reverse-cursor: #e6eaea
st.color0: #2f3239
st.color1: #e85c51
st.color2: #7aa4a1
st.color3: #fda47f
st.color4: #5a93aa
st.color5: #ad5c7c
st.color6: #a1cdd8
st.color7: #ebebeb
st.color8: #4e5157
st.color9: #eb746b
st.color10: #8eb2af
st.color11: #fdb292
st.color12: #73a3b7
st.color13: #b97490
st.color14: #afd4de
st.color15: #eeeeee
st.color0: #090618
st.color1: #c34043
st.color2: #76946a
st.color3: #c0a36e
st.color4: #7e9cd8
st.color5: #957fb8
st.color6: #6a9589
st.color7: #c8c093
st.color8: #727169
st.color9: #e82424
st.color10: #98bb6c
st.color11: #e6c384
st.color12: #7fb4ca
st.color13: #938aa9
st.color14: #7aa89f
st.color15: #dcd7ba
Zutty.bg: #1f1f28
Zutty.fg: #dcd7ba
Zutty.cr: #cbd9d8
Zutty.color0: #090618
Zutty.color1: #c34043
Zutty.color2: #76946a
Zutty.color3: #c0a36e
Zutty.color4: #7e9cd8
Zutty.color5: #957fb8
Zutty.color6: #6a9589
Zutty.color7: #c8c093
Zutty.color8: #727169
Zutty.color9: #e82424
Zutty.color10: #98bb6c
Zutty.color11: #e6c384
Zutty.color12: #7fb4ca
Zutty.color13: #938aa9
Zutty.color14: #7aa89f
Zutty.color15: #dcd7ba
#else
st.lightmode: 1
st.background: #f6f2ee
@@ -105,4 +129,24 @@ st.color12: #4863b6
st.color13: #8452d5
st.color14: #488d93
st.color15: #f4ece6
Zutty.bg: #f6f2ee
Zutty.fg: #3d2b5a
Zutty.cr: #643f61
Zutty.color0: #352c24
Zutty.color1: #a5222f
Zutty.color2: #396847
Zutty.color3: #ac5402
Zutty.color4: #2848a9
Zutty.color5: #6e33ce
Zutty.color6: #287980
Zutty.color7: #f2e9e1
Zutty.color8: #534c45
Zutty.color9: #b3434e
Zutty.color10: #577f63
Zutty.color11: #b86e28
Zutty.color12: #4863b6
Zutty.color13: #8452d5
Zutty.color14: #488d93
Zutty.color15: #f4ece6
#endif

View File

@@ -8,7 +8,7 @@ xset b off
xrandr --auto
xrandr --output DP-0 --left-of DP-2 --primary
xrandr --output HDMI-0 --left-of DP-0
xrdb -merge ~/.Xresources
xrdb -merge ~/.Xresources -DHOME="$HOME"
setxkbmap pl -option ctrl:nocaps
if [ -x ~/.fehbg ]; then

View File

@@ -30,7 +30,7 @@ if [ -n "$XRES" ]; then
elif [ "$THEME" = light ]; then
sed -i 's/^#define THEME_DARK/#undef THEME_DARK/' "$XRES"
fi
xrdb -merge "$XRES"
xrdb -merge "$XRES" -DHOME="$HOME"
pkill -USR1 '^st$'
fi