diff options
| -rw-r--r-- | awesome/rc.lua | 564 | ||||
| -rw-r--r-- | nvim/.gitignore | 16 | ||||
| -rw-r--r-- | nvim/appearance.vim | 198 | ||||
| -rw-r--r-- | nvim/basics.vim | 38 | ||||
| -rw-r--r-- | nvim/header.vim | 142 | ||||
| -rw-r--r-- | nvim/init.vim | 88 | ||||
| -rw-r--r-- | nvim/lsp.vim | 163 | ||||
| -rw-r--r-- | zsh/.zshrc | 1 |
8 files changed, 565 insertions, 645 deletions
diff --git a/awesome/rc.lua b/awesome/rc.lua new file mode 100644 index 0000000..446fd29 --- /dev/null +++ b/awesome/rc.lua @@ -0,0 +1,564 @@ +-- If LuaRocks is installed, make sure that packages installed through it are +-- found (e.g. lgi). If LuaRocks is not installed, do nothing. +pcall(require, "luarocks.loader") + +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") +require("awful.autofocus") +-- Widget and layout library +local wibox = require("wibox") +-- Theme handling library +local beautiful = require("beautiful") +-- Notification library +local naughty = require("naughty") +local menubar = require("menubar") +local hotkeys_popup = require("awful.hotkeys_popup") +-- Enable hotkeys help widget for VIM and other apps +-- when client with a matching name is opened: +require("awful.hotkeys_popup.keys") + +-- {{{ Error handling +-- Check if awesome encountered an error during startup and fell back to +-- another config (This code will only ever execute for the fallback config) +if awesome.startup_errors then + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors }) +end + +-- Handle runtime errors after startup +do + local in_error = false + awesome.connect_signal("debug::error", function (err) + -- Make sure we don't go into an endless error loop + if in_error then return end + in_error = true + + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = tostring(err) }) + in_error = false + end) +end +-- }}} + +-- {{{ Variable definitions +-- Themes define colours, icons, font and wallpapers. +beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") + +-- This is used later as the default terminal and editor to run. +terminal = "st" +editor = os.getenv("EDITOR") or "nvim" +editor_cmd = terminal .. " -e " .. editor + +-- Default modkey. +-- Usually, Mod4 is the key with a logo between Control and Alt. +-- If you do not like this or do not have such a key, +-- I suggest you to remap Mod4 to another key using xmodmap or other tools. +-- However, you can use another modifier like Mod1, but it may interact with others. +modkey = "Mod4" + +-- Table of layouts to cover with awful.layout.inc, order matters. +awful.layout.layouts = { + awful.layout.suit.floating, + awful.layout.suit.tile, + awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, + awful.layout.suit.tile.top, + awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, + awful.layout.suit.spiral, + awful.layout.suit.spiral.dwindle, + awful.layout.suit.max, + awful.layout.suit.max.fullscreen, + awful.layout.suit.magnifier, + awful.layout.suit.corner.nw, + -- awful.layout.suit.corner.ne, + -- awful.layout.suit.corner.sw, + -- awful.layout.suit.corner.se, +} +-- }}} + +-- {{{ Menu +-- Create a launcher widget and a main menu +myawesomemenu = { + { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, + { "manual", terminal .. " -e man awesome" }, + { "edit config", editor_cmd .. " " .. awesome.conffile }, + { "restart", awesome.restart }, + { "quit", function() awesome.quit() end }, +} + +mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, + { "open terminal", terminal } + } + }) + +mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, + menu = mymainmenu }) + +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it +-- }}} + +-- Keyboard map indicator and switcher +mykeyboardlayout = awful.widget.keyboardlayout() + +-- {{{ Wibar +-- Create a textclock widget +mytextclock = wibox.widget.textclock() + +-- Create a wibox for each screen and add it +local taglist_buttons = gears.table.join( + awful.button({ }, 1, function(t) t:view_only() end), + awful.button({ modkey }, 1, function(t) + if client.focus then + client.focus:move_to_tag(t) + end + end), + awful.button({ }, 3, awful.tag.viewtoggle), + awful.button({ modkey }, 3, function(t) + if client.focus then + client.focus:toggle_tag(t) + end + end), + awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), + awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) + ) + +local tasklist_buttons = gears.table.join( + awful.button({ }, 1, function (c) + if c == client.focus then + c.minimized = true + else + c:emit_signal( + "request::activate", + "tasklist", + {raise = true} + ) + end + end), + awful.button({ }, 3, function() + awful.menu.client_list({ theme = { width = 250 } }) + end), + awful.button({ }, 4, function () + awful.client.focus.byidx(1) + end), + awful.button({ }, 5, function () + awful.client.focus.byidx(-1) + end)) + +local function set_wallpaper(s) + -- Wallpaper + if beautiful.wallpaper then + local wallpaper = beautiful.wallpaper + -- If wallpaper is a function, call it with the screen + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + end +end + +-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) +screen.connect_signal("property::geometry", set_wallpaper) + +awful.screen.connect_for_each_screen(function(s) + -- Wallpaper + set_wallpaper(s) + + -- Each screen has its own tag table. + awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contain an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(gears.table.join( + awful.button({ }, 1, function () awful.layout.inc( 1) end), + awful.button({ }, 3, function () awful.layout.inc(-1) end), + awful.button({ }, 4, function () awful.layout.inc( 1) end), + awful.button({ }, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist { + screen = s, + filter = awful.widget.taglist.filter.all, + buttons = taglist_buttons + } + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist { + screen = s, + filter = awful.widget.tasklist.filter.currenttags, + buttons = tasklist_buttons + } + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + mylauncher, + s.mytaglist, + s.mypromptbox, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + mykeyboardlayout, + wibox.widget.systray(), + mytextclock, + s.mylayoutbox, + }, + } +end) +-- }}} + +-- {{{ Mouse bindings +root.buttons(gears.table.join( + awful.button({ }, 3, function () mymainmenu:toggle() end), + awful.button({ }, 4, awful.tag.viewnext), + awful.button({ }, 5, awful.tag.viewprev) +)) +-- }}} + +-- {{{ Key bindings +globalkeys = gears.table.join( + awful.key({ modkey, }, "s", hotkeys_popup.show_help, + {description="show help", group="awesome"}), + awful.key({ modkey, }, "Left", awful.tag.viewprev, + {description = "view previous", group = "tag"}), + awful.key({ modkey, }, "Right", awful.tag.viewnext, + {description = "view next", group = "tag"}), + awful.key({ modkey, }, "Escape", awful.tag.history.restore, + {description = "go back", group = "tag"}), + + awful.key({ modkey, }, "j", + function () + awful.client.focus.byidx( 1) + end, + {description = "focus next by index", group = "client"} + ), + awful.key({ modkey, }, "k", + function () + awful.client.focus.byidx(-1) + end, + {description = "focus previous by index", group = "client"} + ), + awful.key({ modkey, }, "w", function () mymainmenu:show() end, + {description = "show main menu", group = "awesome"}), + + -- Layout manipulation + awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, + {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, + {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, + {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, + {description = "focus the previous screen", group = "screen"}), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto, + {description = "jump to urgent client", group = "client"}), + awful.key({ modkey, }, "Tab", + function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end, + {description = "go back", group = "client"}), + + -- Standard program + awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, + {description = "open a terminal", group = "launcher"}), + awful.key({ modkey, "Control" }, "r", awesome.restart, + {description = "reload awesome", group = "awesome"}), + awful.key({ modkey, "Shift" }, "q", awesome.quit, + {description = "quit awesome", group = "awesome"}), + + awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, + {description = "increase master width factor", group = "layout"}), + awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, + {description = "decrease master width factor", group = "layout"}), + awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, + {description = "increase the number of master clients", group = "layout"}), + awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, + {description = "decrease the number of master clients", group = "layout"}), + awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, + {description = "increase the number of columns", group = "layout"}), + awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, + {description = "decrease the number of columns", group = "layout"}), + awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, + {description = "select next", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, + {description = "select previous", group = "layout"}), + + awful.key({ modkey, "Control" }, "n", + function () + local c = awful.client.restore() + -- Focus restored client + if c then + c:emit_signal( + "request::activate", "key.unminimize", {raise = true} + ) + end + end, + {description = "restore minimized", group = "client"}), + + -- Prompt + awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, + {description = "run prompt", group = "launcher"}), + + awful.key({ modkey }, "x", + function () + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } + end, + {description = "lua execute prompt", group = "awesome"}), + -- Menubar + awful.key({ modkey }, "p", function() menubar.show() end, + {description = "show the menubar", group = "launcher"}) +) + +clientkeys = gears.table.join( + awful.key({ modkey, }, "f", + function (c) + c.fullscreen = not c.fullscreen + c:raise() + end, + {description = "toggle fullscreen", group = "client"}), + awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, + {description = "close", group = "client"}), + awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , + {description = "toggle floating", group = "client"}), + awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, + {description = "move to master", group = "client"}), + awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, + {description = "move to screen", group = "client"}), + awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, + {description = "toggle keep on top", group = "client"}), + awful.key({ modkey, }, "n", + function (c) + -- The client currently has the input focus, so it cannot be + -- minimized, since minimized clients can't have the focus. + c.minimized = true + end , + {description = "minimize", group = "client"}), + awful.key({ modkey, }, "m", + function (c) + c.maximized = not c.maximized + c:raise() + end , + {description = "(un)maximize", group = "client"}), + awful.key({ modkey, "Control" }, "m", + function (c) + c.maximized_vertical = not c.maximized_vertical + c:raise() + end , + {description = "(un)maximize vertically", group = "client"}), + awful.key({ modkey, "Shift" }, "m", + function (c) + c.maximized_horizontal = not c.maximized_horizontal + c:raise() + end , + {description = "(un)maximize horizontally", group = "client"}) +) + +-- Bind all key numbers to tags. +-- Be careful: we use keycodes to make it work on any keyboard layout. +-- This should map on the top row of your keyboard, usually 1 to 9. +for i = 1, 9 do + globalkeys = gears.table.join(globalkeys, + -- View tag only. + awful.key({ modkey }, "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, + {description = "view tag #"..i, group = "tag"}), + -- Toggle tag display. + awful.key({ modkey, "Control" }, "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, + {description = "toggle tag #" .. i, group = "tag"}), + -- Move client to tag. + awful.key({ modkey, "Shift" }, "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + {description = "move focused client to tag #"..i, group = "tag"}), + -- Toggle tag on focused client. + awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, + {description = "toggle focused client on tag #" .. i, group = "tag"}) + ) +end + +clientbuttons = gears.table.join( + awful.button({ }, 1, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + end), + awful.button({ modkey }, 1, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + awful.mouse.client.move(c) + end), + awful.button({ modkey }, 3, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + awful.mouse.client.resize(c) + end) +) + +-- Set keys +root.keys(globalkeys) +-- }}} + +-- {{{ Rules +-- Rules to apply to new clients (through the "manage" signal). +awful.rules.rules = { + -- All clients will match this rule. + { rule = { }, + properties = { border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen + } + }, + + -- Floating clients. + { rule_any = { + instance = { + "DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + "pinentry", + }, + class = { + "Arandr", + "Blueman-manager", + "Gpick", + "Kruler", + "MessageWin", -- kalarm. + "Sxiv", + "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. + "Wpa_gui", + "veromix", + "xtightvncviewer"}, + + -- Note that the name property shown in xprop might be set slightly after creation of the client + -- and the name shown there might not match defined rules here. + name = { + "Event Tester", -- xev. + }, + role = { + "AlarmWindow", -- Thunderbird's calendar. + "ConfigManager", -- Thunderbird's about:config. + "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. + } + }, properties = { floating = true }}, + + -- Add titlebars to normal clients and dialogs + { rule_any = {type = { "normal", "dialog" } + }, properties = { titlebars_enabled = true } + }, + + -- Set Firefox to always map on the tag named "2" on screen 1. + -- { rule = { class = "Firefox" }, + -- properties = { screen = 1, tag = "2" } }, +} +-- }}} + +-- {{{ Signals +-- Signal function to execute when a new client appears. +client.connect_signal("manage", function (c) + -- Set the windows at the slave, + -- i.e. put it at the end of others instead of setting it master. + -- if not awesome.startup then awful.client.setslave(c) end + + if awesome.startup + and not c.size_hints.user_position + and not c.size_hints.program_position then + -- Prevent clients from being unreachable after screen count changes. + awful.placement.no_offscreen(c) + end +end) + +-- Add a titlebar if titlebars_enabled is set to true in the rules. +client.connect_signal("request::titlebars", function(c) + -- buttons for the titlebar + local buttons = gears.table.join( + awful.button({ }, 1, function() + c:emit_signal("request::activate", "titlebar", {raise = true}) + awful.mouse.client.move(c) + end), + awful.button({ }, 3, function() + c:emit_signal("request::activate", "titlebar", {raise = true}) + awful.mouse.client.resize(c) + end) + ) + + awful.titlebar(c) : setup { + { -- Left + awful.titlebar.widget.iconwidget(c), + buttons = buttons, + layout = wibox.layout.fixed.horizontal + }, + { -- Middle + { -- Title + align = "center", + widget = awful.titlebar.widget.titlewidget(c) + }, + buttons = buttons, + layout = wibox.layout.flex.horizontal + }, + { -- Right + awful.titlebar.widget.floatingbutton (c), + awful.titlebar.widget.maximizedbutton(c), + awful.titlebar.widget.stickybutton (c), + awful.titlebar.widget.ontopbutton (c), + awful.titlebar.widget.closebutton (c), + layout = wibox.layout.fixed.horizontal() + }, + layout = wibox.layout.align.horizontal + } +end) + +-- Enable sloppy focus, so that focus follows mouse. +client.connect_signal("mouse::enter", function(c) + c:emit_signal("request::activate", "mouse_enter", {raise = false}) +end) + +client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) +client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) +-- }}} diff --git a/nvim/.gitignore b/nvim/.gitignore deleted file mode 100644 index 189fa64..0000000 --- a/nvim/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -# . :-. . -# author: marcellus </var/spool/mail/marcellus> :*==*%%%#%+=---: -# :#%%%*+%#=+%*:. -# created: Sun, 14 May 2023 01:29:10 +0200 :%%%. . -*%- -# updated: Sun, 14 May 2023 01:30:06 +0200 =## . :#%*=:. -# -#*#%:=#%%%#- -# description: *:*%%%%%%%#- -# .-#%%%%%%+ -# %%%--%%%%*- -# ##%= +%%=:.. -# #* #%# -# :# -==* -# :: .: - -plugged/ -autoload/ diff --git a/nvim/appearance.vim b/nvim/appearance.vim deleted file mode 100644 index 14afd8d..0000000 --- a/nvim/appearance.vim +++ /dev/null @@ -1,198 +0,0 @@ -set background=dark - -lua << EOF -local colors = require('dracula.palette') - -require("dracula").setup { - show_end_of_buffer = true, - lualine_bg_color = "#44475a", - transparent_bg = true, -} - -require("gruvbox").setup { - italic = { - strings = false, - comments = false - }, - transparent_mode = true, -} - ---require("catppuccin").setup({ --- flavour = "macchiato", --- transparent_background = true, --- show_end_of_buffer = true, ---}) --- ---require("everforest").setup({ --- transparent_background_level = 1, ---}) - -local empty = require('lualine.component'):extend() -function empty:draw(default_highlight) - self.status = '' - self.applied_separator = '' - self:apply_highlights(default_highlight) - self:apply_section_separators() - return self.status -end - --- Put proper separators and gaps between components in sections -local function process_sections(sections) - for name, section in pairs(sections) do - local left = name:sub(9, 10) < 'x' - for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do - table.insert(section, pos * 2, { empty, color = { fg = colors.white, bg = colors.white } }) - end - for id, comp in ipairs(section) do - if type(comp) ~= 'table' then - comp = { comp } - section[id] = comp - end - comp.separator = left and { right = '' } or { left = '' } - end - end - return sections -end - -local function modified() - if vim.bo.modified then - return '+' - elseif vim.bo.modifiable == false or vim.bo.readonly == true then - return '-' - end - return '' -end - -local transparent = require'lualine.themes.dracula' -transparent.inactive.c.bg = 'nil' -transparent.visual.c.bg = 'nil' -transparent.replace.c.bg = 'nil' -transparent.normal.c.bg = 'nil' -transparent.insert.c.bg = 'nil' -transparent.command.c.bg = 'nil' - -require('lualine').setup { - options = { - theme = transparent, - component_separators = '', - section_separators = { left = '', right = '' }, - }, - sections = process_sections { - lualine_a = { 'mode' }, - lualine_b = { - 'branch', - 'diff', - { 'filename', file_status = false, path = 1 }, - { - 'diagnostics', - source = { 'nvim' }, - sections = { 'error' }, - symbols = {error = 'E '}, - diagnostics_color = { error = { bg = colors.red, fg = colors.black, gui = 'bold' } }, - --on_click = function() - -- vim.diagnostic.goto_prev() - -- end - }, - { - 'diagnostics', - source = { 'nvim' }, - sections = { 'warn' }, - symbols = {warn = 'W '}, - diagnostics_color = { warn = { bg = colors.orange, fg = colors.black, gui = 'bold' } }, - --on_click = function() - -- vim.diagnostic.goto_next() - -- end - }, - { modified, color = { bg = colors.purple } }, - { - '%w', - cond = function() - return vim.wo.previewwindow - end, - }, - { - '%r', - cond = function() - return vim.bo.readonly - end, - }, - { - '%q', - cond = function() - return vim.bo.buftype == 'quickfix' - end, - }, - }, - lualine_c = {}, - lualine_x = { 'fileformat' }, - lualine_y = { 'filetype', 'progress' }, - lualine_z = { 'location' }, - }, -} - -require('hlargs').setup { - color = colors.orange -} - -require("scrollbar").setup({ - marks = { - Search = { color = colors.orange }, - Error = { color = colors.red }, - Warn = { color = colors.yellow }, - Info = { color = colors.pink }, - Hint = { color = colors.cyan }, - Misc = { color = colors.purple }, - }, - handlers = { - cursor = false, - handle = false, - }, -}) - ---vim.cmd [[highlight IndentBlanklineIndent1 guifg=#bd93f9 gui=nocombine]] ---vim.cmd [[highlight IndentBlanklineIndent2 guifg=#50fa7b gui=nocombine]] ---vim.cmd [[highlight IndentBlanklineIndent3 guifg=#8be9fd gui=nocombine]] ---vim.cmd [[highlight IndentBlanklineIndent4 guifg=#f1fa8c gui=nocombine]] ---vim.cmd [[highlight IndentBlanklineIndent5 guifg=#ffb86c gui=nocombine]] ---vim.cmd [[highlight IndentBlanklineIndent6 guifg=#ff5555 gui=nocombine]] --- ---require("indent_blankline").setup { --- space_char_blankline = " ", --- --- --show_current_context = true, --- --show_current_context_start = true, --- --- char_highlight_list = { --- "IndentBlanklineIndent1", --- "IndentBlanklineIndent2", --- "IndentBlanklineIndent3", --- "IndentBlanklineIndent4", --- "IndentBlanklineIndent5", --- "IndentBlanklineIndent6", --- }, ---} - -require("nvim-web-devicons").setup {} - -require("nvim-treesitter.configs").setup { - ensure_installed = { - "bash", "c", "c_sharp", "comment", "css", "diff", "git_rebase", - "gitattributes", "gitcommit", "gitignore", "html", "latex", - "lua", "make", "markdown", "python", "rust", "vim", "vimdoc", - "zig" - }, - - highlight = { - enable = true, - }, - - additional_vim_regex_highlighting = false, - - rainbow = { - enable = true, - extended_mode = true, - } -} -EOF - -colorscheme dracula diff --git a/nvim/basics.vim b/nvim/basics.vim deleted file mode 100644 index bf1706e..0000000 --- a/nvim/basics.vim +++ /dev/null @@ -1,38 +0,0 @@ -" Indent -set autoindent smartindent -set tabstop=8 " n of whitespace in \t -set shiftwidth=8 " n of whitespace for indent -set softtabstop=8 " n of whitespace to delete with backspace -"set expandtab " \t -> whitespaces -"set list -"set lcs=tab:\|\ ,space:⋅,eol:$ "↴ - -" Disable the mouse, btw use shift for highlighting -"set mouse= -map <Middlemouse> <Nop> -imap <Middlemouse> <Nop> -aunmenu PopUp - -" better <C-d> and <C-u> -nnoremap <C-d> <C-d>zz -nnoremap <c-u> <c-u>zz - -" Autocorrect -abbr hte the - -" Misc -set nu rnu -set cc=80 -set tw=79 -set title -set nohls -set tgc -set clipboard+=unnamedplus -autocmd FileType * setl fo-=ro fo+=tc - -" Language specific -autocmd FileType python setl ts=4 sw=4 sts=4 expandtab -autocmd FileType lisp,html setl ts=2 sw=2 sts=2 expandtab -autocmd FileType html,markdown setl spell -autocmd FileType tex setl spell spl=fr -autocmd BufWritePost *.c silent! !astyle -A3 -t8 -p -xg -H -xB -n %:p diff --git a/nvim/header.vim b/nvim/header.vim deleted file mode 100644 index a96db90..0000000 --- a/nvim/header.vim +++ /dev/null @@ -1,142 +0,0 @@ -" . :-. . -" author: ratakor <ratakor@disroot.org> :*==*%%%#%+=---: -" :#%%%*+%#=+%*:. -" created: Sat, 06 May 2023 18:54:06 +0200 :%%%. . -*%- -" updated: Sun, 14 May 2023 01:43:30 +0200 =## . :#%*=:. -" -#*#%:=#%%%#- -" description: *:*%%%%%%%#- -" script to produce an header like this one .-#%%%%%%+ -" use .local/bin/updateheader to change the %%%--%%%%*- -" letter shown ##%= +%%=:.. -" #* #%# -" :# -==* -" :: .: - -let s:ascii = [ - \"", - \"███╗ ███╗", - \"████╗ ████║", - \"██╔████╔██║", - \"██║╚██╔╝██║", - \"██║ ╚═╝ ██║", - \"╚═╝ ╚═╝", - \] - -let s:start = '#' -let s:mid = '#' -let s:end = '' -let s:size = 20 " ascii width -let s:length = len(s:ascii) " header length -let s:width = 80 " header width -let s:margin = 5 - -let s:types = { - \'\.c$\|\.h$\|\.cc$\|\.hh$\|\.cpp$\|\.hpp$\|\.cs$\|\.php$': - \['/*', ' *', ' */'], - \'\.htm$\|\.html$\|\.xml$': - \['<!--', ' ', '-->'], - \'\.js$': - \['//', '//', ''], - \'\.tex$': - \['%', '%', ''], - \'\.ml$\|\.mli$\|\.mll$\|\.mly$': - \['(*', ' ', '*)'], - \'\.vim$\|\vimrc$': - \['"', '"', ''], - \'\.f90$\|\.f95$\|\.f03$\|\.f$\|\.for$': - \['!', '!', ''], - \} - -function! s:filetype() - let l:f = expand("%:t") - - for type in keys(s:types) - if l:f =~ type - let s:start = s:types[type][0] - let s:mid = s:types[type][1] - let s:end = s:types[type][2] - endif - endfor - -endfunction - -function! s:textline(txt, pos) - let l:txt = strpart(a:txt, 0, s:width - s:margin * 2 - s:size) - - if a:pos == 1 - return s:start . repeat(' ', s:margin - strlen(s:start)) . l:txt . repeat(' ', s:width - s:margin * 2 - strlen(l:txt) - s:size) . s:ascii[a:pos] - elseif a:pos == s:length - return s:end - else - return s:mid . repeat(' ', s:margin - strlen(s:start)) . l:txt . repeat(' ', s:width - s:margin * 2 - strlen(l:txt) - s:size) . s:ascii[a:pos] -endfunction - -function! s:line(n) - if a:n == 2 - return s:textline("author: " . s:user() . " <" . s:mail() . ">", a:n) -" elseif a:n == 3 -" return s:textline("license: " . "ICS license", a:n) - elseif a:n == 4 - return s:textline("created: " . s:date(), a:n) - elseif a:n == 5 - return s:textline("updated: " . s:date(), a:n) - elseif a:n == 7 - return s:textline("description: ", a:n) - else - return s:textline('', a:n) - endif -endfunction - -function! s:user() - let l:user = $USER - if strlen(l:user) == 0 - let l:user = "user" - endif - return l:user -endfunction - -function! s:mail() - let l:mail = $MAIL - if strlen(l:mail) == 0 - let l:mail = "user@mail.org" - endif - return l:mail -endfunction - -function! s:date() - return strftime("%a, %d %b %Y %H:%M:%S %z") -endfunction - -function! s:insert() - let l:line = s:length - - while l:line > 0 - call append(0, s:line(l:line)) - let l:line = l:line - 1 - endwhile -endfunction - -function! s:update() - let line = 0 - call s:filetype() - if getline(5) =~ s:start . repeat(' ', s:margin - strlen(s:start)) . "updated: " - let line = 5 - elseif getline(6) =~ s:start . repeat(' ', s:margin - strlen(s:start)) . "updated: " - let line = 6 - endif - if line > 0 && &mod - call setline(line, s:line(5)) - return 0 - endif - return 1 -endfunction - -function! s:header() - if s:update() - call s:insert() - endif -endfunction - -command! Header call s:header () -autocmd BufNewFile * call s:header () -autocmd BufWritePre * call s:update () diff --git a/nvim/init.vim b/nvim/init.vim deleted file mode 100644 index b39ff63..0000000 --- a/nvim/init.vim +++ /dev/null @@ -1,88 +0,0 @@ -" Automatic vim-plug installation -if ! filereadable(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim"')) - echo "Downloading junegunn/vim-plug to manage plugins..." - silent !mkdir -p ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/ - silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim - autocmd VimEnter * PlugInstall -endif - -call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) -" Appearance -Plug 'Mofiqul/dracula.nvim' " dracula theme -Plug 'ellisonleao/gruvbox.nvim' " gruvbox theme -"Plug 'catppuccin/nvim', { 'as': 'catppuccin' } " catppuccin theme -"Plug 'neanias/everforest-nvim' " everforest theme -Plug 'mhinz/vim-startify' " start screen -Plug 'nvim-lualine/lualine.nvim' " bottom bar -Plug 'kyazdani42/nvim-web-devicons' " fancy icons -Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " syntax color -Plug 'p00f/nvim-ts-rainbow' " funny brackets -"Plug 'lukas-reineke/indent-blankline.nvim' " funny indentation -Plug 'm-demare/hlargs.nvim' " highlight arguments - -" LSP Support and Autocompletion Engine -Plug 'neovim/nvim-lspconfig' -Plug 'hrsh7th/nvim-cmp' -Plug 'hrsh7th/cmp-nvim-lsp' -Plug 'hrsh7th/cmp-nvim-lsp-signature-help' -"Plug 'hrsh7th/cmp-nvim-lsp-document-symbol' -Plug 'hrsh7th/cmp-buffer' -Plug 'hrsh7th/cmp-path' -Plug 'hrsh7th/cmp-calc' -Plug 'ray-x/cmp-treesitter' -Plug 'saadparwaiz1/cmp_luasnip' -Plug 'L3MON4D3/LuaSnip', {'do': 'make install_jsregexp'} -Plug 'ratakor/vim-snippets' - -" Misc -Plug 'bronson/vim-trailing-whitespace' " FixWhitespace -Plug 'airblade/vim-gitgutter' " hud for git in vim -Plug 'nvim-lua/plenary.nvim' " dependency for telescope -Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.0' } " fuzzy finder -Plug 'preservim/nerdtree' " vs code be like -Plug 'mbbill/undotree' " history visualizer -Plug 'tpope/vim-commentary' " gc/gcc magic comment -Plug 'ziglang/zig.vim' -Plug 'kovetskiy/sxhkd-vim' -Plug 'petertriho/nvim-scrollbar' -Plug 'andrewferrier/debugprint.nvim' -Plug 'm4xshen/autoclose.nvim' -"Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } -call plug#end() - -source $XDG_CONFIG_HOME/nvim/basics.vim -source $XDG_CONFIG_HOME/nvim/header.vim -source $XDG_CONFIG_HOME/nvim/appearance.vim -source $XDG_CONFIG_HOME/nvim/lsp.vim - -" Telescope config -nnoremap <C-S> :Telescope find_files<CR> -nnoremap <C-G> :Telescope git_files<CR> - -" NerdTree config -nnoremap <F2> :NERDTreeToggle<CR> - -" Undotree config -nnoremap <F3> :UndotreeToggle<CR> - -" custom vim-commentary -autocmd FileType zig setl commentstring=//\ %s -autocmd FileType cs setl commentstring=/*\ %s\ */ - -lua << EOF -require("debugprint").setup() -EOF - -"let g:startify_custom_header = [ -let g:cow = [ -\" /\\_\\/\\_\\ _ / /\\ /\\ \\ /\\ \\ /\\ \\ _\\ \\ _\\ \\ /\\_\\ / /\\", -\" / / / / //\\_\\ / / \\ / \\ \\ / \\ \\ / \\ \\ /\\__ \\ /\\__ \\ / / / _ / / \\ ", -\" /\\ \\/ \\ \\/ / // / /\\ \\ / /\\ \\ \\ / /\\ \\ \\ / /\\ \\ \\ / /_ \\_\\ / /_ \\_\\ \\ \\ \\__ /\\_\\ / / /\\ \\__ ", -\" / \\____\\__/ // / /\\ \\ \\ / / /\\ \\_\\ / / /\\ \\ \\ / / /\\ \\_\\ / / /\\/_/ / / /\\/_/ \\ \\___\\ / / // / /\\ \\___\\ ", -\" / /\\/________// / / \\ \\ \\ / / /_/ / / / / / \\ \\_\\ / /_/_ \\/_/ / / / / / / \\__ / / / / \\ \\ \\ \\/___/ ", -\" / / /\\/_// / // / /___/ /\\ \\ / / /__\\/ / / / / \\/_/ / /____/\\ / / / / / / / / / / / / \\ \\ \\ ", -\" / / / / / // / /_____/ /\\ \\ / / /_____/ / / / / /\\____\\/ / / / ____ / / / ____ / / / / / /_ \\ \\ \\ ", -\"/ / / / / // /_________/\\ \\ \\ / / /\\ \\ \\ / / /________ / / /______ / /_/_/ ___/\\ / /_/_/ ___/\\ / / /___/ / //_/\\__/ / / ", -\"\\/_/ / / // / /_ __\\ \\_\\/ / / \\ \\ \\/ / /_________\\/ / /_______\\/_______/\\__\\//_______/\\__\\// / /____\\/ / \\ \\/___/ / ", -\" \\/_/ \\_\\___\\ /____/_/\\/_/ \\_\\/\\/____________/\\/__________/\\_______\\/ \\_______\\/ \\/_________/ \\_____\\/ ", -\] diff --git a/nvim/lsp.vim b/nvim/lsp.vim deleted file mode 100644 index 80ac5c2..0000000 --- a/nvim/lsp.vim +++ /dev/null @@ -1,163 +0,0 @@ -" . :-. . -" author: marcellus </var/spool/mail/marcellus> :*==*%%%#%+=---: -" :#%%%*+%#=+%*:. -" created: Sun, 14 May 2023 01:07:47 +0200 :%%%. . -*%- -" updated: Sun, 14 May 2023 01:08:07 +0200 =## . :#%*=:. -" -#*#%:=#%%%#- -" description: *:*%%%%%%%#- -" .-#%%%%%%+ -" %%%--%%%%*- -" ##%= +%%=:.. -" #* #%# -" :# -==* -" :: .: - -" . :-. . -" author: ratakor <ratakor@disroot.org> :*==*%%%#%+=---: -" :#%%%*+%#=+%*:. -" created: Sat, 06 May 2023 18:54:06 +0200 :%%%. . -*%- -" updated: Sat, 13 May 2023 13:16:03 +0200 =## . :#%*=:. -" -#*#%:=#%%%#- -" description: *:*%%%%%%%#- -" script to produce an header like this one .-#%%%%%%+ -" use .local/bin/updateheader to change the %%%--%%%%*- -" letter shown ##%= +%%=:.. -" #* #%# -" :# -==* -" :: .: - -let s:ascii = [ - \"", - \". :-. .", - \":*==*%%%#%+=---:", - \" :#%%%*+%#=+%*:.", - \" :%%%. . -*%-", - \" =## . :#%*=:.", - \" -#*#%:=#%%%#-", - \" *:*%%%%%%%#-", - \" .-#%%%%%%+", - \" %%%--%%%%*-", - \" ##%= +%%=:..", - \" #* #%#", - \" :# -==*", - \" :: .:", - \] - -let s:start = '#' -let s:mid = '#' -let s:end = '' -let s:size = 20 " ascii width -let s:length = len(s:ascii) " header length -let s:width = 80 " header width -let s:margin = 5 - -let s:types = { - \'\.c$\|\.h$\|\.cc$\|\.hh$\|\.cpp$\|\.hpp$\|\.cs$\|\.php$': - \['/*', ' *', ' */'], - \'\.htm$\|\.html$\|\.xml$': - \['<!--', ' ', '-->'], - \'\.js$': - \['//', '//', ''], - \'\.tex$': - \['%', '%', ''], - \'\.ml$\|\.mli$\|\.mll$\|\.mly$': - \['(*', ' ', '*)'], - \'\.vim$\|\vimrc$': - \['"', '"', ''], - \'\.f90$\|\.f95$\|\.f03$\|\.f$\|\.for$': - \['!', '!', ''], - \} - -function! s:filetype() - let l:f = expand("%:t") - - for type in keys(s:types) - if l:f =~ type - let s:start = s:types[type][0] - let s:mid = s:types[type][1] - let s:end = s:types[type][2] - endif - endfor - -endfunction - -function! s:textline(txt, pos) - let l:txt = strpart(a:txt, 0, s:width - s:margin * 2 - s:size) - - if a:pos == 1 - return s:start . repeat(' ', s:margin - strlen(s:start)) . l:txt . repeat(' ', s:width - s:margin * 2 - strlen(l:txt) - s:size) . s:ascii[a:pos] - elseif a:pos == s:length - return s:end - else - return s:mid . repeat(' ', s:margin - strlen(s:start)) . l:txt . repeat(' ', s:width - s:margin * 2 - strlen(l:txt) - s:size) . s:ascii[a:pos] -endfunction - -function! s:line(n) - if a:n == 2 - return s:textline("author: " . s:user() . " <" . s:mail() . ">", a:n) -" elseif a:n == 3 -" return s:textline("license: " . "ICS license", a:n) - elseif a:n == 4 - return s:textline("created: " . s:date(), a:n) - elseif a:n == 5 - return s:textline("updated: " . s:date(), a:n) - elseif a:n == 7 - return s:textline("description: ", a:n) - else - return s:textline('', a:n) - endif -endfunction - -function! s:user() - let l:user = $USER - if strlen(l:user) == 0 - let l:user = "user" - endif - return l:user -endfunction - -function! s:mail() - let l:mail = $MAIL - if strlen(l:mail) == 0 - let l:mail = "user@mail.org" - endif - return l:mail -endfunction - -function! s:date() - return strftime("%a, %d %b %Y %H:%M:%S %z") -endfunction - -function! s:insert() - let l:line = s:length - - while l:line > 0 - call append(0, s:line(l:line)) - let l:line = l:line - 1 - endwhile -endfunction - -function! s:update() - let line = 0 - call s:filetype() - if getline(5) =~ s:start . repeat(' ', s:margin - strlen(s:start)) . "updated: " - let line = 5 - elseif getline(6) =~ s:start . repeat(' ', s:margin - strlen(s:start)) . "updated: " - let line = 6 - endif - if line > 0 && &mod - call setline(line, s:line(5)) - return 0 - endif - return 1 -endfunction - -function! s:header() - if s:update() - call s:insert() - endif -endfunction - -command! Header call s:header () -autocmd BufNewFile * call s:header () -autocmd BufWritePre * call s:update () @@ -25,6 +25,7 @@ alias {atome_de_code,ato}="git commit -m" # voir bitoduc.fr, Commit alias {pousser,pous}="git push" alias {difference,ference}="git diff" alias {tronc,tr}="git log" +alias {resto,restau}="git restore" alias bri5="xrandr --output eDP-1 --brightness 0.5" alias bri6="xrandr --output eDP-1 --brightness 0.6" |
