merge: work

This commit is contained in:
AngeD 2022-08-06 14:20:20 +02:00
parent c2fc0f6955
commit 40b432676c
21 changed files with 1158 additions and 73 deletions

View File

@ -14,14 +14,14 @@
# Any items in the `env` entry below will be added as # Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables # environment variables. Some entries may override variables
# set by alacritty itself. # set by alacritty itself.
#env: env:
# TERM variable # TERM variable
# #
# This value is used to set the `$TERM` environment variable for # This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will # each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is # check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used. # available, otherwise `xterm-256color` is used.
#TERM: alacritty TERM: alacritty
window: window:
# Window dimensions (changes require restart) # Window dimensions (changes require restart)
@ -67,7 +67,7 @@ window:
# #
# Window opacity as a floating point number from `0.0` to `1.0`. # Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque. # The value `0.0` is completely transparent and `1.0` is opaque.
opacity: 0.9 opacity: 0.8
# Startup Mode (changes require restart) # Startup Mode (changes require restart)

654
.config/awesome/rc.lua Normal file
View File

@ -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 +5")
end,
{description = "raise volume", group = "shortcut"}
),
awful.key(
{},
"XF86AudioLowerVolume",
function()
awful.spawn("set-vol -5")
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

133
.config/awesome/theme.lua Normal file
View File

@ -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

1
.config/awesome/wallpapers Symbolic link
View File

@ -0,0 +1 @@
../wallpapers

View File

@ -0,0 +1,3 @@
" variables
setlocal shiftwidth=2
setlocal tabstop=2

View File

@ -0,0 +1,8 @@
" variables
let g:black_linelength=79
" plugins
lua require'lspconfig'.pyright.setup{}
" keybindings
nnoremap <C-f> :Black<CR>

View File

@ -0,0 +1,7 @@
" variables
setlocal shiftwidth=2
setlocal tabstop=2
" packages
" keybindings

View File

@ -10,58 +10,25 @@ set smartcase
set list set list
set mouse=a set mouse=a
set cc=81 set cc=81
set suffixes+=.pyc
set foldmethod=indent
set nofoldenable
set foldlevel=99
set grepprg=grep\ -rn\ $*
set listchars=tab:>\ ,multispace:\|⋅⋅⋅,trail:⋅,nbsp:+
au BufWrite * :%s/\s\+$//e
" packages " packages
so ~/.config/nvim/epitech_header.vim so ~/.config/nvim/epitech_header.vim
packadd! nvim-treesitter packadd! nvim-treesitter
lua require('nvim-treesitter.configs').setup{highlight = {enable = true}} lua require('nvim-treesitter.configs').setup{highlight = {enable = true}}
"packadd! nvim-lspconfig packadd! black
"lua <<EOF
" -- Mappings. packadd! nvim-lspconfig
" -- See `:help vim.diagnostic.*` for documentation on any of the below functions
" local opts = { noremap=true, silent=true }
" vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
" vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
" vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
" vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', 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 <c-x><c-o>
" 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', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
" vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', 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 " keybindings
nnoremap <C-c><C-h> :Header<CR> nnoremap <C-c><C-h> :Header<CR>
@ -71,3 +38,7 @@ nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l nnoremap <C-l> <C-w>l
nnoremap gf gF
lua vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)

View File

@ -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

View File

@ -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(<f-args>)
command! BlackUpgrade :call black#BlackUpgrade()
command! BlackVersion :call black#BlackVersion()

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

View File

@ -2,7 +2,7 @@
# Initialization code that may require console input (password prompts, [y/n] # Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below. # 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 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 fi
# Path to your oh-my-zsh installation. # Path to your oh-my-zsh installation.
@ -76,7 +76,7 @@ CASE_SENSITIVE="true"
# Add wisely, as too many plugins slow down shell startup. # Add wisely, as too many plugins slow down shell startup.
plugins=(git) plugins=(git)
source $ZSH/oh-my-zsh.sh . $ZSH/oh-my-zsh.sh
# User configuration # User configuration
@ -96,6 +96,10 @@ source $ZSH/oh-my-zsh.sh
# export ARCHFLAGS="-arch x86_64" # export ARCHFLAGS="-arch x86_64"
# To customize prompt, run `p10k configure` or edit ~/.config/zsh/.p10k.zsh. # 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"/.zsh_aliases
. "$ZDOTDIR"/.kubectl_aliases
. "$ZDOTDIR"/.docker_aliases

View File

@ -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_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config" export XDG_CONFIG_HOME="$HOME/.config"

View File

@ -4,11 +4,10 @@ To clone the repo :
```console ```console
# pacman -Syu --needed zsh sway firefox alacritty neovim # pacman -Syu --needed zsh sway firefox alacritty neovim
$ git clone --bare git@github.com:AustralEpitech/.dotfiles.git ~/.dotfiles $ git clone --bare https://github.com/AustralEpitech/.dotfiles.git ~/.dotfiles
$ alias config='git --git-dir=$HOME/.dotfiles --work-tree=$HOME' $ alias config='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
$ config checkout $ config checkout # remove conflicted files and re-run the command
# remove conflicted files and re-run the command
$ config submodule update --init --recursive --remote $ config submodule update --init --recursive --remote
$ config config status.showUntrackedFiles no $ config config status.showUntrackedFiles no

View File

@ -1,2 +1,2 @@
#!/usr/bin/bash #!/bin/bash
docker run -it --rm -v "$PWD":/tmp epitechcontent/epitest-docker:latest /bin/bash docker run -it --rm -v "$PWD":/tmp epitechcontent/epitest-docker:latest bash

View File

@ -1,4 +1,4 @@
#!/usr/bin/bash #!/bin/bash
set -e set -e
# counts target = 8182 ~ 25cm # counts target = 8182 ~ 25cm

View File

@ -1,4 +1,4 @@
#!/usr/bin/bash #!/bin/bash
set -e set -e
usage() { usage() {

View File

@ -1,4 +1,4 @@
#!/usr/bin/bash #!/bin/bash
usage() { usage() {
echo "Usage: $0 /dev/pts/{tty_nb}" echo "Usage: $0 /dev/pts/{tty_nb}"
@ -11,8 +11,7 @@ elif ! [ -w "$1" ]; then
usage usage
fi fi
( (set -e
set -e
asciiquarium & asciiquarium &
cmatrix -ab & cmatrix -ab &

View File

@ -1,4 +1,4 @@
#!/usr/bin/bash #!/bin/bash
set -e set -e
CUR_LIGHT="$(set-light "$@")" CUR_LIGHT="$(set-light "$@")"

View File

@ -1,4 +1,4 @@
#!/usr/bin/bash #!/bin/bash
set -e set -e
shopt -s extglob nullglob shopt -s extglob nullglob
@ -17,11 +17,11 @@ CUR="$(cat "$CUR_FILE" || echo 50)"
set -e set -e
case "${1:0:1}" in case "${1:0:1}" in
"") '')
exit 1 exit 1
;; ;;
"+"|"-") '+'|'-')
NEW="$((CUR + $1))" NEW="$((CUR + "$1"))"
;; ;;
*) *)
NEW="$1" NEW="$1"

View File

@ -1,24 +1,25 @@
#!/usr/bin/bash #!/bin/bash
set -e set -e
CUR="$(pactl get-sink-volume 0 | awk '$1 == "Volume:" {print substr($5, 1, length($5) - 1)}')" CUR="$(pactl get-sink-volume "@DEFAULT_SINK@" | awk '$1 == "Volume:" {print substr($5, 1, length($5) - 1)}')"
SHIFT="${1}" CUR="$((CUR - CUR % "$1"))"
case "${1:0:1}" in case "${1:0:1}" in
'') '')
exit 1 exit 1
;; ;;
'+'|'-') '+'|'-')
NEW="$((CUR - CUR % SHIFT + SHIFT))" NEW="$((CUR + "$1"))"
;; ;;
*) *)
NEW="$1" NEW="$1"
;; ;;
esac esac
[ "$NEW" -lt 0 ] && NEW=0
[ "$NEW" -gt 100 ] && NEW=100 [ "$NEW" -gt 100 ] && NEW=100
pactl set-sink-volume 0 "$NEW"% pactl set-sink-volume 0 "$NEW%"
pactl set-sink-mute 0 0 pactl set-sink-mute 0 0
echo "$NEW" echo "$NEW"