merge: work
This commit is contained in:
parent
c2fc0f6955
commit
40b432676c
@ -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
654
.config/awesome/rc.lua
Normal 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
133
.config/awesome/theme.lua
Normal 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
1
.config/awesome/wallpapers
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../wallpapers
|
3
.config/nvim/ftplugin/html.vim
Normal file
3
.config/nvim/ftplugin/html.vim
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
" variables
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal tabstop=2
|
8
.config/nvim/ftplugin/python.vim
Normal file
8
.config/nvim/ftplugin/python.vim
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
" variables
|
||||||
|
let g:black_linelength=79
|
||||||
|
|
||||||
|
" plugins
|
||||||
|
lua require'lspconfig'.pyright.setup{}
|
||||||
|
|
||||||
|
" keybindings
|
||||||
|
nnoremap <C-f> :Black<CR>
|
7
.config/nvim/ftplugin/yaml.vim
Normal file
7
.config/nvim/ftplugin/yaml.vim
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
" variables
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal tabstop=2
|
||||||
|
|
||||||
|
" packages
|
||||||
|
|
||||||
|
" keybindings
|
@ -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)
|
||||||
|
223
.config/nvim/pack/plugins/opt/black/autoload/black.vim
Normal file
223
.config/nvim/pack/plugins/opt/black/autoload/black.vim
Normal 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
|
80
.config/nvim/pack/plugins/opt/black/plugin/black.vim
Normal file
80
.config/nvim/pack/plugins/opt/black/plugin/black.vim
Normal 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()
|
BIN
.config/wallpapers/debian11.png
Normal file
BIN
.config/wallpapers/debian11.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 108 KiB |
@ -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
|
||||||
|
4
.zshenv
4
.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_CACHE_HOME="$HOME/.cache"
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# counts target = 8182 ~ 25cm
|
# counts target = 8182 ~ 25cm
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
|
@ -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 &
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
CUR_LIGHT="$(set-light "$@")"
|
CUR_LIGHT="$(set-light "$@")"
|
||||||
|
@ -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"
|
||||||
|
11
bin/set-vol
11
bin/set-vol
@ -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"
|
||||||
|
Loading…
Reference in New Issue
Block a user