From 4e1425e61dee0c4f3b30f94c8c63a1328e2acb5f Mon Sep 17 00:00:00 2001 From: aduhayon Date: Wed, 20 Jul 2022 09:14:11 +0200 Subject: [PATCH] feat: work configuration --- .config/alacritty.yml | 6 +- .config/awesome/rc.lua | 654 ++++++++++++++++++ .config/awesome/theme.lua | 133 ++++ .config/awesome/wallpapers | 1 + .config/nvim/ftplugin/html.vim | 3 + .config/nvim/ftplugin/python.vim | 5 + .config/nvim/ftplugin/yaml.vim | 7 + .config/nvim/init.vim | 57 +- .../pack/plugins/opt/black/autoload/black.vim | 223 ++++++ .../pack/plugins/opt/black/plugin/black.vim | 80 +++ .config/nvim/pack/plugins/opt/nvim-lspconfig | 2 +- .config/nvim/pack/plugins/opt/nvim-treesitter | 2 +- .config/wallpapers/debian11.png | Bin 0 -> 111116 bytes .config/zsh/.zsh_aliases | 9 +- .config/zsh/.zshrc | 9 +- .zshenv | 4 +- bin/epitest | 2 +- bin/mouse_360 | 2 +- bin/scanpdf | 2 +- bin/script | 2 +- bin/set-ddc-light | 2 +- bin/set-light | 4 +- bin/set-vol | 12 +- 23 files changed, 1150 insertions(+), 71 deletions(-) create mode 100644 .config/awesome/rc.lua create mode 100644 .config/awesome/theme.lua create mode 120000 .config/awesome/wallpapers create mode 100644 .config/nvim/ftplugin/html.vim create mode 100644 .config/nvim/ftplugin/python.vim create mode 100644 .config/nvim/ftplugin/yaml.vim create mode 100644 .config/nvim/pack/plugins/opt/black/autoload/black.vim create mode 100644 .config/nvim/pack/plugins/opt/black/plugin/black.vim create mode 100644 .config/wallpapers/debian11.png diff --git a/.config/alacritty.yml b/.config/alacritty.yml index c16e722..939552d 100644 --- a/.config/alacritty.yml +++ b/.config/alacritty.yml @@ -14,14 +14,14 @@ # Any items in the `env` entry below will be added as # environment variables. Some entries may override variables # set by alacritty itself. -#env: +env: # TERM variable # # This value is used to set the `$TERM` environment variable for # each instance of Alacritty. If it is not present, alacritty will # check the local terminfo database and use `alacritty` if it is # available, otherwise `xterm-256color` is used. - #TERM: alacritty + TERM: alacritty window: # Window dimensions (changes require restart) @@ -157,7 +157,7 @@ font: #style: Bold Italic # Point size - size: 14.0 + #size: 11.0 # Offset is the extra space around each character. `offset.y` can be thought # of as modifying the line spacing, and `offset.x` as modifying the letter diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua new file mode 100644 index 0000000..d0c0c44 --- /dev/null +++ b/.config/awesome/rc.lua @@ -0,0 +1,654 @@ +-- 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") + +-- {{{ Error handling +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_configuration_dir() .. "theme.lua") + +terminal = "alacritty" +editor = os.getenv("EDITOR") or "nvim" +editor_cmd = terminal .. " -e " .. editor + +browser = "firefox" +files = "thunar" + +lock = "i3lock -ftni" .. gears.filesystem.get_configuration_dir() .. "wallpapers/debian11.png" + +modkey = "Mod4" + +awful.layout.layouts = { + awful.layout.suit.tile, + awful.layout.suit.max, +} +-- }}} + +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it +-- }}} + +-- {{{ 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 + ) +) + +local tasklist_buttons = gears.table.join( + awful.button( + {}, + 1, + function(c) + c.minimized = false + c:emit_signal("request::activate", "tasklist", {raise = true}) + end + ), + awful.button( + {}, + 3, + function() + awful.menu.client_list({theme = {width = 250}}) + end + ) +) + +local function set_wallpaper(s) + 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( + {"TTY", "WEB", "DEV", "SBX", "GAM", "DOC", "GFX", "SRV", "ETC"}, + s, + awful.layout.layouts[1] + ) + + -- 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, + s.mytaglist + }, + s.mytasklist, -- Middle widget + { + -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + mytextclock + }, + } + end +) +-- }}} + +-- {{{ Key bindings +globalkeys = gears.table.join( + awful.key( + {modkey}, + "s", + hotkeys_popup.show_help, + {description = "show help", group = "awesome"} + ), + 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"} + ), + -- 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"} + ), + -- Standard program + awful.key( + {modkey}, + "Return", + function() + awful.spawn(terminal, {tag = mouse.screen.selected_tag}) + end, + {description = "open a terminal", group = "launcher"} + ), + awful.key( + {modkey}, + "e", + function() + awful.spawn(files, {tag = mouse.screen.selected_tag}) + end, + {description = "open file manager", group = "launcher"} + ), + awful.key( + {modkey}, + "b", + function() + awful.spawn(browser, {tag = mouse.screen.selected_tag}) + end, + {description = "open browser", group = "launcher"} + ), + awful.key( + {modkey}, + "l", + function() + awful.spawn(lock) + end, + {description = "lock screen", group = "awesome"} + ), + awful.key( + {modkey, "Shift"}, + "r", + awesome.restart, + {description = "reload awesome", group = "awesome"} + ), + awful.key( + {modkey, "Shift"}, + "q", + awesome.quit, + {description = "quit awesome", group = "awesome"} + ), + awful.key( + {modkey}, + "t", + function() + awful.layout.set(awful.layout.layouts[1]) + end, + {description = "set tiling layout", group = "layout"} + ), + awful.key( + {modkey}, + "m", + function() + awful.layout.set(awful.layout.layouts[2]) + end, + {description = "set max layout", group = "layout"} + ), + -- Menubar + awful.key( + {modkey}, + "r", + function() + menubar.show() + end, + {description = "show the menubar", group = "launcher"} + ), + -- Shortcuts + awful.key( + {}, + "XF86AudioRaiseVolume", + function() + awful.spawn("set-vol +2") + end, + {description = "raise volume", group = "shortcut"} + ), + awful.key( + {}, + "XF86AudioLowerVolume", + function() + awful.spawn("set-vol -2") + end, + {description = "lower volume", group = "shortcut"} + ), + awful.key( + {}, + "XF86AudioMute", + function() + awful.spawn("pactl set-sink-mute 0 toggle") + end, + {description = "mute volume", group = "shortcut"} + ), + awful.key( + {}, + "XF86AudioPlay", + function() + awful.spawn("playerctl play-pause") + end, + {description = "play/pause media", group = "shortcut"} + ), + awful.key( + {}, + "XF86AudioPrev", + function() + awful.spawn("playerctl previous") + end, + {description = "previous media", group = "shortcut"} + ), + awful.key( + {}, + "XF86AudioNext", + function() + awful.spawn("playerctl next") + end, + {description = "next media", group = "shortcut"} + ), + awful.key( + {}, + "XF86MonBrightnessUp", + function() + awful.spawn("set-light +10") + end, + {description = "raise brightness", group = "shortcut"} + ), + awful.key( + {}, + "XF86MonBrightnessDown", + function() + awful.spawn("set-light -10") + end, + {description = "lower brightness", group = "shortcut"} + ) +) + +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}, + "space", + awful.client.floating.toggle, + {description = "toggle floating", group = "client"} + ), + awful.key( + {modkey}, + "o", + function(c) + c:move_to_screen() + end, + {description = "move to screen", 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"} + ), + -- 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"} + ) + ) +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, + maximized = false, + 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 = {"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.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 +) +-- }}} + +apps = { + "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1", + "xset dpms 300 15", -- dim screen after 5 min and lock 15 sec after + "xss-lock -- " .. lock, + "picom", + "nm-applet", + "killall cbatticon", + "cbatticon BAT0 -i symbolic", + "numlockx", +} + +for _, app in ipairs(apps) do + awful.spawn.once(app) +end diff --git a/.config/awesome/theme.lua b/.config/awesome/theme.lua new file mode 100644 index 0000000..d84806d --- /dev/null +++ b/.config/awesome/theme.lua @@ -0,0 +1,133 @@ +--------------------------- +-- Default awesome theme -- +--------------------------- + +local theme_assets = require("beautiful.theme_assets") +local xresources = require("beautiful.xresources") +local dpi = xresources.apply_dpi + +local gfs = require("gears.filesystem") +local themes_path = gfs.get_themes_dir() + +local wallpapers_path = gfs.get_configuration_dir() .. "wallpapers/" + +local theme = {} + +theme.font = "sans 8" + +theme.bg_normal = "#222222" +theme.bg_focus = "#535d6c" +theme.bg_urgent = "#ff0000" +theme.bg_minimize = "#444444" +theme.bg_systray = theme.bg_normal + +theme.fg_normal = "#aaaaaa" +theme.fg_focus = "#ffffff" +theme.fg_urgent = "#ffffff" +theme.fg_minimize = "#ffffff" + +theme.useless_gap = dpi(4) +theme.border_width = dpi(2) +theme.border_normal = "#000000" +theme.border_focus = "#e00000" +theme.border_marked = "#91231c" + +-- There are other variable sets +-- overriding the default one when +-- defined, the sets are: +-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] +-- tasklist_[bg|fg]_[focus|urgent] +-- titlebar_[bg|fg]_[normal|focus] +-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] +-- mouse_finder_[color|timeout|animate_timeout|radius|factor] +-- prompt_[fg|bg|fg_cursor|bg_cursor|font] +-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] +-- Example: +--theme.taglist_bg_focus = "#ff0000" + +-- Generate taglist squares: +local taglist_square_size = dpi(4) +theme.taglist_squares_sel = theme_assets.taglist_squares_sel( + taglist_square_size, theme.fg_normal +) +theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( + taglist_square_size, theme.fg_normal +) + +-- Variables set for theming notifications: +-- notification_font +-- notification_[bg|fg] +-- notification_[width|height|margin] +-- notification_[border_color|border_width|shape|opacity] + +-- Variables set for theming the menu: +-- menu_[bg|fg]_[normal|focus] +-- menu_[border_color|border_width] +theme.menu_submenu_icon = themes_path.."default/submenu.png" +theme.menu_height = dpi(15) +theme.menu_width = dpi(100) + +-- You can add as many variables as +-- you wish and access them by using +-- beautiful.variable in your rc.lua +--theme.bg_widget = "#cc0000" + +-- Define the image to load +theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png" +theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png" + +theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png" + +theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png" + +theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png" + +theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png" + +theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png" + +theme.wallpaper = wallpapers_path .. "landscape.png" + +-- You can use your own layout icons like this: +theme.layout_fairh = themes_path.."default/layouts/fairhw.png" +theme.layout_fairv = themes_path.."default/layouts/fairvw.png" +theme.layout_floating = themes_path.."default/layouts/floatingw.png" +theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png" +theme.layout_max = themes_path.."default/layouts/maxw.png" +theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png" +theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png" +theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png" +theme.layout_tile = themes_path.."default/layouts/tilew.png" +theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png" +theme.layout_spiral = themes_path.."default/layouts/spiralw.png" +theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png" +theme.layout_cornernw = themes_path.."default/layouts/cornernww.png" +theme.layout_cornerne = themes_path.."default/layouts/cornernew.png" +theme.layout_cornersw = themes_path.."default/layouts/cornersww.png" +theme.layout_cornerse = themes_path.."default/layouts/cornersew.png" + +-- Generate Awesome icon: +theme.awesome_icon = theme_assets.awesome_icon( + theme.menu_height, theme.bg_focus, theme.fg_focus +) + +-- Define the icon theme for application icons. If not set then the icons +-- from /usr/share/icons and /usr/share/icons/hicolor will be used. +theme.icon_theme = nil + +return theme + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/.config/awesome/wallpapers b/.config/awesome/wallpapers new file mode 120000 index 0000000..114c16e --- /dev/null +++ b/.config/awesome/wallpapers @@ -0,0 +1 @@ +../wallpapers \ No newline at end of file diff --git a/.config/nvim/ftplugin/html.vim b/.config/nvim/ftplugin/html.vim new file mode 100644 index 0000000..ce69247 --- /dev/null +++ b/.config/nvim/ftplugin/html.vim @@ -0,0 +1,3 @@ +" variables +setlocal shiftwidth=2 +setlocal tabstop=2 diff --git a/.config/nvim/ftplugin/python.vim b/.config/nvim/ftplugin/python.vim new file mode 100644 index 0000000..cae2eb2 --- /dev/null +++ b/.config/nvim/ftplugin/python.vim @@ -0,0 +1,5 @@ +" variables +let g:black_linelength=79 + +" keybindings +nnoremap :Black diff --git a/.config/nvim/ftplugin/yaml.vim b/.config/nvim/ftplugin/yaml.vim new file mode 100644 index 0000000..071756e --- /dev/null +++ b/.config/nvim/ftplugin/yaml.vim @@ -0,0 +1,7 @@ +" variables +setlocal shiftwidth=2 +setlocal tabstop=2 + +" packages + +" keybindings diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index b32c429..3473659 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -1,5 +1,5 @@ " variables -set path+='**' +set path+=**, set expandtab set smartindent set shiftwidth=4 @@ -9,59 +9,20 @@ set ignorecase set smartcase set list set mouse=a -set cc=81 +set cc=80 +set suffixes+=.pyc +set foldmethod=indent +set nofoldenable +set foldlevel=99 + +au BufWrite * :%s/\s\+$//e " packages so ~/.config/nvim/epitech_header.vim packadd! nvim-treesitter lua require('nvim-treesitter.configs').setup{highlight = {enable = true}} +packadd! black -"packadd! nvim-lspconfig -"lua <e', 'lua vim.diagnostic.open_float()', opts) -" vim.api.nvim_set_keymap('n', '[d', 'lua vim.diagnostic.goto_prev()', opts) -" vim.api.nvim_set_keymap('n', ']d', 'lua vim.diagnostic.goto_next()', opts) -" vim.api.nvim_set_keymap('n', 'q', 'lua vim.diagnostic.setloclist()', opts) -" -" -- Use an on_attach function to only map the following keys -" -- after the language server attaches to the current buffer -" local on_attach = function(client, bufnr) -" -- Enable completion triggered by -" vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -" -" -- Mappings. -" -- See `:help vim.lsp.*` for documentation on any of the below functions -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', 'lua vim.lsp.buf.declaration()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', 'lua vim.lsp.buf.definition()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', 'lua vim.lsp.buf.implementation()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', '', 'lua vim.lsp.buf.signature_help()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'D', 'lua vim.lsp.buf.type_definition()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'rn', 'lua vim.lsp.buf.rename()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'ca', 'lua vim.lsp.buf.code_action()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', 'lua vim.lsp.buf.references()', opts) -" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'f', 'lua vim.lsp.buf.formatting()', opts) -" end -" -" -- Use a loop to conveniently call 'setup' on multiple servers and -" -- map buffer local keybindings when the language server attaches -" local servers = { 'clangd' } -" for _, lsp in pairs(servers) do -" require('lspconfig')[lsp].setup { -" on_attach = on_attach, -" flags = { -" -- This will be the default in neovim 0.7+ -" debounce_text_changes = 150, -" } -" } -" end -"EOF " keybindings nnoremap :Header diff --git a/.config/nvim/pack/plugins/opt/black/autoload/black.vim b/.config/nvim/pack/plugins/opt/black/autoload/black.vim new file mode 100644 index 0000000..66c5b9c --- /dev/null +++ b/.config/nvim/pack/plugins/opt/black/autoload/black.vim @@ -0,0 +1,223 @@ +python3 << EndPython3 +import collections +import os +import sys +import vim + +def strtobool(text): + if text.lower() in ['y', 'yes', 't', 'true' 'on', '1']: + return True + if text.lower() in ['n', 'no', 'f', 'false' 'off', '0']: + return False + raise ValueError(f"{text} is not convertable to boolean") + +class Flag(collections.namedtuple("FlagBase", "name, cast")): + @property + def var_name(self): + return self.name.replace("-", "_") + + @property + def vim_rc_name(self): + name = self.var_name + if name == "line_length": + name = name.replace("_", "") + return "g:black_" + name + + +FLAGS = [ + Flag(name="line_length", cast=int), + Flag(name="fast", cast=strtobool), + Flag(name="skip_string_normalization", cast=strtobool), + Flag(name="quiet", cast=strtobool), + Flag(name="skip_magic_trailing_comma", cast=strtobool), +] + + +def _get_python_binary(exec_prefix): + try: + default = vim.eval("g:pymode_python").strip() + except vim.error: + default = "" + if default and os.path.exists(default): + return default + if sys.platform[:3] == "win": + return exec_prefix / 'python.exe' + return exec_prefix / 'bin' / 'python3' + +def _get_pip(venv_path): + if sys.platform[:3] == "win": + return venv_path / 'Scripts' / 'pip.exe' + return venv_path / 'bin' / 'pip' + +def _get_virtualenv_site_packages(venv_path, pyver): + if sys.platform[:3] == "win": + return venv_path / 'Lib' / 'site-packages' + return venv_path / 'lib' / f'python{pyver[0]}.{pyver[1]}' / 'site-packages' + +def _initialize_black_env(upgrade=False): + pyver = sys.version_info[:3] + if pyver < (3, 6, 2): + print("Sorry, Black requires Python 3.6.2+ to run.") + return False + + from pathlib import Path + import subprocess + import venv + virtualenv_path = Path(vim.eval("g:black_virtualenv")).expanduser() + virtualenv_site_packages = str(_get_virtualenv_site_packages(virtualenv_path, pyver)) + first_install = False + if not virtualenv_path.is_dir(): + print('Please wait, one time setup for Black.') + _executable = sys.executable + _base_executable = getattr(sys, "_base_executable", _executable) + try: + executable = str(_get_python_binary(Path(sys.exec_prefix))) + sys.executable = executable + sys._base_executable = executable + print(f'Creating a virtualenv in {virtualenv_path}...') + print('(this path can be customized in .vimrc by setting g:black_virtualenv)') + venv.create(virtualenv_path, with_pip=True) + except Exception: + print('Encountered exception while creating virtualenv (see traceback below).') + print(f'Removing {virtualenv_path}...') + import shutil + shutil.rmtree(virtualenv_path) + raise + finally: + sys.executable = _executable + sys._base_executable = _base_executable + first_install = True + if first_install: + print('Installing Black with pip...') + if upgrade: + print('Upgrading Black with pip...') + if first_install or upgrade: + subprocess.run([str(_get_pip(virtualenv_path)), 'install', '-U', 'black'], stdout=subprocess.PIPE) + print('DONE! You are all set, thanks for waiting ✨ 🍰 ✨') + if first_install: + print('Pro-tip: to upgrade Black in the future, use the :BlackUpgrade command and restart Vim.\n') + if virtualenv_site_packages not in sys.path: + sys.path.insert(0, virtualenv_site_packages) + return True + +if _initialize_black_env(): + import black + import time + +def get_target_version(tv): + if isinstance(tv, black.TargetVersion): + return tv + ret = None + try: + ret = black.TargetVersion[tv.upper()] + except KeyError: + print(f"WARNING: Target version {tv!r} not recognized by Black, using default target") + return ret + +def Black(**kwargs): + """ + kwargs allows you to override ``target_versions`` argument of + ``black.FileMode``. + + ``target_version`` needs to be cleaned because ``black.FileMode`` + expects the ``target_versions`` argument to be a set of TargetVersion enums. + + Allow kwargs["target_version"] to be a string to allow + to type it more quickly. + + Using also target_version instead of target_versions to remain + consistent to Black's documentation of the structure of pyproject.toml. + """ + start = time.time() + configs = get_configs() + + black_kwargs = {} + if "target_version" in kwargs: + target_version = kwargs["target_version"] + + if not isinstance(target_version, (list, set)): + target_version = [target_version] + target_version = set(filter(lambda x: x, map(lambda tv: get_target_version(tv), target_version))) + black_kwargs["target_versions"] = target_version + + mode = black.FileMode( + line_length=configs["line_length"], + string_normalization=not configs["skip_string_normalization"], + is_pyi=vim.current.buffer.name.endswith('.pyi'), + magic_trailing_comma=not configs["skip_magic_trailing_comma"], + **black_kwargs, + ) + quiet = configs["quiet"] + + buffer_str = '\n'.join(vim.current.buffer) + '\n' + try: + new_buffer_str = black.format_file_contents( + buffer_str, + fast=configs["fast"], + mode=mode, + ) + except black.NothingChanged: + if not quiet: + print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)') + except Exception as exc: + print(exc) + else: + current_buffer = vim.current.window.buffer + cursors = [] + for i, tabpage in enumerate(vim.tabpages): + if tabpage.valid: + for j, window in enumerate(tabpage.windows): + if window.valid and window.buffer == current_buffer: + cursors.append((i, j, window.cursor)) + vim.current.buffer[:] = new_buffer_str.split('\n')[:-1] + for i, j, cursor in cursors: + window = vim.tabpages[i].windows[j] + try: + window.cursor = cursor + except vim.error: + window.cursor = (len(window.buffer), 0) + if not quiet: + print(f'Reformatted in {time.time() - start:.4f}s.') + +def get_configs(): + filename = vim.eval("@%") + path_pyproject_toml = black.find_pyproject_toml((filename,)) + if path_pyproject_toml: + toml_config = black.parse_pyproject_toml(path_pyproject_toml) + else: + toml_config = {} + + return { + flag.var_name: toml_config.get(flag.name, flag.cast(vim.eval(flag.vim_rc_name))) + for flag in FLAGS + } + + +def BlackUpgrade(): + _initialize_black_env(upgrade=True) + +def BlackVersion(): + print(f'Black, version {black.__version__} on Python {sys.version}.') + +EndPython3 + +function black#Black(...) + let kwargs = {} + for arg in a:000 + let arg_list = split(arg, '=') + let kwargs[arg_list[0]] = arg_list[1] + endfor +python3 << EOF +import vim +kwargs = vim.eval("kwargs") +EOF + :py3 Black(**kwargs) +endfunction + +function black#BlackUpgrade() + :py3 BlackUpgrade() +endfunction + +function black#BlackVersion() + :py3 BlackVersion() +endfunction diff --git a/.config/nvim/pack/plugins/opt/black/plugin/black.vim b/.config/nvim/pack/plugins/opt/black/plugin/black.vim new file mode 100644 index 0000000..3fc11fe --- /dev/null +++ b/.config/nvim/pack/plugins/opt/black/plugin/black.vim @@ -0,0 +1,80 @@ +" black.vim +" Author: Łukasz Langa +" Created: Mon Mar 26 23:27:53 2018 -0700 +" Requires: Vim Ver7.0+ +" Version: 1.2 +" +" Documentation: +" This plugin formats Python files. +" +" History: +" 1.0: +" - initial version +" 1.1: +" - restore cursor/window position after formatting +" 1.2: +" - use autoload script + +if exists("g:load_black") + finish +endif + +if v:version < 700 || !has('python3') + func! __BLACK_MISSING() + echo "The black.vim plugin requires vim7.0+ with Python 3.6 support." + endfunc + command! Black :call __BLACK_MISSING() + command! BlackUpgrade :call __BLACK_MISSING() + command! BlackVersion :call __BLACK_MISSING() + finish +endif + +let g:load_black = "py1.0" +if !exists("g:black_virtualenv") + if has("nvim") + let g:black_virtualenv = "~/.local/share/nvim/black" + else + let g:black_virtualenv = "~/.vim/black" + endif +endif +if !exists("g:black_fast") + let g:black_fast = 0 +endif +if !exists("g:black_linelength") + let g:black_linelength = 88 +endif +if !exists("g:black_skip_string_normalization") + if exists("g:black_string_normalization") + let g:black_skip_string_normalization = !g:black_string_normalization + else + let g:black_skip_string_normalization = 0 + endif +endif +if !exists("g:black_skip_magic_trailing_comma") + if exists("g:black_magic_trailing_comma") + let g:black_skip_magic_trailing_comma = !g:black_magic_trailing_comma + else + let g:black_skip_magic_trailing_comma = 0 + endif +endif +if !exists("g:black_quiet") + let g:black_quiet = 0 +endif +if !exists("g:black_target_version") + let g:black_target_version = "" +endif + +function BlackComplete(ArgLead, CmdLine, CursorPos) + return [ +\ 'target_version=py27', +\ 'target_version=py36', +\ 'target_version=py37', +\ 'target_version=py38', +\ 'target_version=py39', +\ 'target_version=py310', +\ ] +endfunction + +command! -nargs=* -complete=customlist,BlackComplete Black :call black#Black() +command! BlackUpgrade :call black#BlackUpgrade() +command! BlackVersion :call black#BlackVersion() diff --git a/.config/nvim/pack/plugins/opt/nvim-lspconfig b/.config/nvim/pack/plugins/opt/nvim-lspconfig index 0da8c12..3479473 160000 --- a/.config/nvim/pack/plugins/opt/nvim-lspconfig +++ b/.config/nvim/pack/plugins/opt/nvim-lspconfig @@ -1 +1 @@ -Subproject commit 0da8c129dc27e70770c3247c44988bbf0af6b1af +Subproject commit 347947355ba0a15d803cbd61b18f8bb8f401c793 diff --git a/.config/nvim/pack/plugins/opt/nvim-treesitter b/.config/nvim/pack/plugins/opt/nvim-treesitter index b46cb03..36830c4 160000 --- a/.config/nvim/pack/plugins/opt/nvim-treesitter +++ b/.config/nvim/pack/plugins/opt/nvim-treesitter @@ -1 +1 @@ -Subproject commit b46cb0389d92abffa516be487e7ea0610e8ce35b +Subproject commit 36830c4ce838f4e7b19d95d6099af1311f618c26 diff --git a/.config/wallpapers/debian11.png b/.config/wallpapers/debian11.png new file mode 100644 index 0000000000000000000000000000000000000000..45b736dd5ecd5c8bfbb35c52dab2234b33e0662a GIT binary patch literal 111116 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 RN&Ey#@}91KF6*2UngC=g7Nr0H literal 0 HcmV?d00001 diff --git a/.config/zsh/.zsh_aliases b/.config/zsh/.zsh_aliases index 04f7977..15cae3e 100644 --- a/.config/zsh/.zsh_aliases +++ b/.config/zsh/.zsh_aliases @@ -1,10 +1,13 @@ +alias sudo='sudo ' alias pls='sudo ' alias cls='clear && l' alias config="git --git-dir=$HOME/.dotfiles --work-tree=$HOME" -alias wconfig="$EDITOR $HOME/.config/sway" +alias wconfig="$EDITOR $HOME/.config/awesome" alias zshconf="$EDITOR $ZDOTDIR/.zshrc && . $ZDOTDIR/.zshrc" -alias startgui="exec sway 2> $HOME/sway.log" -alias minecraft='DRI_PRIME=1 minecraft-launcher' +alias startgui='startx' alias umnt='sudo umount /mnt -R' alias vi="$EDITOR" alias tmp="cd $(mktemp -d)" + +alias k="kubectl" +alias dc=docker-compose diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index dfb952b..2341303 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -2,7 +2,7 @@ # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then - source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" + . "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # Path to your oh-my-zsh installation. @@ -76,7 +76,7 @@ CASE_SENSITIVE="true" # Add wisely, as too many plugins slow down shell startup. plugins=(git) -source $ZSH/oh-my-zsh.sh +. $ZSH/oh-my-zsh.sh # User configuration @@ -96,6 +96,9 @@ source $ZSH/oh-my-zsh.sh # export ARCHFLAGS="-arch x86_64" # To customize prompt, run `p10k configure` or edit ~/.config/zsh/.p10k.zsh. -[[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh +[[ ! -f ~/.config/zsh/.p10k.zsh ]] || . ~/.config/zsh/.p10k.zsh +eval "$(pyenv init -)" +pyenv shell 3.10.5 . "$ZDOTDIR"/.zsh_aliases +. "$ZDOTDIR"/.kubectl_aliases diff --git a/.zshenv b/.zshenv index a0e3527..1e9e294 100644 --- a/.zshenv +++ b/.zshenv @@ -1,4 +1,6 @@ -path=(~/bin ~/.local/bin $path) +export PYENV_ROOT="$HOME/.pyenv" + +path=(~/bin ~/.local/bin $PYENV_ROOT/bin $path) export XDG_CACHE_HOME="$HOME/.cache" export XDG_CONFIG_HOME="$HOME/.config" diff --git a/bin/epitest b/bin/epitest index 542cf1e..37f5b2c 100755 --- a/bin/epitest +++ b/bin/epitest @@ -1,2 +1,2 @@ -#!/usr/bin/bash +#!/bin/bash docker run -it --rm -v "$PWD":/tmp epitechcontent/epitest-docker:latest /bin/bash diff --git a/bin/mouse_360 b/bin/mouse_360 index 34c5510..f70b062 100755 --- a/bin/mouse_360 +++ b/bin/mouse_360 @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash set -e # counts target = 8182 ~ 25cm diff --git a/bin/scanpdf b/bin/scanpdf index 9922b99..b411363 100755 --- a/bin/scanpdf +++ b/bin/scanpdf @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash set -e usage() { diff --git a/bin/script b/bin/script index 643ad4c..6ca7fcb 100755 --- a/bin/script +++ b/bin/script @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash usage() { echo "Usage: $0 /dev/pts/{tty_nb}" diff --git a/bin/set-ddc-light b/bin/set-ddc-light index 22aa591..fb3b04c 100755 --- a/bin/set-ddc-light +++ b/bin/set-ddc-light @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash set -e CUR_LIGHT="$(set-light "$@")" diff --git a/bin/set-light b/bin/set-light index 8dddb15..bf9ea01 100755 --- a/bin/set-light +++ b/bin/set-light @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash set -e shopt -s extglob nullglob @@ -21,7 +21,7 @@ case "${1:0:1}" in exit 1 ;; "+"|"-") - NEW="$((CUR + $1))" + NEW="$((CUR + "$1"))" ;; *) NEW="$1" diff --git a/bin/set-vol b/bin/set-vol index 4eaddf8..a5acac1 100755 --- a/bin/set-vol +++ b/bin/set-vol @@ -1,21 +1,25 @@ -#!/usr/bin/bash +#!/bin/bash set -e -CUR="$(pactl get-sink-volume 0 | awk '$1 == "Volume:" {print substr($5, 1, length($5) - 1)}')" -SHIFT="${1}" +CUR_FILE=/var/tmp/current_volume + +set +e +CUR="$(cat "$CUR_FILE" || echo 50)" +set -e case "${1:0:1}" in '') exit 1 ;; '+'|'-') - NEW="$((CUR - CUR % SHIFT + SHIFT))" + NEW="$((CUR + "$1"))" ;; *) NEW="$1" ;; esac +[ "$NEW" -lt 0 ] && NEW=0 [ "$NEW" -gt 100 ] && NEW=100 pactl set-sink-volume 0 "$NEW"%