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˵Y JP.@W;?m2wt$IchgFf*yd?͔AnDXpQZO>8Ag(hl7.%|MA~jUkb`;b{ꂢ*eKqU+B>X{MF=V 6P: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}" - } -}