diff --git a/.gitmodules b/.gitmodules
index 7d0cc94..e69de29 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +0,0 @@
-[submodule "awesome/.config/awesome/battery-widget"]
- path = awesome/.config/awesome/battery-widget
- url = https://github.com/deficient/battery-widget.git
diff --git a/alacritty/.config/alacritty/alacritty.yml b/alacritty/.config/alacritty/alacritty.yml
deleted file mode 100644
index fb1e7b3..0000000
--- a/alacritty/.config/alacritty/alacritty.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-font:
- normal:
- family: JuliaMono
- size: 10
-
- #colors:
- # primary:
- # background: '0x151515'
- # foreground: '0xd7d0c7'
- #
- # normal:
- # black: '0x101010'
- # red: '0xe84f4f'
- # green: '0xb8d68c'
- # yellow: '0xe1aa5d'
- # blue: '0x7dc1cf'
- # magenta: '0x9b64fb'
- # cyan: '0x6d878d'
- # white: '0xdddddd'
- #
- # bright:
- # black: '0x404040'
- # red: '0xd23d3d'
- # green: '0xa0cf5d'
- # yellow: '0xf39d21'
- # blue: '0x4e9fb1'
- # magenta: '0x8542ff'
- # cyan: '0x42717b'
- # white: '0xdddddd'
diff --git a/awesome/.config/awesome/battery-widget b/awesome/.config/awesome/battery-widget
deleted file mode 160000
index 25b7e94..0000000
--- a/awesome/.config/awesome/battery-widget
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 25b7e94a34ed854697d61e3cbb0a3ebd9745dbd4
diff --git a/awesome/.config/awesome/bg.png b/awesome/.config/awesome/bg.png
deleted file mode 100644
index 73940b1..0000000
Binary files a/awesome/.config/awesome/bg.png and /dev/null differ
diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua
deleted file mode 100755
index aca2081..0000000
--- a/awesome/.config/awesome/rc.lua
+++ /dev/null
@@ -1,603 +0,0 @@
--- If LuaRocks is installed, make sure that packages installed through it are
--- found (e.g. lgi). If LuaRocks is not installed, do nothing.
-pcall(require, "luarocks.loader")
-
--- Standard awesome library
-local gears = require("gears")
-local awful = require("awful")
-require("awful.autofocus")
--- Widget and layout library
-local wibox = require("wibox")
--- Theme handling library
-local beautiful = require("beautiful")
--- Notification library
-local naughty = require("naughty")
-local menubar = require("menubar")
-local hotkeys_popup = require("awful.hotkeys_popup")
--- Enable hotkeys help widget for VIM and other apps
--- when client with a matching name is opened:
-require("awful.hotkeys_popup.keys")
-
--- {{{ Error handling
--- Check if awesome encountered an error during startup and fell back to
--- another config (This code will only ever execute for the fallback config)
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
-
--- Handle runtime errors after startup
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- -- Make sure we don't go into an endless error loop
- if in_error then return end
- in_error = true
-
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, an error happened!",
- text = tostring(err) })
- in_error = false
- end)
-end
--- }}}
-
--- {{{ Variable definitions
--- Themes define colours, icons, font and wallpapers.
-beautiful.init(gears.filesystem.get_configuration_dir() .. "theme.lua")
-
--- battery widget
-local bat_widget = require("battery-widget")
-local BAT0 = bat_widget {
- adapter = "BAT0",
- ac = "AC",
- listen = true,
- widget_text=" [${AC_BAT}${color_on}${percent}%${color_off}]",
- widget_font="ttyp0 9"
-}
-
--- This is used later as the default terminal and editor to run.
-terminal = "alacritty"
-editor = os.getenv("EDITOR") or "vi"
-editor_cmd = terminal .. " -e " .. editor
-
--- Default modkey.
--- Usually, Mod4 is the key with a logo between Control and Alt.
--- If you do not like this or do not have such a key,
--- I suggest you to remap Mod4 to another key using xmodmap or other tools.
--- However, you can use another modifier like Mod1, but it may interact with others.
-modkey = "Mod4"
-
--- Table of layouts to cover with awful.layout.inc, order matters.
-awful.layout.layouts = {
- awful.layout.suit.tile,
- awful.layout.suit.fair,
- awful.layout.suit.tile.bottom,
- awful.layout.suit.floating,
- awful.layout.suit.max,
- awful.layout.suit.magnifier,
- -- awful.layout.suit.tile.top,
- -- awful.layout.suit.spiral,
- -- awful.layout.suit.spiral.dwindle,
- -- awful.layout.suit.max.fullscreen,
- -- awful.layout.suit.fair.horizontal,
- -- awful.layout.suit.tile.left,
- -- awful.layout.suit.corner.nw,
- -- awful.layout.suit.corner.ne,
- -- awful.layout.suit.corner.sw,
- -- awful.layout.suit.corner.se,
-}
--- }}}
-
--- {{{ Menu
--- Create a launcher widget and a main menu
-myawesomemenu = {
- { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
- { "manual", terminal .. " -e man awesome" },
- { "edit config", editor_cmd .. " " .. awesome.conffile },
- { "restart", awesome.restart },
- { "quit", function() awesome.quit() end },
-}
-
-mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
- { "open terminal", terminal }
- }
- })
-
-mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
- menu = mymainmenu })
-
--- Menubar configuration
-menubar.utils.terminal = terminal -- Set the terminal for applications that require it
--- }}}
-
--- Keyboard map indicator and switcher
-mykeyboardlayout = awful.widget.keyboardlayout()
-
--- {{{ Wibar
--- Create a textclock widget
-mytextclock = wibox.widget.textclock()
-
--- Create a wibox for each screen and add it
-local taglist_buttons = gears.table.join(
- awful.button({ }, 1, function(t) t:view_only() end),
- awful.button({ modkey }, 1, function(t)
- if client.focus then
- client.focus:move_to_tag(t)
- end
- end),
- awful.button({ }, 3, awful.tag.viewtoggle),
- awful.button({ modkey }, 3, function(t)
- if client.focus then
- client.focus:toggle_tag(t)
- end
- end),
- awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
- awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
- )
-
-local tasklist_buttons = gears.table.join(
- awful.button({ }, 1, function (c)
- if c == client.focus then
- c.minimized = true
- else
- c:emit_signal(
- "request::activate",
- "tasklist",
- {raise = true}
- )
- end
- end),
- awful.button({ }, 3, function()
- awful.menu.client_list({ theme = { width = 250 } })
- end),
- awful.button({ }, 4, function ()
- awful.client.focus.byidx(1)
- end),
- awful.button({ }, 5, function ()
- awful.client.focus.byidx(-1)
- end))
-
-local function set_wallpaper(s)
- -- Wallpaper
- if beautiful.wallpaper then
- local wallpaper = beautiful.wallpaper
- -- If wallpaper is a function, call it with the screen
- if type(wallpaper) == "function" then
- wallpaper = wallpaper(s)
- end
- gears.wallpaper.maximized(wallpaper, s, true)
- end
-end
-
--- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
-screen.connect_signal("property::geometry", set_wallpaper)
-
-awful.screen.connect_for_each_screen(function(s)
- -- Wallpaper
- set_wallpaper(s)
-
- -- Each screen has its own tag table.
- awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
-
- -- Create a promptbox for each screen
- s.mypromptbox = awful.widget.prompt()
- -- Create an imagebox widget which will contain an icon indicating which layout we're using.
- -- We need one layoutbox per screen.
- s.mylayoutbox = awful.widget.layoutbox(s)
- s.mylayoutbox:buttons(gears.table.join(
- awful.button({ }, 1, function () awful.layout.inc( 1) end),
- awful.button({ }, 3, function () awful.layout.inc(-1) end),
- awful.button({ }, 4, function () awful.layout.inc( 1) end),
- awful.button({ }, 5, function () awful.layout.inc(-1) end)))
- -- Create a taglist widget
- s.mytaglist = awful.widget.taglist {
- screen = s,
- filter = awful.widget.taglist.filter.all,
- buttons = taglist_buttons
- }
-
- -- Create a tasklist widget
- s.mytasklist = awful.widget.tasklist {
- screen = s,
- filter = awful.widget.tasklist.filter.currenttags,
- buttons = tasklist_buttons
- }
-
- -- Create the wibox
- s.mywibox = awful.wibar({ position = "top", screen = s })
-
- -- Add widgets to the wibox
- s.mywibox:setup {
- layout = wibox.layout.align.horizontal,
- { -- Left widgets
- layout = wibox.layout.fixed.horizontal,
- mylauncher,
- s.mytaglist,
- s.mypromptbox,
- },
- s.mytasklist, -- Middle widget
- { -- Right widgets
- layout = wibox.layout.fixed.horizontal,
- mykeyboardlayout,
- wibox.widget.systray(),
- BAT0,
- mytextclock,
- s.mylayoutbox,
- },
- }
-end)
--- }}}
-
--- {{{ Mouse bindings
-root.buttons(gears.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
-
--- {{{ Key bindings
-globalkeys = gears.table.join(
- awful.key({ modkey, }, "s", hotkeys_popup.show_help,
- {description="show help", group="awesome"}),
- awful.key({ modkey, }, "Left", awful.tag.viewprev,
- {description = "view previous", group = "tag"}),
- awful.key({ modkey, }, "Right", awful.tag.viewnext,
- {description = "view next", group = "tag"}),
- awful.key({ modkey, }, "Escape", awful.tag.history.restore,
- {description = "go back", group = "tag"}),
-
- awful.key({ modkey, }, "j",
- function ()
- awful.client.focus.byidx( 1)
- end,
- {description = "focus next by index", group = "client"}
- ),
- awful.key({ modkey, }, "k",
- function ()
- awful.client.focus.byidx(-1)
- end,
- {description = "focus previous by index", group = "client"}
- ),
- awful.key({ modkey, }, "w", function () mymainmenu:show() end,
- {description = "show main menu", group = "awesome"}),
-
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
- {description = "swap with next client by index", group = "client"}),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
- {description = "swap with previous client by index", group = "client"}),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
- {description = "focus the next screen", group = "screen"}),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
- {description = "focus the previous screen", group = "screen"}),
- awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
- {description = "jump to urgent client", group = "client"}),
- awful.key({ modkey, }, "Tab",
- function ()
- awful.client.focus.history.previous()
- if client.focus then
- client.focus:raise()
- end
- end,
- {description = "go back", group = "client"}),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
- {description = "open a terminal", group = "launcher"}),
- awful.key({ modkey, "Control" }, "r", awesome.restart,
- {description = "reload awesome", group = "awesome"}),
- awful.key({ modkey, "Shift" }, "q", awesome.quit,
- {description = "quit awesome", group = "awesome"}),
-
- awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
- {description = "increase master width factor", group = "layout"}),
- awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
- {description = "decrease master width factor", group = "layout"}),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
- {description = "increase the number of master clients", group = "layout"}),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
- {description = "decrease the number of master clients", group = "layout"}),
- awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
- {description = "increase the number of columns", group = "layout"}),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
- {description = "decrease the number of columns", group = "layout"}),
- awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
- {description = "select next", group = "layout"}),
- awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
- {description = "select previous", group = "layout"}),
-
- awful.key({ modkey, "Control" }, "n",
- function ()
- local c = awful.client.restore()
- -- Focus restored client
- if c then
- c:emit_signal(
- "request::activate", "key.unminimize", {raise = true}
- )
- end
- end,
- {description = "restore minimized", group = "client"}),
-
- -- Prompt
- -- awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
- -- {description = "run prompt", group = "launcher"}),
- awful.key({ modkey }, "r", function() awful.spawn.with_shell("rofi -show combi") end,
- { description = "rofi", group = "launcher" }),
-
- awful.key({ modkey }, "x",
- function ()
- awful.prompt.run {
- prompt = "Run Lua code: ",
- textbox = awful.screen.focused().mypromptbox.widget,
- exe_callback = awful.util.eval,
- history_path = awful.util.get_cache_dir() .. "/history_eval"
- }
- end,
- {description = "lua execute prompt", group = "awesome"}),
- -- Menubar
- awful.key({ modkey }, "p", function() menubar.show() end,
- {description = "show the menubar", group = "launcher"}),
-
- -- Screenshots
- awful.key({ modkey, "Mod1" }, "p", function() awful.spawn.with_shell("flameshot gui") end,
- { description = "flameshot", group = "launcher" }),
-
- -- Screen lock
- awful.key({ modkey }, "BackSpace", function() awful.spawn.with_shell("i3lock-fancy -p") end,
- {description = "Lock Screen", group = "awesome"})
-)
-
-clientkeys = gears.table.join(
- awful.key({ modkey, }, "f",
- function (c)
- c.fullscreen = not c.fullscreen
- c:raise()
- end,
- {description = "toggle fullscreen", group = "client"}),
- awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end,
- {description = "close", group = "client"}),
- awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
- {description = "toggle floating", group = "client"}),
- awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
- {description = "move to master", group = "client"}),
- awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
- {description = "move to screen", group = "client"}),
- awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
- {description = "toggle keep on top", group = "client"}),
- awful.key({ modkey, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end ,
- {description = "minimize", group = "client"}),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized = not c.maximized
- c:raise()
- end ,
- {description = "(un)maximize", group = "client"}),
- awful.key({ modkey, "Control" }, "m",
- function (c)
- c.maximized_vertical = not c.maximized_vertical
- c:raise()
- end ,
- {description = "(un)maximize vertically", group = "client"}),
- awful.key({ modkey, "Shift" }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c:raise()
- end ,
- {description = "(un)maximize horizontally", group = "client"})
-)
-
--- Bind all key numbers to tags.
--- Be careful: we use keycodes to make it work on any keyboard layout.
--- This should map on the top row of your keyboard, usually 1 to 9.
-for i = 1, 9 do
- globalkeys = gears.table.join(globalkeys,
- -- View tag only.
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = awful.screen.focused()
- local tag = screen.tags[i]
- if tag then
- tag:view_only()
- end
- end,
- {description = "view tag #"..i, group = "tag"}),
- -- Toggle tag display.
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = awful.screen.focused()
- local tag = screen.tags[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end,
- {description = "toggle tag #" .. i, group = "tag"}),
- -- Move client to tag.
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:move_to_tag(tag)
- end
- end
- end,
- {description = "move focused client to tag #"..i, group = "tag"}),
- -- Toggle tag on focused client.
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:toggle_tag(tag)
- end
- end
- end,
- {description = "toggle focused client on tag #" .. i, group = "tag"})
- )
-end
-
-clientbuttons = gears.table.join(
- awful.button({ }, 1, function (c)
- c:emit_signal("request::activate", "mouse_click", {raise = true})
- end),
- awful.button({ modkey }, 1, function (c)
- c:emit_signal("request::activate", "mouse_click", {raise = true})
- awful.mouse.client.move(c)
- end),
- awful.button({ modkey }, 3, function (c)
- c:emit_signal("request::activate", "mouse_click", {raise = true})
- awful.mouse.client.resize(c)
- end)
-)
-
--- Set keys
-root.keys(globalkeys)
--- }}}
-
--- {{{ Rules
--- Rules to apply to new clients (through the "manage" signal).
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- raise = true,
- keys = clientkeys,
- buttons = clientbuttons,
- screen = awful.screen.preferred,
- placement = awful.placement.no_overlap+awful.placement.no_offscreen
- }
- },
-
- -- Floating clients.
- { rule_any = {
- instance = {
- "DTA", -- Firefox addon DownThemAll.
- "copyq", -- Includes session name in class.
- "pinentry",
- },
- class = {
- "Arandr",
- "Blueman-manager",
- "Gpick",
- "Kruler",
- "MessageWin", -- kalarm.
- "Sxiv",
- "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
- "Wpa_gui",
- "veromix",
- "xtightvncviewer"},
-
- -- Note that the name property shown in xprop might be set slightly after creation of the client
- -- and the name shown there might not match defined rules here.
- name = {
- "Event Tester", -- xev.
- },
- role = {
- "AlarmWindow", -- Thunderbird's calendar.
- "ConfigManager", -- Thunderbird's about:config.
- "pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
- }
- }, properties = { floating = true }},
-
- -- Add titlebars to normal clients and dialogs
- { rule_any = {type = { "normal", "dialog" }
- }, properties = { titlebars_enabled = false }
- },
-
- { rule = { class = "Firefox" },
- properties = { opacity = 1, maximized = false, floating = false } },
-
- -- Set Firefox to always map on the tag named "2" on screen 1.
- -- { rule = { class = "Firefox" },
- -- properties = { screen = 1, tag = "2" } },
-}
--- }}}
-
--- {{{ Signals
--- Signal function to execute when a new client appears.
-client.connect_signal("manage", function (c)
- -- Set the windows at the slave,
- -- i.e. put it at the end of others instead of setting it master.
- -- if not awesome.startup then awful.client.setslave(c) end
-
- if awesome.startup
- and not c.size_hints.user_position
- and not c.size_hints.program_position then
- -- Prevent clients from being unreachable after screen count changes.
- awful.placement.no_offscreen(c)
- end
-end)
-
--- Add a titlebar if titlebars_enabled is set to true in the rules.
-client.connect_signal("request::titlebars", function(c)
- -- buttons for the titlebar
- local buttons = gears.table.join(
- awful.button({ }, 1, function()
- c:emit_signal("request::activate", "titlebar", {raise = true})
- awful.mouse.client.move(c)
- end),
- awful.button({ }, 3, function()
- c:emit_signal("request::activate", "titlebar", {raise = true})
- awful.mouse.client.resize(c)
- end)
- )
-
- awful.titlebar(c) : setup {
- { -- Left
- awful.titlebar.widget.iconwidget(c),
- buttons = buttons,
- layout = wibox.layout.fixed.horizontal
- },
- { -- Middle
- { -- Title
- align = "center",
- widget = awful.titlebar.widget.titlewidget(c)
- },
- buttons = buttons,
- layout = wibox.layout.flex.horizontal
- },
- { -- Right
- awful.titlebar.widget.floatingbutton (c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.stickybutton (c),
- awful.titlebar.widget.ontopbutton (c),
- awful.titlebar.widget.closebutton (c),
- layout = wibox.layout.fixed.horizontal()
- },
- layout = wibox.layout.align.horizontal
- }
-end)
-
--- Enable sloppy focus, so that focus follows mouse.
-client.connect_signal("mouse::enter", function(c)
- c:emit_signal("request::activate", "mouse_enter", {raise = false})
-end)
-
-client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Autorun
-autorun = true;
-autorunApps = {
- "blueman-applet",
- "flameshot"
-}
-
-if autorun then
- for app = 1, #autorunApps do
- awful.util.spawn(autorunApps[app])
- end
-end
--- }}}
-
diff --git a/awesome/.config/awesome/theme.lua b/awesome/.config/awesome/theme.lua
deleted file mode 100644
index 079b7c2..0000000
--- a/awesome/.config/awesome/theme.lua
+++ /dev/null
@@ -1,131 +0,0 @@
----------------------------
--- 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 config_path = gfs.get_configuration_dir()
-
-local theme = {}
-
-theme.font = "ttyp0 9"
-
-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(0)
-theme.border_width = dpi(2)
-theme.border_normal = "#404040"
-theme.border_focus = "#f39d21"
-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 = config_path.."bg.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
-
diff --git a/awesome/.config/awesome/volume.lua b/awesome/.config/awesome/volume.lua
deleted file mode 100644
index dea4098..0000000
--- a/awesome/.config/awesome/volume.lua
+++ /dev/null
@@ -1,32 +0,0 @@
-volume_widget = widget({ type = "textbox", name = "tb_volume",
- align = "right" })
-
-function update_volume(widget)
- local fd = io.popen("amixer sget Master")
- local status = fd:read("*all")
- fd:close()
-
- local volume = tonumber(string.match(status, "(%d?%d?%d)%%")) / 100
- -- volume = string.format("% 3d", volume)
-
- status = string.match(status, "%[(o[^%]]*)%]")
-
- -- starting colour
- local sr, sg, sb = 0x3F, 0x3F, 0x3F
- -- ending colour
- local er, eg, eb = 0xDC, 0xDC, 0xCC
-
- local ir = volume * (er - sr) + sr
- local ig = volume * (eg - sg) + sg
- local ib = volume * (eb - sb) + sb
- interpol_colour = string.format("%.2x%.2x%.2x", ir, ig, ib)
- if string.find(status, "on", 1, true) then
- volume = " "
- else
- volume = " M "
- end
- widget.text = volume
- end
-
-update_volume(volume_widget)
-awful.hooks.timer.register(1, function () update_volume(volume_widget) end)
diff --git a/chromium/chromium-freeworld.desktop b/chromium/chromium-freeworld.desktop
deleted file mode 100644
index 75238c9..0000000
--- a/chromium/chromium-freeworld.desktop
+++ /dev/null
@@ -1,224 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=Chromium (dark)
-# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
-# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
-GenericName=Web Browser
-GenericName[ar]=متصفح الشبكة
-GenericName[bg]=Уеб браузър
-GenericName[ca]=Navegador web
-GenericName[cs]=WWW prohlížeč
-GenericName[da]=Browser
-GenericName[de]=Web-Browser
-GenericName[el]=Περιηγητής ιστού
-GenericName[en_GB]=Web Browser
-GenericName[es]=Navegador web
-GenericName[et]=Veebibrauser
-GenericName[fi]=WWW-selain
-GenericName[fr]=Navigateur Web
-GenericName[gu]=વેબ બ્રાઉઝર
-GenericName[he]=דפדפן אינטרנט
-GenericName[hi]=वेब ब्राउज़र
-GenericName[hu]=Webböngésző
-GenericName[it]=Browser Web
-GenericName[ja]=ウェブブラウザ
-GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
-GenericName[ko]=웹 브라우저
-GenericName[lt]=Žiniatinklio naršyklė
-GenericName[lv]=Tīmekļa pārlūks
-GenericName[ml]=വെബ് ബ്രൌസര്
-GenericName[mr]=वेब ब्राऊजर
-GenericName[nb]=Nettleser
-GenericName[nl]=Webbrowser
-GenericName[pl]=Przeglądarka WWW
-GenericName[pt]=Navegador Web
-GenericName[pt_BR]=Navegador da Internet
-GenericName[ro]=Navigator de Internet
-GenericName[ru]=Веб-браузер
-GenericName[sl]=Spletni brskalnik
-GenericName[sv]=Webbläsare
-GenericName[ta]=இணைய உலாவி
-GenericName[th]=เว็บเบราว์เซอร์
-GenericName[tr]=Web Tarayıcı
-GenericName[uk]=Навігатор Тенет
-GenericName[zh_CN]=网页浏览器
-GenericName[zh_HK]=網頁瀏覽器
-GenericName[zh_TW]=網頁瀏覽器
-# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
-GenericName[bn]=ওয়েব ব্রাউজার
-GenericName[fil]=Web Browser
-GenericName[hr]=Web preglednik
-GenericName[id]=Browser Web
-GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
-GenericName[sk]=WWW prehliadač
-GenericName[sr]=Интернет прегледник
-GenericName[te]=మహాతల అన్వేషి
-GenericName[vi]=Bộ duyệt Web
-# Gnome and KDE 3 uses Comment.
-Comment=Access the Internet
-Comment[ar]=الدخول إلى الإنترنت
-Comment[bg]=Достъп до интернет
-Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
-Comment[ca]=Accedeix a Internet
-Comment[cs]=Přístup k internetu
-Comment[da]=Få adgang til internettet
-Comment[de]=Internetzugriff
-Comment[el]=Πρόσβαση στο Διαδίκτυο
-Comment[en_GB]=Access the Internet
-Comment[es]=Accede a Internet.
-Comment[et]=Pääs Internetti
-Comment[fi]=Käytä internetiä
-Comment[fil]=I-access ang Internet
-Comment[fr]=Accéder à Internet
-Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
-Comment[he]=גישה אל האינטרנט
-Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
-Comment[hr]=Pristup Internetu
-Comment[hu]=Internetelérés
-Comment[id]=Akses Internet
-Comment[it]=Accesso a Internet
-Comment[ja]=インターネットにアクセス
-Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
-Comment[ko]=인터넷 연결
-Comment[lt]=Interneto prieiga
-Comment[lv]=Piekļūt internetam
-Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക
-Comment[mr]=इंटरनेटमध्ये प्रवेश करा
-Comment[nb]=Gå til Internett
-Comment[nl]=Verbinding maken met internet
-Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
-Comment[pl]=Skorzystaj z internetu
-Comment[pt]=Aceder à Internet
-Comment[pt_BR]=Acessar a internet
-Comment[ro]=Accesaţi Internetul
-Comment[ru]=Доступ в Интернет
-Comment[sk]=Prístup do siete Internet
-Comment[sl]=Dostop do interneta
-Comment[sr]=Приступите Интернету
-Comment[sv]=Gå ut på Internet
-Comment[ta]=இணையத்தை அணுகுதல்
-Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి
-Comment[th]=เข้าถึงอินเทอร์เน็ต
-Comment[tr]=İnternet'e erişin
-Comment[uk]=Доступ до Інтернету
-Comment[vi]=Truy cập Internet
-Comment[zh_CN]=访问互联网
-Comment[zh_HK]=連線到網際網路
-Comment[zh_TW]=連線到網際網路
-Exec=/usr/bin/chromium-freeworld --force-dark-mode --enable-features=WebUIDarkMode %U
-StartupNotify=true
-Terminal=false
-Icon=chromium-freeworld
-Type=Application
-Categories=Network;WebBrowser;
-MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/ftp;x-scheme-handler/http;x-scheme-handler/https;
-Actions=new-window;new-private-window;
-
-X-Desktop-File-Install-Version=0.26
-
-[Desktop Action new-window]
-Name=New Window
-Name[am]=አዲስ መስኮት
-Name[ar]=نافذة جديدة
-Name[bg]=Нов прозорец
-Name[bn]=নতুন উইন্ডো
-Name[ca]=Finestra nova
-Name[cs]=Nové okno
-Name[da]=Nyt vindue
-Name[de]=Neues Fenster
-Name[el]=Νέο Παράθυρο
-Name[en_GB]=New Window
-Name[es]=Nueva ventana
-Name[et]=Uus aken
-Name[fa]=پنجره جدید
-Name[fi]=Uusi ikkuna
-Name[fil]=New Window
-Name[fr]=Nouvelle fenêtre
-Name[gu]=નવી વિંડો
-Name[hi]=नई विंडो
-Name[hr]=Novi prozor
-Name[hu]=Új ablak
-Name[id]=Jendela Baru
-Name[it]=Nuova finestra
-Name[iw]=חלון חדש
-Name[ja]=新規ウインドウ
-Name[kn]=ಹೊಸ ವಿಂಡೊ
-Name[ko]=새 창
-Name[lt]=Naujas langas
-Name[lv]=Jauns logs
-Name[ml]=പുതിയ വിന്ഡോ
-Name[mr]=नवीन विंडो
-Name[nl]=Nieuw venster
-Name[no]=Nytt vindu
-Name[pl]=Nowe okno
-Name[pt]=Nova janela
-Name[pt_BR]=Nova janela
-Name[ro]=Fereastră nouă
-Name[ru]=Новое окно
-Name[sk]=Nové okno
-Name[sl]=Novo okno
-Name[sr]=Нови прозор
-Name[sv]=Nytt fönster
-Name[sw]=Dirisha Jipya
-Name[ta]=புதிய சாளரம்
-Name[te]=క్రొత్త విండో
-Name[th]=หน้าต่างใหม่
-Name[tr]=Yeni Pencere
-Name[uk]=Нове вікно
-Name[vi]=Cửa sổ Mới
-Name[zh_CN]=新建窗口
-Name[zh_TW]=開新視窗
-Exec=/usr/bin/chromium-freeworld --force-dark-mode --enable-features=WebUIDarkMode
-
-[Desktop Action new-private-window]
-Name=New Incognito Window
-Name[ar]=نافذة جديدة للتصفح المتخفي
-Name[bg]=Нов прозорец „инкогнито“
-Name[bn]=নতুন ছদ্মবেশী উইন্ডো
-Name[ca]=Finestra d'incògnit nova
-Name[cs]=Nové anonymní okno
-Name[da]=Nyt inkognitovindue
-Name[de]=Neues Inkognito-Fenster
-Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
-Name[en_GB]=New Incognito window
-Name[es]=Nueva ventana de incógnito
-Name[et]=Uus inkognito aken
-Name[fa]=پنجره جدید حالت ناشناس
-Name[fi]=Uusi incognito-ikkuna
-Name[fil]=Bagong Incognito window
-Name[fr]=Nouvelle fenêtre de navigation privée
-Name[gu]=નવી છુપી વિંડો
-Name[hi]=नई गुप्त विंडो
-Name[hr]=Novi anoniman prozor
-Name[hu]=Új Inkognitóablak
-Name[id]=Jendela Penyamaran baru
-Name[it]=Nuova finestra di navigazione in incognito
-Name[iw]=חלון חדש לגלישה בסתר
-Name[ja]=新しいシークレット ウィンドウ
-Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
-Name[ko]=새 시크릿 창
-Name[lt]=Naujas inkognito langas
-Name[lv]=Jauns inkognito režīma logs
-Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്ഡോ
-Name[mr]=नवीन गुप्त विंडो
-Name[nl]=Nieuw incognitovenster
-Name[no]=Nytt inkognitovindu
-Name[pl]=Nowe okno incognito
-Name[pt]=Nova janela de navegação anónima
-Name[pt_BR]=Nova janela anônima
-Name[ro]=Fereastră nouă incognito
-Name[ru]=Новое окно в режиме инкогнито
-Name[sk]=Nové okno inkognito
-Name[sl]=Novo okno brez beleženja zgodovine
-Name[sr]=Нови прозор за прегледање без архивирања
-Name[sv]=Nytt inkognitofönster
-Name[ta]=புதிய மறைநிலைச் சாளரம்
-Name[te]=క్రొత్త అజ్ఞాత విండో
-Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
-Name[tr]=Yeni Gizli pencere
-Name[uk]=Нове вікно в режимі анонімного перегляду
-Name[vi]=Cửa sổ ẩn danh mới
-Name[zh_CN]=新建隐身窗口
-Name[zh_TW]=新增無痕式視窗
-Exec=/usr/bin/chromium-freeworld --incognito --force-dark-mode --enable-features=WebUIDarkMode
-
diff --git a/chromium/oxa.json b/chromium/oxa.json
deleted file mode 100644
index f920031..0000000
--- a/chromium/oxa.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "ExtensionInstallForcelist": [
- "pkehgijcmpdhfbdbbnkijodmdjhbjlgp",
- "ekhagklcjbdpajgpjgmbionohlpdbjgc",
- "nngceckbapebfimnlniiiahkandclblb",
- "cjpalhdlnbpafiamejdnhcphjbkeiagm"
- ],
- "BrowserSignin": 0,
- "SyncDisabled": true,
- "PasswordManagerEnabled": false,
- "TranslateEnabled": false,
- "AutofillAddressEnabled": false,
- "AutofillCreditCardEnabled": false,
- "AutoplayAllowed": false,
- "DefaultNotificationsSetting": 2,
- "BackgroundModeEnabled": false,
- "MediaRecommendationsEnabled": false,
- "DefaultSearchProviderEnabled": true,
- "DefaultSearchProviderSearchURL": "https://duckduckgo.com/?q={searchTerms}",
- "SearchSuggestEnable": false
-}
diff --git a/flake8/.config/flake8 b/flake8/.config/flake8
deleted file mode 100644
index 9e06f65..0000000
--- a/flake8/.config/flake8
+++ /dev/null
@@ -1,5 +0,0 @@
-[flake8]
-ignore = E221,E501,E203,E202,E272,E251,E211,E222,E701
-max-line-length = 160
-exclude = tests/*
-max-complexity = 10
\ No newline at end of file
diff --git a/foot/.config/foot/foot.ini b/foot/.config/foot/foot.ini
new file mode 100644
index 0000000..9f67a53
--- /dev/null
+++ b/foot/.config/foot/foot.ini
@@ -0,0 +1,23 @@
+font=Hack Nerd Font:pixelsize=12,Font Awesome 6 Free:pixelsize=12
+[cursor]
+color=000000 ffffff
+
+[colors]
+foreground=dcdccc
+background=111111
+regular0=222222
+regular1=cc9393
+regular2=7f9f7f
+regular3=d0bf8f
+regular4=6ca0a3
+regular5=dc8cc3
+regular6=93e0e3
+regular7=dcdccc
+bright0=666666
+bright1=dca3a3
+bright2=bfebbf
+bright3=f0dfaf
+bright4=8cd0d3
+bright5=fcace3
+bright6=b3ffff
+bright7=ffffff
diff --git a/git/.config/git/config b/git/.config/git/config
index ac4b978..d022877 100644
--- a/git/.config/git/config
+++ b/git/.config/git/config
@@ -11,12 +11,21 @@
[credential]
helper = cache --timeout 28800
[alias]
- lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
- diffw = diff --word-diff=color
+ diffs = diff --stat
diffstat = diff --stat
+ diffw = diff --word-diff=color
+ lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
+ br = branch
+ ci = commit
+ ciall = commit -a
+ ciam = commit --amend
+ co = checkout
+ dic = diff --cached
+ dif = diff
+ s = status
[pull]
ff = only
[init]
- defaultBranch = main
+ defaultBranch = master
[safe]
directory = /etc/nixos
diff --git a/lsd/.config/lsd/config.yaml b/lsd/.config/lsd/config.yaml
new file mode 100644
index 0000000..68572f1
--- /dev/null
+++ b/lsd/.config/lsd/config.yaml
@@ -0,0 +1,2 @@
+icons:
+ when: auto
diff --git a/mail/.config/msmtp/.gitignore b/mail/.config/msmtp/.gitignore
new file mode 100644
index 0000000..f65f5ba
--- /dev/null
+++ b/mail/.config/msmtp/.gitignore
@@ -0,0 +1 @@
+msmtp.log
diff --git a/mail/.config/msmtp/config b/mail/.config/msmtp/config
new file mode 100644
index 0000000..2de2c78
--- /dev/null
+++ b/mail/.config/msmtp/config
@@ -0,0 +1,33 @@
+account mail@oxapentane.com
+host smtp.migadu.com
+port 587
+from *@oxapentane.com
+user mail@oxapentane.com
+passwordeval "pass mail@oxapentane.com"
+auth on
+tls on
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
+logfile /home/grue/.config/msmtp/msmtp.log
+
+account grigory@shipunov.xyz
+host smtp.migadu.com
+port 587
+from *@shipunov.xyz
+user grigory@shipunov.xyz
+passwordeval "pass grigory@shipunov.xyz"
+auth on
+tls on
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
+logfile /home/grue/.config/msmtp/msmtp.log
+
+account dump@dvb.solutions
+host smtp.migadu.com
+port 587
+from dump@dvb.solutions
+user dump@dvb.solutions
+passwordeval "pass dump@dvb.solutions"
+auth on
+tls on
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
+logfile /home/grue/.config/msmtp/msmtp.log
+
diff --git a/mail/.config/neomutt/accounts/1-mail@oxapentane.com.muttrc b/mail/.config/neomutt/accounts/1-mail@oxapentane.com.muttrc
new file mode 100644
index 0000000..d4aeb95
--- /dev/null
+++ b/mail/.config/neomutt/accounts/1-mail@oxapentane.com.muttrc
@@ -0,0 +1,51 @@
+# vim: filetype=neomuttrc
+# muttrc file for account mail@oxapentane.com
+set realname = "0xA"
+set from = "mail@oxapentane.com"
+alternates "@oxapentane\.com$"
+set reverse_name
+set sendmail = "msmtp -a mail@oxapentane.com"
+alias me 0xA
+set folder = "~/mail/mail@oxapentane.com"
+set header_cache = ~/mail/mail@oxapentane.com/headers
+set message_cachedir = ~/mail/mail@oxapentane.com/bodies
+set mbox_type = Maildir
+
+
+bind index,pager gg noop
+bind index,pager g noop
+bind index,pager M noop
+bind index,pager C noop
+bind index gg first-entry
+unmailboxes *
+unalternates *
+unset signature
+unmacro index o
+macro index o "mbsync mail@oxapentane.com" "run mbsync to sync mail@oxapentane.com"
+
+mailboxes "=Archive" "=Drafts" "=flipper" "=funk24" "=hackint" "=hkinv" "=INBOX" "=juliaacademy" "=Junk" "=kickstarter" "=leanpub" "=meduza" "=mercht" "=misc" "=monster" "=nplus1" "=nytimes" "=online-go" "=openweathermap" "=ovdinfo" "=quantumcountry" "=rocky" "=rockylinux" "=Sent" "=sinkhole" "=teepublic" "=Templates" "=threadless" "=Trash" "=vodafone" "=vultr" "=xakep" "=zotero-sync"
+macro index,pager gj "=Junk" "go to junk"
+macro index,pager Mj ";=Junk" "move mail to junk"
+macro index,pager Cj ";=Junk" "copy mail to junk"
+macro index,pager gi "=INBOX" "go to inbox"
+macro index,pager Mi ";=INBOX" "move mail to inbox"
+macro index,pager Ci ";=INBOX" "copy mail to inbox"
+set spoolfile = "+INBOX"
+macro index,pager ga "=Archive" "go to archive"
+macro index,pager Ma ";=Archive" "move mail to archive"
+macro index,pager Ca ";=Archive" "copy mail to archive"
+set postponed = "+Drafts"
+macro index,pager gd "=Drafts" "go to drafts"
+macro index,pager Md ";=Drafts" "move mail to drafts"
+macro index,pager Cd ";=Drafts" "copy mail to drafts"
+set record = "+Sent"
+macro index,pager gS "=Sent" "go to sent"
+macro index,pager MS ";=Sent" "move mail to sent"
+macro index,pager CS ";=Sent" "copy mail to sent"
+macro index,pager gs "=sinkhole" "go to sinkhole"
+macro index,pager Ms ";=sinkhole" "move mail to sinkhole"
+macro index,pager Cs ";=sinkhole" "copy mail to sinkhole"
+macro index,pager gt "=Trash" "go to trash"
+macro index,pager Mt ";=Trash" "move mail to trash"
+macro index,pager Ct ";=Trash" "copy mail to trash"
+set trash = "+Trash"
diff --git a/mail/.config/neomutt/accounts/2-grigory@shipunov.xyz.muttrc b/mail/.config/neomutt/accounts/2-grigory@shipunov.xyz.muttrc
new file mode 100644
index 0000000..bfa1471
--- /dev/null
+++ b/mail/.config/neomutt/accounts/2-grigory@shipunov.xyz.muttrc
@@ -0,0 +1,46 @@
+# vim: filetype=neomuttrc
+# muttrc file for account grigory@shipunov.xyz
+set realname = "Grigory Shipunov"
+set from = "grigory@shipunov.xyz"
+set sendmail = "msmtp -a grigory@shipunov.xyz"
+alias me Grigory Shipunov
+set folder = "~/mail/grigory@shipunov.xyz"
+set header_cache = ~/mail/grigory@shipunov.xyz/headers
+set message_cachedir = ~/mail/grigory@shipunov.xyz/bodies
+set mbox_type = Maildir
+
+
+bind index,pager gg noop
+bind index,pager g noop
+bind index,pager M noop
+bind index,pager C noop
+bind index gg first-entry
+unmailboxes *
+unalternates *
+unset signature
+unmacro index o
+macro index o "mbsync grigory@shipunov.xyz" "run mbsync to sync grigory@shipunov.xyz"
+
+mailboxes "=Junk" "=Trash" "=Archive" "=Drafts" "=Sent" "=INBOX"
+macro index,pager gj "=Junk" "go to junk"
+macro index,pager Mj ";=Junk" "move mail to junk"
+macro index,pager Cj ";=Junk" "copy mail to junk"
+macro index,pager gt "=Trash" "go to trash"
+macro index,pager Mt ";=Trash" "move mail to trash"
+macro index,pager Ct ";=Trash" "copy mail to trash"
+set trash = "+Trash"
+macro index,pager ga "=Archive" "go to archive"
+macro index,pager Ma ";=Archive" "move mail to archive"
+macro index,pager Ca ";=Archive" "copy mail to archive"
+set postponed = "+Drafts"
+macro index,pager gd "=Drafts" "go to drafts"
+macro index,pager Md ";=Drafts" "move mail to drafts"
+macro index,pager Cd ";=Drafts" "copy mail to drafts"
+set record = "+Sent"
+macro index,pager gs "=Sent" "go to sent"
+macro index,pager Ms ";=Sent" "move mail to sent"
+macro index,pager Cs ";=Sent" "copy mail to sent"
+macro index,pager gi "=INBOX" "go to inbox"
+macro index,pager Mi ";=INBOX" "move mail to inbox"
+macro index,pager Ci ";=INBOX" "copy mail to inbox"
+set spoolfile = "+INBOX"
diff --git a/mail/.config/neomutt/accounts/3-dump@dvb.solutions.muttrc b/mail/.config/neomutt/accounts/3-dump@dvb.solutions.muttrc
new file mode 100644
index 0000000..f506a66
--- /dev/null
+++ b/mail/.config/neomutt/accounts/3-dump@dvb.solutions.muttrc
@@ -0,0 +1,46 @@
+# vim: filetype=neomuttrc
+# muttrc file for account dump@dvb.solutions
+set realname = "dump"
+set from = "dump@dvb.solutions"
+set sendmail = "msmtp -a dump@dvb.solutions"
+alias me dump
+set folder = "~/mail/dump@dvb.solutions"
+set header_cache = ~/dump@dvb.solutions/headers
+set message_cachedir = ~/dump@dvb.solutions/bodies
+set mbox_type = Maildir
+
+
+bind index,pager gg noop
+bind index,pager g noop
+bind index,pager M noop
+bind index,pager C noop
+bind index gg first-entry
+unmailboxes *
+unalternates *
+unset signature
+unmacro index o
+macro index o "mbsync dump@dvb.solutions" "run mbsync to sync dump@dvb.solutions"
+
+mailboxes "=Sent" "=Drafts" "=Archive" "=Trash" "=Junk" "=INBOX"
+set record = "+Sent"
+macro index,pager gs "=Sent" "go to sent"
+macro index,pager Ms ";=Sent" "move mail to sent"
+macro index,pager Cs ";=Sent" "copy mail to sent"
+set postponed = "+Drafts"
+macro index,pager gd "=Drafts" "go to drafts"
+macro index,pager Md ";=Drafts" "move mail to drafts"
+macro index,pager Cd ";=Drafts" "copy mail to drafts"
+macro index,pager ga "=Archive" "go to archive"
+macro index,pager Ma ";=Archive" "move mail to archive"
+macro index,pager Ca ";=Archive" "copy mail to archive"
+macro index,pager gt "=Trash" "go to trash"
+macro index,pager Mt ";=Trash" "move mail to trash"
+macro index,pager Ct ";=Trash" "copy mail to trash"
+set trash = "+Trash"
+macro index,pager gj "=Junk" "go to junk"
+macro index,pager Mj ";=Junk" "move mail to junk"
+macro index,pager Cj ";=Junk" "copy mail to junk"
+macro index,pager gi "=INBOX" "go to inbox"
+macro index,pager Mi ";=INBOX" "move mail to inbox"
+macro index,pager Ci ";=INBOX" "copy mail to inbox"
+set spoolfile = "+INBOX"
diff --git a/mail/.config/neomutt/defaults.muttrc b/mail/.config/neomutt/defaults.muttrc
new file mode 100644
index 0000000..d2eefb5
--- /dev/null
+++ b/mail/.config/neomutt/defaults.muttrc
@@ -0,0 +1,161 @@
+set mailcap_path = ~/.config/neomutt/mailcap:$mailcap_path
+set mime_type_query_command = "file --mime-type -b %s"
+set date_format="%y-%m-%d %H:%M"
+set index_format="%2C %Z %?X?A& ? %D %-25.25F %s (%-4.4c)"
+#set index_format= "%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s"
+set edit_headers = yes
+set use_threads = 'threads'
+set sort = 'reverse-last-date'
+set smtp_authenticators = 'gssapi:login'
+set query_command = "abook --mutt-query '%s'"
+set rfc2047_parameters = yes
+set sleep_time = 0 # Pause 0 seconds for informational messages
+set markers = no # Disables the `+` displayed at line wraps
+set mark_old = no # Unread mail stay unread until read
+set mime_forward = yes # attachments are forwarded with mail
+set wait_key = no # mutt won't ask "press key to continue"
+set fast_reply # skip to compose when replying
+set fcc_attach # save attachments with the body
+set forward_format = "Fwd: %s" # format of subject when forwarding
+set forward_quote # include message in forwards
+set reverse_name # reply as whomever it was to
+set include # include message in replies
+set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
+auto_view text/html # automatically show html (mailcap uses lynx)
+auto_view application/pgp-encrypted
+#set display_filter = "tac | sed '/\\\[-- Autoview/,+1d' | tac" # Suppress autoview messages.
+alternative_order text/plain text/enriched text/html
+bind index,pager i noop
+bind index,pager g noop
+bind index \Cf noop
+
+# General rebindings
+bind index j next-entry
+bind index k previous-entry
+bind attach view-mailcap
+bind attach l view-mailcap
+bind editor noop
+bind index G last-entry
+bind index gg first-entry
+bind pager,attach h exit
+bind pager j next-line
+bind pager k previous-line
+bind pager l view-attachments
+bind index D delete-message
+bind index U undelete-message
+bind index L limit
+bind index h noop
+bind index l display-message
+bind index,query tag-entry
+#bind browser h goto-parent
+macro browser h '..' "Go to parent folder"
+bind index,pager H view-raw-message
+bind browser l select-entry
+bind pager,browser gg top-page
+bind pager,browser G bottom-page
+bind index,pager,browser d half-down
+bind index,pager,browser u half-up
+bind index,pager S sync-mailbox
+bind index,pager R group-reply
+bind index \031 previous-undeleted # Mouse wheel
+bind index \005 next-undeleted # Mouse wheel
+bind pager \031 previous-line # Mouse wheel
+bind pager \005 next-line # Mouse wheel
+bind editor complete-query
+
+#set crypt_autosign = yes
+#set crypt_opportunistic_encrypt = yes
+#set pgp_self_encrypt = yes
+#set pgp_default_key = 'your@gpgemailaddre.ss'
+
+macro index,pager a "set my_pipe_decode=\$pipe_decode pipe_decodeabook --add-emailset pipe_decode=\$my_pipe_decode; unset my_pipe_decode" "add the sender address to abook"
+macro index \Cr "T~UN." "mark all messages as read"
+macro index O "mbsync -a" "refresh all mail"
+macro index \Cf "unset wait_keyprintf 'Enter a search term to find with notmuch: '; read x; echo \$x >~/.cache/mutt_terms~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"" "show only messages matching a notmuch pattern"
+macro index A "all\n" "show all messages (undo limit)"
+
+# Sidebar mappings
+set sidebar_visible = no
+set sidebar_width = 20
+set sidebar_short_path = yes
+set sidebar_next_new_wrap = yes
+set mail_check_stats
+set sidebar_format = '%D%?F? [%F]?%* %?N?%N/? %?S?%S?'
+bind index,pager \Ck sidebar-prev
+bind index,pager \Cj sidebar-next
+bind index,pager \Co sidebar-open
+bind index,pager \Cp sidebar-prev-new
+bind index,pager \Cn sidebar-next-new
+bind index,pager B sidebar-toggle-visible
+
+# Default index colors:
+color index yellow default '.*'
+color index_author red default '.*'
+color index_number blue default
+color index_subject cyan default '.*'
+
+# New mail is boldened:
+color index brightyellow black "~N"
+color index_author brightred black "~N"
+color index_subject brightcyan black "~N"
+
+# Tagged mail is highlighted:
+color index brightyellow blue "~T"
+color index_author brightred blue "~T"
+color index_subject brightcyan blue "~T"
+
+# Other colors and aesthetic settings:
+mono bold bold
+mono underline underline
+mono indicator reverse
+mono error bold
+color normal default default
+color indicator brightblack white
+color sidebar_highlight red default
+color sidebar_divider brightblack black
+color sidebar_flagged red black
+color sidebar_new green black
+color normal brightyellow default
+color error red default
+color tilde black default
+color message cyan default
+color markers red white
+color attachment white default
+color search brightmagenta default
+color status brightyellow black
+color hdrdefault brightgreen default
+color quoted green default
+color quoted1 blue default
+color quoted2 cyan default
+color quoted3 yellow default
+color quoted4 red default
+color quoted5 brightred default
+color signature brightgreen default
+color bold black default
+color underline black default
+color normal default default
+
+# Regex highlighting:
+color header blue default ".*"
+color header brightmagenta default "^(From)"
+color header brightcyan default "^(Subject)"
+color header brightwhite default "^(CC|BCC)"
+color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
+color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
+color body green default "\`[^\`]*\`" # Green text between ` and `
+color body brightblue default "^# \.*" # Headings as bold blue
+color body brightcyan default "^## \.*" # Subheadings as bold cyan
+color body brightgreen default "^### \.*" # Subsubheadings as bold green
+color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
+color body brightcyan default "[;:][-o][)/(|]" # emoticons
+color body brightcyan default "[;:][)(|]" # emoticons
+color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
+color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
+color body red default "(BAD signature)"
+color body cyan default "(Good signature)"
+color body brightblack default "^gpg: Good signature .*"
+color body brightyellow default "^gpg: "
+color body brightyellow red "^gpg: BAD signature from.*"
+mono body bold "^gpg: Good signature"
+mono body bold "^gpg: BAD signature from.*"
+color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
diff --git a/mail/.config/neomutt/mailcap b/mail/.config/neomutt/mailcap
new file mode 100644
index 0000000..fe2ac69
--- /dev/null
+++ b/mail/.config/neomutt/mailcap
@@ -0,0 +1,8 @@
+text/plain; $EDITOR %s ;
+text/html; w3m -I %{charset} -T text/html; copiousoutput;
+image/*; feh %s ;
+video/*; setsid mpv --quiet %s &; copiousoutput
+audio/*; mpv %s ;
+application/pdf; zathura %s ;
+application/pgp-encrypted; gpg -d '%s'; copiousoutput;
+application/pgp-keys; gpg --import '%s'; copiousoutput;
diff --git a/mail/.config/neomutt/neomuttrc b/mail/.config/neomutt/neomuttrc
new file mode 100644
index 0000000..5c0d82f
--- /dev/null
+++ b/mail/.config/neomutt/neomuttrc
@@ -0,0 +1,6 @@
+# vim: filetype=neomuttrc
+source ./defaults.muttrc
+source ./accounts/1-mail@oxapentane.com.muttrc
+macro index,pager i1 'source ~/.config/neomutt/accounts/1-mail@oxapentane.com.muttrc!;' "switch to mail@oxapentane.com"
+macro index,pager i2 'source ~/.config/neomutt/accounts/2-grigory@shipunov.xyz.muttrc!;' "switch to grigory@shipunov.xyz"
+macro index,pager i3 'source ~/.config/neomutt/accounts/3-dump@dvb.solutions.muttrc!;' "switch to dump@dvb.solutions"
diff --git a/mail/.mbsyncrc b/mail/.mbsyncrc
new file mode 100644
index 0000000..40e284f
--- /dev/null
+++ b/mail/.mbsyncrc
@@ -0,0 +1,74 @@
+IMAPStore mail@oxapentane.com-remote
+Host imap.migadu.com
+Port 993
+User mail@oxapentane.com
+PassCmd "pass mail@oxapentane.com"
+AuthMechs LOGIN
+SSLType IMAPS
+
+MaildirStore mail@oxapentane.com-local
+Subfolders Verbatim
+Path /home/grue/mail/mail@oxapentane.com/
+Inbox /home/grue/mail/mail@oxapentane.com/INBOX
+
+Channel mail@oxapentane.com
+Expunge Both
+Master :mail@oxapentane.com-remote:
+Slave :mail@oxapentane.com-local:
+Create Both
+SyncState *
+Patterns *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
+
+IMAPStore grigory@shipunov.xyz-remote
+Host imap.migadu.com
+Port 993
+User grigory@shipunov.xyz
+PassCmd "pass grigory@shipunov.xyz"
+AuthMechs LOGIN
+SSLType IMAPS
+
+MaildirStore grigory@shipunov.xyz-local
+Subfolders Verbatim
+Path /home/grue/mail/grigory@shipunov.xyz/
+Inbox /home/grue/mail/grigory@shipunov.xyz/INBOX
+
+Channel grigory@shipunov.xyz
+Expunge Both
+Master :grigory@shipunov.xyz-remote:
+Slave :grigory@shipunov.xyz-local:
+Create Both
+SyncState *
+Patterns *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
+
+IMAPStore dump@dvb.solutions-remote
+Host imap.migadu.com
+Port 993
+User dump@dvb.solutions
+PassCmd "pass dump@dvb.solutions"
+AuthMechs LOGIN
+SSLType IMAPS
+
+MaildirStore dump@dvb.solutions-local
+Subfolders Verbatim
+Path /home/grue/mail/dump@dvb.solutions/
+Inbox /home/grue/mail/dump@dvb.solutions/INBOX
+
+Channel dump@dvb.solutions
+Expunge Both
+Master :dump@dvb.solutions-remote:
+Slave :dump@dvb.solutions-local:
+Create Both
+SyncState *
+Patterns *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
diff --git a/mail/.notmuch-config b/mail/.notmuch-config
new file mode 100644
index 0000000..45bec35
--- /dev/null
+++ b/mail/.notmuch-config
@@ -0,0 +1,14 @@
+[database]
+path=/home/grue/mail
+[user]
+name=mail
+primary_email=mail@oxapentane.com
+[new]
+tags=unread;inbox;
+ignore=.mbsyncstate;.uidvalidity
+[search]
+exclude_tags=deleted;spam;
+[maildir]
+synchronize_flags=true
+[crypto]
+gpg_path=gpg
diff --git a/mail/.password-store/.gpg-id b/mail/.password-store/.gpg-id
new file mode 100644
index 0000000..14d0f5b
--- /dev/null
+++ b/mail/.password-store/.gpg-id
@@ -0,0 +1 @@
+mail@oxapentane.com
diff --git a/mail/.password-store/dump@dvb.solutions.gpg b/mail/.password-store/dump@dvb.solutions.gpg
new file mode 100644
index 0000000..5c0ce46
Binary files /dev/null and b/mail/.password-store/dump@dvb.solutions.gpg differ
diff --git a/mail/.password-store/grigory@shipunov.xyz.gpg b/mail/.password-store/grigory@shipunov.xyz.gpg
new file mode 100644
index 0000000..331bf47
Binary files /dev/null and b/mail/.password-store/grigory@shipunov.xyz.gpg differ
diff --git a/mail/.password-store/mail@oxapentane.com.gpg b/mail/.password-store/mail@oxapentane.com.gpg
new file mode 100644
index 0000000..41b16d3
--- /dev/null
+++ b/mail/.password-store/mail@oxapentane.com.gpg
@@ -0,0 +1,2 @@
+83;,`юW+Oa+R}>ae+~|ۃ^A qCw˵YJP.@W;?m2wt$IchgFf*yd?͔AnDXpQZO[h>8Ag(hl7.%|MA~jUkb`;b{ꂢ*eKqU+B>X{MF=V6P:d)W@p'8"R7M_RfRm!(%NWp1VcNp7K '}8'ʝW2iQ
+[Θ3vɼB[Ve^v&">
~+CҖUO|?kӎ+2ѾM5Kќ
\ No newline at end of file
diff --git a/mako/.config/mako/config b/mako/.config/mako/config
index 700a5e0..94c3622 100644
--- a/mako/.config/mako/config
+++ b/mako/.config/mako/config
@@ -1 +1 @@
-font=ttyp0 11
+font=Hack 9
diff --git a/neomutt/.config/neomutt/account.gpg b/neomutt/.config/neomutt/account.gpg
deleted file mode 100644
index df2c6cf..0000000
Binary files a/neomutt/.config/neomutt/account.gpg and /dev/null differ
diff --git a/neomutt/.config/neomutt/neomuttrc b/neomutt/.config/neomutt/neomuttrc
deleted file mode 100644
index 6dd64dc..0000000
--- a/neomutt/.config/neomutt/neomuttrc
+++ /dev/null
@@ -1,20 +0,0 @@
-# Identity
-set real_name = "Grigory Shipunov"
-set from = "mail@oxapentane.com"
-alternates "@oxapentane\.com$"
-set reverse_name
-
-# look and feel
-set sort = threads
-
-# TODO: Local mail
-
-# oxapentane.com
-
-set imap_user = "mail@oxapentane.com"
-set imap_pass = "`gpg --batch -q --decrypt ~/.config/neomutt/account.gpg`"
-
-set folder = imaps://imap.migadu.com/
-set spool_file = "+INBOX"
-set mail_check = 60
-
diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim
index 8e36822..bcbd2db 100644
--- a/nvim/.config/nvim/init.vim
+++ b/nvim/.config/nvim/init.vim
@@ -20,24 +20,23 @@ Plug 'vim-pandoc/vim-pandoc'
Plug 'vim-pandoc/vim-pandoc-syntax'
Plug 'vim-pandoc/vim-rmarkdown'
Plug 'lepture/vim-jinja'
+Plug 'neomutt/neomutt.vim'
" Slimey stuff
Plug 'kassio/neoterm'
-" lsp
-" Plug 'neovim/nvim-lspconfig'
-" Plug 'ms-jpq/coq_nvim'
-
" pretty bits
Plug 'jeffkreeftmeijer/vim-dim'
-Plug 'vim-airline/vim-airline'
-Plug 'vim-airline/vim-airline-themes'
Plug 'luochen1990/rainbow'
+" Git
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
+
" completion
Plug 'Shougo/deoplete.nvim'
+Plug 'junegunn/fzf'
+Plug 'junegunn/fzf.vim'
call plug#end()
@@ -46,8 +45,8 @@ autocmd BufRead,BufNewFile *.nasm set filetype=nasm
" Theme
colorscheme dim
-let g:airline_theme='monochrome'
-let g:rainbow_active = 1
+
+let g:rainbow_active = 1 " rainbow delimiters
" langmap russian
set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
@@ -117,6 +116,9 @@ set wildmode=longest:full,list:full
" U is quite useless
nnoremap U :echo "NOPE!"
+" help is quite annoying when you miss esc
+map
+imap
" do not conceal stuff
set conceallevel=0
@@ -138,5 +140,14 @@ vnoremap :TREPLSendSelection
" lsp (in lua), and completion
"lua require('lsp-config')
+
+" Whitespace highlight
highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+$/
+
+" fzf
+nmap f :Files
+nmap b :Buffers
+
+" set terminal title
+set title
diff --git a/nvim/.config/nvim/lua/lsp-config.lua b/nvim/.config/nvim/lua/lsp-config.lua
deleted file mode 100644
index 9d4377c..0000000
--- a/nvim/.config/nvim/lua/lsp-config.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local lsp = require('lspconfig')
-local coq = require('coq')
-
-lsp.texlab.setup{}
-lsp.texlab.setup(coq.lsp_ensure_capabilities{})
-lsp.pylsp.setup{}
-lsp.pylsp.setup(coq.lsp_ensure_capabilities{})
-
-vim.g.coq_settings = {
- auto_start = 'shut-up',
-}
-
diff --git a/pylintrc/.config/pylintrc b/pylintrc/.config/pylintrc
deleted file mode 100644
index b947a65..0000000
--- a/pylintrc/.config/pylintrc
+++ /dev/null
@@ -1,589 +0,0 @@
-[MASTER]
-
-# A comma-separated list of package or module names from where C extensions may
-# be loaded. Extensions are loading into the active Python interpreter and may
-# run arbitrary code.
-extension-pkg-whitelist=
-
-# Add files or directories to the blacklist. They should be base names, not
-# paths.
-ignore=CVS
-
-# Add files or directories matching the regex patterns to the blacklist. The
-# regex matches against base names, not paths.
-ignore-patterns=
-
-# Python code to execute, usually for sys.path manipulation such as
-# pygtk.require().
-#init-hook=
-
-# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
-# number of processors available to use.
-jobs=2
-
-# Control the amount of potential inferred values when inferring a single
-# object. This can help the performance when dealing with large functions or
-# complex, nested conditions.
-limit-inference-results=100
-
-# List of plugins (as comma separated values of python module names) to load,
-# usually to register additional checkers.
-load-plugins=
-
-# Pickle collected data for later comparisons.
-persistent=yes
-
-# Specify a configuration file.
-#rcfile=
-
-# When enabled, pylint would attempt to guess common misconfiguration and emit
-# user-friendly hints instead of false-positive error messages.
-suggestion-mode=yes
-
-# Allow loading of arbitrary C extensions. Extensions are imported into the
-# active Python interpreter and may run arbitrary code.
-unsafe-load-any-extension=no
-
-
-[MESSAGES CONTROL]
-
-# Only show warnings with the listed confidence levels. Leave empty to show
-# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED.
-confidence=
-
-# Disable the message, report, category or checker with the given id(s). You
-# can either give multiple identifiers separated by comma (,) or put this
-# option multiple times (only on the command line, not in the configuration
-# file where it should appear only once). You can also use "--disable=all" to
-# disable everything first and then reenable specific checks. For example, if
-# you want to run only the similarities checker, you can use "--disable=all
-# --enable=similarities". If you want to run only the classes checker, but have
-# no Warning level messages displayed, use "--disable=all --enable=classes
-# --disable=W".
-disable=print-statement,
- parameter-unpacking,
- unpacking-in-except,
- old-raise-syntax,
- backtick,
- long-suffix,
- old-ne-operator,
- old-octal-literal,
- import-star-module-level,
- non-ascii-bytes-literal,
- raw-checker-failed,
- bad-inline-option,
- locally-disabled,
- file-ignored,
- suppressed-message,
- useless-suppression,
- deprecated-pragma,
- use-symbolic-message-instead,
- apply-builtin,
- basestring-builtin,
- buffer-builtin,
- cmp-builtin,
- coerce-builtin,
- execfile-builtin,
- file-builtin,
- long-builtin,
- raw_input-builtin,
- reduce-builtin,
- standarderror-builtin,
- unicode-builtin,
- xrange-builtin,
- coerce-method,
- delslice-method,
- getslice-method,
- setslice-method,
- no-absolute-import,
- old-division,
- dict-iter-method,
- dict-view-method,
- next-method-called,
- metaclass-assignment,
- indexing-exception,
- raising-string,
- reload-builtin,
- oct-method,
- hex-method,
- nonzero-method,
- cmp-method,
- input-builtin,
- round-builtin,
- intern-builtin,
- unichr-builtin,
- map-builtin-not-iterating,
- zip-builtin-not-iterating,
- range-builtin-not-iterating,
- filter-builtin-not-iterating,
- using-cmp-argument,
- eq-without-hash,
- div-method,
- idiv-method,
- rdiv-method,
- exception-message-attribute,
- invalid-str-codec,
- sys-max-int,
- bad-python3-import,
- deprecated-string-function,
- deprecated-str-translate-call,
- deprecated-itertools-function,
- deprecated-types-field,
- next-method-defined,
- dict-items-not-iterating,
- dict-keys-not-iterating,
- dict-values-not-iterating,
- deprecated-operator-function,
- deprecated-urllib-function,
- xreadlines-attribute,
- deprecated-sys-function,
- exception-escape,
- comprehension-escape,
- invalid-name
-
-# Enable the message, report, category or checker with the given id(s). You can
-# either give multiple identifier separated by comma (,) or put this option
-# multiple time (only on the command line, not in the configuration file where
-# it should appear only once). See also the "--disable" option for examples.
-enable=c-extension-no-member
-
-
-[REPORTS]
-
-# Python expression which should return a score less than or equal to 10. You
-# have access to the variables 'error', 'warning', 'refactor', and 'convention'
-# which contain the number of messages in each category, as well as 'statement'
-# which is the total number of statements analyzed. This score is used by the
-# global evaluation report (RP0004).
-evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
-
-# Template used to display messages. This is a python new-style format string
-# used to format the message information. See doc for all details.
-#msg-template=
-
-# Set the output format. Available formats are text, parseable, colorized, json
-# and msvs (visual studio). You can also give a reporter class, e.g.
-# mypackage.mymodule.MyReporterClass.
-output-format=text
-
-# Tells whether to display a full report or only the messages.
-reports=no
-
-# Activate the evaluation score.
-score=yes
-
-
-[REFACTORING]
-
-# Maximum number of nested blocks for function / method body
-max-nested-blocks=5
-
-# Complete name of functions that never returns. When checking for
-# inconsistent-return-statements if a never returning function is called then
-# it will be considered as an explicit return statement and no message will be
-# printed.
-never-returning-functions=sys.exit
-
-
-[LOGGING]
-
-# Format style used to check logging format string. `old` means using %
-# formatting, `new` is for `{}` formatting,and `fstr` is for f-strings.
-logging-format-style=old
-
-# Logging modules to check that the string format arguments are in logging
-# function parameter format.
-logging-modules=logging
-
-
-[FORMAT]
-
-# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
-expected-line-ending-format=
-
-# Regexp for a line that is allowed to be longer than the limit.
-ignore-long-lines=^\s*(# )??$
-
-# Number of spaces of indent required inside a hanging or continued line.
-indent-after-paren=4
-
-# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
-# tab).
-indent-string=' '
-
-# Maximum number of characters on a single line.
-max-line-length=100
-
-# Maximum number of lines in a module.
-max-module-lines=1000
-
-# List of optional constructs for which whitespace checking is disabled. `dict-
-# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
-# `trailing-comma` allows a space between comma and closing bracket: (a, ).
-# `empty-line` allows space-only lines.
-no-space-check=trailing-comma,
- dict-separator
-
-# Allow the body of a class to be on the same line as the declaration if body
-# contains single statement.
-single-line-class-stmt=no
-
-# Allow the body of an if to be on the same line as the test if there is no
-# else.
-single-line-if-stmt=no
-
-
-[MISCELLANEOUS]
-
-# List of note tags to take in consideration, separated by a comma.
-notes=FIXME,
- XXX,
- TODO
-
-
-[BASIC]
-
-# Naming style matching correct argument names.
-argument-naming-style=snake_case
-
-# Regular expression matching correct argument names. Overrides argument-
-# naming-style.
-#argument-rgx=
-
-# Naming style matching correct attribute names.
-attr-naming-style=snake_case
-
-# Regular expression matching correct attribute names. Overrides attr-naming-
-# style.
-#attr-rgx=
-
-# Bad variable names which should always be refused, separated by a comma.
-bad-names=foo,
- bar,
- baz,
- toto,
- tutu,
- tata
-
-# Naming style matching correct class attribute names.
-class-attribute-naming-style=any
-
-# Regular expression matching correct class attribute names. Overrides class-
-# attribute-naming-style.
-#class-attribute-rgx=
-
-# Naming style matching correct class names.
-class-naming-style=PascalCase
-
-# Regular expression matching correct class names. Overrides class-naming-
-# style.
-#class-rgx=
-
-# Naming style matching correct constant names.
-const-naming-style=UPPER_CASE
-
-# Regular expression matching correct constant names. Overrides const-naming-
-# style.
-#const-rgx=
-
-# Minimum line length for functions/classes that require docstrings, shorter
-# ones are exempt.
-docstring-min-length=-1
-
-# Naming style matching correct function names.
-function-naming-style=snake_case
-
-# Regular expression matching correct function names. Overrides function-
-# naming-style.
-#function-rgx=
-
-# Good variable names which should always be accepted, separated by a comma.
-good-names=i,
- j,
- k,
- ex,
- Run,
- _
-
-# Include a hint for the correct naming format with invalid-name.
-include-naming-hint=no
-
-# Naming style matching correct inline iteration names.
-inlinevar-naming-style=any
-
-# Regular expression matching correct inline iteration names. Overrides
-# inlinevar-naming-style.
-#inlinevar-rgx=
-
-# Naming style matching correct method names.
-method-naming-style=snake_case
-
-# Regular expression matching correct method names. Overrides method-naming-
-# style.
-#method-rgx=
-
-# Naming style matching correct module names.
-module-naming-style=snake_case
-
-# Regular expression matching correct module names. Overrides module-naming-
-# style.
-#module-rgx=
-
-# Colon-delimited sets of names that determine each other's naming style when
-# the name regexes allow several styles.
-name-group=
-
-# Regular expression which should only match function or class names that do
-# not require a docstring.
-no-docstring-rgx=^_
-
-# List of decorators that produce properties, such as abc.abstractproperty. Add
-# to this list to register other decorators that produce valid properties.
-# These decorators are taken in consideration only for invalid-name.
-property-classes=abc.abstractproperty
-
-# Naming style matching correct variable names.
-variable-naming-style=snake_case
-
-# Regular expression matching correct variable names. Overrides variable-
-# naming-style.
-#variable-rgx=
-
-
-[SPELLING]
-
-# Limits count of emitted suggestions for spelling mistakes.
-max-spelling-suggestions=4
-
-# Spelling dictionary name. Available dictionaries: de_LI (myspell), en_PH
-# (myspell), de_LU (myspell), ru_RU (myspell), de_DE (myspell), en_TT
-# (myspell), de_BE (myspell), en_BZ (myspell), en_DK (myspell), en_JM
-# (myspell), en_NZ (myspell), en_CA (myspell), en_GB (myspell), en_AU
-# (myspell), en_HK (myspell), en_US (myspell), de_AT (myspell), en_ZM
-# (myspell), en_SG (myspell), en_NA (myspell), en_IN (myspell), en_NG
-# (myspell), en_AG (myspell), ru_UA (myspell), en_BW (myspell), en_ZA
-# (myspell), en_MW (myspell), en_GH (myspell), en_BS (myspell), en_IE
-# (myspell), de_CH (myspell), en_ZW (myspell).
-spelling-dict=
-
-# List of comma separated words that should not be checked.
-spelling-ignore-words=
-
-# A path to a file that contains the private dictionary; one word per line.
-spelling-private-dict-file=
-
-# Tells whether to store unknown words to the private dictionary (see the
-# --spelling-private-dict-file option) instead of raising a message.
-spelling-store-unknown-words=no
-
-
-[STRING]
-
-# This flag controls whether the implicit-str-concat-in-sequence should
-# generate a warning on implicit string concatenation in sequences defined over
-# several lines.
-check-str-concat-over-line-jumps=no
-
-
-[SIMILARITIES]
-
-# Ignore comments when computing similarities.
-ignore-comments=yes
-
-# Ignore docstrings when computing similarities.
-ignore-docstrings=yes
-
-# Ignore imports when computing similarities.
-ignore-imports=no
-
-# Minimum lines number of a similarity.
-min-similarity-lines=4
-
-
-[TYPECHECK]
-
-# List of decorators that produce context managers, such as
-# contextlib.contextmanager. Add to this list to register other decorators that
-# produce valid context managers.
-contextmanager-decorators=contextlib.contextmanager
-
-# List of members which are set dynamically and missed by pylint inference
-# system, and so shouldn't trigger E1101 when accessed. Python regular
-# expressions are accepted.
-generated-members=
-
-# Tells whether missing members accessed in mixin class should be ignored. A
-# mixin class is detected if its name ends with "mixin" (case insensitive).
-ignore-mixin-members=yes
-
-# Tells whether to warn about missing members when the owner of the attribute
-# is inferred to be None.
-ignore-none=yes
-
-# This flag controls whether pylint should warn about no-member and similar
-# checks whenever an opaque object is returned when inferring. The inference
-# can return multiple potential results while evaluating a Python object, but
-# some branches might not be evaluated, which results in partial inference. In
-# that case, it might be useful to still emit no-member and other checks for
-# the rest of the inferred objects.
-ignore-on-opaque-inference=yes
-
-# List of class names for which member attributes should not be checked (useful
-# for classes with dynamically set attributes). This supports the use of
-# qualified names.
-ignored-classes=optparse.Values,thread._local,_thread._local
-
-# List of module names for which member attributes should not be checked
-# (useful for modules/projects where namespaces are manipulated during runtime
-# and thus existing member attributes cannot be deduced by static analysis). It
-# supports qualified module names, as well as Unix pattern matching.
-ignored-modules=
-
-# Show a hint with possible names when a member name was not found. The aspect
-# of finding the hint is based on edit distance.
-missing-member-hint=yes
-
-# The minimum edit distance a name should have in order to be considered a
-# similar match for a missing member name.
-missing-member-hint-distance=1
-
-# The total number of similar names that should be taken in consideration when
-# showing a hint for a missing member.
-missing-member-max-choices=1
-
-# List of decorators that change the signature of a decorated function.
-signature-mutators=
-
-
-[VARIABLES]
-
-# List of additional names supposed to be defined in builtins. Remember that
-# you should avoid defining new builtins when possible.
-additional-builtins=
-
-# Tells whether unused global variables should be treated as a violation.
-allow-global-unused-variables=yes
-
-# List of strings which can identify a callback function by name. A callback
-# name must start or end with one of those strings.
-callbacks=cb_,
- _cb
-
-# A regular expression matching the name of dummy variables (i.e. expected to
-# not be used).
-dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
-
-# Argument names that match this expression will be ignored. Default to name
-# with leading underscore.
-ignored-argument-names=_.*|^ignored_|^unused_
-
-# Tells whether we should check for unused import in __init__ files.
-init-import=no
-
-# List of qualified module names which can have objects that can redefine
-# builtins.
-redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io
-
-
-[IMPORTS]
-
-# List of modules that can be imported at any level, not just the top level
-# one.
-allow-any-import-level=
-
-# Allow wildcard imports from modules that define __all__.
-allow-wildcard-with-all=no
-
-# Analyse import fallback blocks. This can be used to support both Python 2 and
-# 3 compatible code, which means that the block might have code that exists
-# only in one or another interpreter, leading to false positives when analysed.
-analyse-fallback-blocks=no
-
-# Deprecated modules which should not be used, separated by a comma.
-deprecated-modules=optparse,tkinter.tix
-
-# Create a graph of external dependencies in the given file (report RP0402 must
-# not be disabled).
-ext-import-graph=
-
-# Create a graph of every (i.e. internal and external) dependencies in the
-# given file (report RP0402 must not be disabled).
-import-graph=
-
-# Create a graph of internal dependencies in the given file (report RP0402 must
-# not be disabled).
-int-import-graph=
-
-# Force import order to recognize a module as part of the standard
-# compatibility libraries.
-known-standard-library=
-
-# Force import order to recognize a module as part of a third party library.
-known-third-party=enchant
-
-# Couples of modules and preferred modules, separated by a comma.
-preferred-modules=
-
-
-[CLASSES]
-
-# List of method names used to declare (i.e. assign) instance attributes.
-defining-attr-methods=__init__,
- __new__,
- setUp,
- __post_init__
-
-# List of member names, which should be excluded from the protected access
-# warning.
-exclude-protected=_asdict,
- _fields,
- _replace,
- _source,
- _make
-
-# List of valid names for the first argument in a class method.
-valid-classmethod-first-arg=cls
-
-# List of valid names for the first argument in a metaclass class method.
-valid-metaclass-classmethod-first-arg=cls
-
-
-[DESIGN]
-
-# Maximum number of arguments for function / method.
-max-args=5
-
-# Maximum number of attributes for a class (see R0902).
-max-attributes=7
-
-# Maximum number of boolean expressions in an if statement (see R0916).
-max-bool-expr=5
-
-# Maximum number of branch for function / method body.
-max-branches=12
-
-# Maximum number of locals for function / method body.
-max-locals=15
-
-# Maximum number of parents for a class (see R0901).
-max-parents=7
-
-# Maximum number of public methods for a class (see R0904).
-max-public-methods=20
-
-# Maximum number of return / yield for function / method body.
-max-returns=6
-
-# Maximum number of statements in function / method body.
-max-statements=50
-
-# Minimum number of public methods for a class (see R0903).
-min-public-methods=2
-
-
-[EXCEPTIONS]
-
-# Exceptions that will emit a warning when being caught. Defaults to
-# "BaseException, Exception".
-overgeneral-exceptions=BaseException,
- Exception
diff --git a/scripts/colors.sh b/scripts/colors.sh
deleted file mode 100755
index 83673bf..0000000
--- a/scripts/colors.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-
-echo -e "\033[0mNC (No color)"
-echo -e "\033[1;37mWHITE\t\033[0;30mBLACK"
-echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE"
-echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN"
-echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN"
-echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED"
-echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE"
-echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW"
-echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"
diff --git a/sway/.config/i3status-rust/config.toml b/sway/.config/i3status-rust/config.toml
new file mode 100644
index 0000000..e944314
--- /dev/null
+++ b/sway/.config/i3status-rust/config.toml
@@ -0,0 +1,58 @@
+[theme]
+name = "foot.toml"
+
+[icons]
+name = "awesome6"
+
+[[block]]
+block = "maildir"
+interval = 60
+inboxes = ["/home/grue/mail/mail@oxapentane.com/INBOX", "/home/grue/mail/mail@oxapentane.com/sinkhole", "/home/grue/mail/dump@dvb.solutions/INBOX", "/home/grue/mail/grigory@shipunov.xyz/INBOX"]
+threshold_warning = 1
+threshold_critical = 10
+display_type = "new"
+on_click = "foot mbsync -a"
+
+[[block]]
+block = "net"
+
+[[block]]
+block = "memory"
+display_type = "memory"
+format_mem = "{mem_used_percents}"
+format_swap = "{swap_used_percents}"
+
+[[block]]
+block = "cpu"
+format = "{barchart} {utilization}"
+
+[[block]]
+block = "load"
+interval = 1
+format = "{1m} {5m} {15m}"
+icons_format = " "
+
+[[block]]
+block = "sound"
+on_click = "foot -e pulsemixer"
+
+[[block]]
+block = "keyboard_layout"
+driver = "sway"
+format = "{layout}"
+[block.mappings]
+"English (US)" = "UWU"
+"Russian (N/A)" = "ЪУЪ"
+
+[[block]]
+block = "battery"
+driver = "upower"
+format = "{percentage} {time}"
+if_command = "test -e /sys/class/power_supply/BAT0"
+
+[[block]]
+block = "time"
+interval = 5
+format = "%a %F %T"
+interval = 1
+icons_format = " "
diff --git a/sway/.config/i3status-rust/themes/foot.toml b/sway/.config/i3status-rust/themes/foot.toml
new file mode 100644
index 0000000..19101e3
--- /dev/null
+++ b/sway/.config/i3status-rust/themes/foot.toml
@@ -0,0 +1,18 @@
+idle_bg = "#111111"
+idle_fg = "#dcdccc"
+
+good_bg = "#7f9f7f"
+good_fg = "#111111"
+
+info_bg = "#cc9393"
+info_fg = "#111111"
+
+warning_bg = "#f0dfaf"
+warning_fg = "#111111"
+
+critical_bg = "#fcace3"
+critical_fg = "#111111"
+
+separator = "/"
+separator_fg = "#ffffff"
+separator_bg = "#111111"
diff --git a/sway/.config/sway/colors b/sway/.config/sway/colors
new file mode 100644
index 0000000..12d1f3b
--- /dev/null
+++ b/sway/.config/sway/colors
@@ -0,0 +1,18 @@
+set $colorFG #dcdccc
+set $colorBG #111111
+set $color00 #222222
+set $color01 #cc9393
+set $color02 #7f9f7f
+set $color03 #d0bf8f
+set $color04 #6ca0a3
+set $color05 #dc8cc3
+set $color06 #93e0e3
+set $color07 #dcdccc
+set $color10 #666666
+set $color11 #dca3a3
+set $color12 #bfebbf
+set $color13 #f0dfaf
+set $color14 #8cd0d3
+set $color15 #fcace3
+set $color16 #b3ffff
+set $color17 #ffffff
diff --git a/sway/.config/sway/config b/sway/.config/sway/config
index a75fd5e..5d28974 100644
--- a/sway/.config/sway/config
+++ b/sway/.config/sway/config
@@ -14,7 +14,7 @@ set $down j
set $up k
set $right l
# Your preferred terminal emulator
-set $term alacritty
+set $term foot
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
@@ -37,9 +37,9 @@ output * bg ~/.wall.png fill
# Example configuration:
#
exec swayidle -w \
- timeout 300 'swaylock -i ~/.lock.png -f -c 000000' \
+ timeout 300 'swaylock-fancy --show-failed-attempts --daemonize -p -t "MICROWAVE ON HIGH FOR FIVE MINUTES"' \
timeout 303 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
- before-sleep 'swaylock -i ~/.lock.png -f -c 000000'
+ before-sleep 'swaylock-fancy --show-failed-attempts --daemonize -p -t "MICROWAVE ON HIGH FOR FIVE MINUTES"'
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
@@ -64,6 +64,9 @@ exec swayidle -w \
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
+### override defaults
+focus_follows_mouse no
+
### Key bindings
#
# Basics:
@@ -97,8 +100,10 @@ exec swayidle -w \
bindsym --to-code XF86AudioRaiseVolume exec 'pamixer -i 1'
bindsym --to-code XF86AudioLowerVolume exec 'pamixer -d 1'
bindsym --to-code XF86AudioMute exec 'pamixer -t'
- bindsym --to-code $mod+BackSpace exec 'swaylock -i ~/.lock.png'
- bindsym --to-code $mod+Mod1+p exec 'flameshot gui'
+ bindsym --to-code $mod+Delete exec 'swaylock-fancy --show-failed-attempts --daemonize -p -t "MICROWAVE ON HIGH FOR FIVE MINUTES"'
+ #bindsym --to-code $mod+Mod1+p exec 'flameshot gui'
+ bindsym --to-code $mod+p exec 'grim -g "$(slurp)" - | wl-copy'
+ bindsym --to-code $mod+Mod1+p exec 'grim -g "$(slurp)" ~/Pictures/$(date +"%Y-%m-%d-%H-%M-%S").png'
#
@@ -214,19 +219,38 @@ mode "resize" {
}
bindsym --to-code $mod+r mode "resize"
+## Styling: colors
+include colors
+
+## Window styling
+# Border BG Text Indicator Child Border
+client.focused $color05 $color05 $color00 $color01 $color05
+#client.focused_inactive $color00 $color00 $color00 $color00 $color00
+
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
position top
+ font pango:Hack, Font Awesome 6 Free 9
icon_theme "Adwaita"
- status_command /run/current-system/sw/bin/i3status-rs ~/.config/sway/i3status-rs.toml
+ status_command /run/current-system/sw/bin/i3status-rs
+ colors {
+ background $colorBG
+ separator $color05
+ # statusline $color15
+
+ # STATE Border BG Text
+ focused_workspace $color15 $color05 $color00
+ }
}
# default border
default_border pixel 2
# Set font
-font pango:JuliaMono 9
+font pango:Hack, Font Awesome 6 Free 9
+# font pango:ttyp0 10
+#font pango:JuliaMono 9
include /etc/sway/config.d/*
diff --git a/sway/.config/sway/i3status-rs.toml b/sway/.config/sway/i3status-rs.toml
deleted file mode 100644
index 454d9e3..0000000
--- a/sway/.config/sway/i3status-rs.toml
+++ /dev/null
@@ -1,48 +0,0 @@
-theme = "native"
-
-[icons]
-name = "none"
-
-[[block]]
-block = "networkmanager"
-interface_name_exclude = ["br\\-[0-9a-f]{12}", "docker\\d+"]
-interface_name_include = []
-ap_format = "{ssid^5}"
-device_format = "{name} {ap} {ips}"
-
-[[block]]
-block = "memory"
-display_type = "memory"
-format_mem = "{mem_used_percents}"
-format_swap = "{swap_used_percents}"
-
-[[block]]
-block = "load"
-interval = 1
-format = "{1m} {5m} {15m}"
-icons_format = " "
-
-[[block]]
-block = "sound"
-on_click = "alacritty -e pulsemixer"
-
-[[block]]
-block = "time"
-interval = 5
-format = "%a %F %T"
-interval = 1
-icons_format = " "
-
-[[block]]
-block = "keyboard_layout"
-driver = "sway"
-format = "{layout}"
-[block.mappings]
-"English (US)" = "EN"
-"Russian (N/A)" = "RU"
-
-[[block]]
-block = "battery"
-driver = "upower"
-format = "{percentage}"
-if_command = "test -e /sys/class/power_supply/BAT0"
diff --git a/sway/.config/waybar/config b/sway/.config/waybar/config
deleted file mode 100644
index 7f0fc07..0000000
--- a/sway/.config/waybar/config
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "layer": "top",
- "modules-left": ["sway/workspaces", "sway/mode"],
- "modules-center": ["sway/window"],
- "modules-right": ["battery", "clock"],
- "sway/window": {
- "max-length": 50
- },
- "battery": {
- "format": "{capacity}% {icon}",
- "format-icons": ["", "", "", "", ""]
- },
- "clock": {
- "format-alt": "{:%a, %d. %b %H:%M}"
- }
-}