moving to awesome literate

This commit is contained in:
Chris Cochrun 2020-09-03 05:01:41 -05:00
parent 4fae307cdf
commit 24e347ed36
11 changed files with 1177 additions and 243 deletions

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "nice"]
path = awesome/nice
url = https://github.com/mut-ex/awesome-wm-nice.git

1
awesome/nice Submodule

@ -0,0 +1 @@
Subproject commit 04bab00b464039702756d5dd812aea754a907a95

View file

@ -1,5 +1,3 @@
-- 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
@ -13,49 +11,29 @@ local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
-- local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
local ruled = require("ruled")
local nice = require("nice")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
-- require('layout')
-- Widgets to add
-- local batteryarc_widget = require("awesome-wm-widget.batteryarc-widget.batteryarc")
-- >> Daemons
-- Most widgets that display system/external info depend on evil.
-- Make sure to initialize it last in order to allow all widgets to connect to
-- their needed evil signals.
-- require("evil")
-- ===================================================================
-- ===================================================================
-- ========================================
-- Modules
-- Load all the modules
-- ========================================
require('module.notifications')
-- require('module.auto-start')
require('module.decorate-client')
require('module.backdrop')
require('module.volume-osd')
require('module.brightness-osd')
-- require('module.auto-start')
-- require('module.exit-screen')
-- require('module.quake-terminal')
-- require('module.titlebar')
-- require('module.menu')
require('module.volume-osd')
require('module.brightness-osd')
-- require('module.dynamic-wallpaper')
-- require('module.battery-notifier')
-- require('module.lockscreen')
-- -- {{{ 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)
@ -87,7 +65,7 @@ beautiful.init("/home/chris/.config/awesome/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "alacritty"
editor = os.getenv("EDITOR") or "emacsclient -a emacs"
editor = "emacsclient -a emacs"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
@ -420,9 +398,6 @@ awful.screen.connect_for_each_screen(function(s)
end)
-- }}}
testwibox = wibox {x = 20, y = 10, width = 10, height = 10, ontop = true, bg = "#000000"}
testwibox:to_widget()
-- {{{ Mouse bindings
root.buttons(gears.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
@ -504,7 +479,11 @@ globalkeys = gears.table.join(
{description = "open firefox", group = "apps"}),
awful.key({ modkey, }, "e", function () awful.spawn("emacsclient -c") end,
{description = "open emacs frame connected to server", group = "apps"}),
-- dolphin
awful.key({ modkey, }, "d", function () awful.spawn("dolphin") end,
{description = "open dolphin file manager", group = "apps"}),
-- layout
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,
@ -601,7 +580,7 @@ clientkeys = gears.table.join(
c:raise()
end,
{description = "toggle fullscreen", group = "client"}),
awful.key({ modkey, }, "q", function (c) c:kill() end,
awful.key({ modkey, }, "c", function (c) c:kill() end,
{description = "close", group = "client"}),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
{description = "toggle floating", group = "client"}),
@ -708,68 +687,83 @@ root.keys(globalkeys)
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
ruled.client.append_rule {
-- 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
},
}
client.connect_signal("request::rules", function(c)
ruled.client.append_rule {
-- 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
},
}
ruled.client.append_rule {
-- Floating clients.
rule_any = {
class = {
"Arandr",
"Blender",
"dolphin",
},
name = {
"Event Tester", -- xev.
"remove images?" -- darktable delete window.
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
}
},
properties = { floating = true },
}
ruled.client.append_rule {
-- make mpv float
rule_any = {
class = {
"mpv",
"gl",
"vlc"
}
},
properties = {
placement = awful.placement.centered,
floating = true,
ontop = true
},
ruled.client.append_rule {
-- Add titlebars to normal clients and dialogs
rule_any = { type = { "normal", "dialog" } },
properties = { titlebars_enabled = false},
}
}
ruled.client.append_rule {
-- Set Firefox to never have titlebars
rule = { class = "Firefox" },
properties = { requests_no_titlebar = true, titlebars_enabled = false },
}
-- ruled.client.append_rule {
-- -- Floating clients.
-- rule_any = {
-- class = {
-- "Arandr",
-- "Blender",
-- "dolphin",
-- },
-- name = {
-- "Event Tester", -- xev.
-- "remove images?" -- darktable delete window.
-- },
-- role = {
-- "AlarmWindow", -- Thunderbird's calendar.
-- "ConfigManager", -- Thunderbird's about:config.
-- "pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
-- }
-- },
-- properties = { floating = true },
-- }
ruled.client.append_rule {
-- Set Feh center
rule = { class = "feh" },
properties = {
placement = awful.placement.centered,
floating = true
},
}
-- ruled.client.append_rule {
-- -- Add titlebars to normal clients and dialogs
-- rule_any = { type = { "normal", "dialog" } },
-- properties = { titlebars_enabled = false},
-- }
ruled.client.append_rule {
rule_any = { class = { "FelgoLiveClient", "mpv", "gl" } },
properties = {floating = true, ontop = true},
}
-- ruled.client.append_rule {
-- -- Set Firefox to never have titlebars
-- rule = { class = "Firefox" },
-- properties = { requests_no_titlebar = true, titlebars_enabled = false },
-- }
-- ruled.client.append_rule {
-- -- Set Feh center
-- rule = { class = "feh" },
-- properties = {
-- placement = awful.placement.centered,
-- floating = true
-- },
-- }
end)
-- }}}
awful.spawn.with_shell("mpv /home/chris/Videos/transcoded/a love letter.mp4")
-- {{{ Signals
-- Signal function to execute when a new client appears.
@ -786,62 +780,25 @@ client.connect_signal("manage", function (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)
-- Enable nice titlebars
nice()
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)
-- }}}
-- Autostart Applications
awful.spawn.with_shell("picom --experimental-backend")
awful.spawn.with_shell("libinput-gestures-setup start")
awful.spawn.with_shell("flameshot")
awful.spawn.with_shell("xset r rate 220 90")
awful.spawn.with_shell("feh --bg-fill ~/Pictures/wallpapers/RoyalKing.png")
-- awful.spawn.with_shell("feh --bg-fill ~/Pictures/wallpapers/RoyalKing.png")
awful.spawn.with_shell("/usr/lib/polkit-kde-authentication-agent-1")
awful.spawn.with_shell("emacs -daemon")
awful.spawn.with_shell("nextcloud --background")

897
awesome/rc.org Normal file
View file

@ -0,0 +1,897 @@
#+TITLE: Awesome RC Config
#+AUTHOR: Chris Cochrun
#+DESCRIPTION: This is my awesomewm config
#+PROPERTY: header-args :tangle rc.lua
* AWESOME CONFIG
This is my Awesome Window Manager config
If LuaRocks is installed, make sure that packages installed through it are found (e.g. lgi). If LuaRocks is not installed, do nothing.
#+BEGIN_SRC lua :tangle yes
pcall(require, "luarocks.loader")
#+END_SRC
* Libraries
#+BEGIN_SRC lua :tangle yes
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
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")
local ruled = require("ruled")
local nice = require("nice")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
#+END_SRC
* Modules and Widgets
#+BEGIN_SRC lua :tangle no
-- require('layout')
-- Widgets to add
-- local batteryarc_widget = require("awesome-wm-widget.batteryarc-widget.batteryarc")
-- >> Daemons
-- Most widgets that display system/external info depend on evil.
-- Make sure to initialize it last in order to allow all widgets to connect to
-- their needed evil signals.
-- require("evil")
-- ===================================================================
-- ===================================================================
#+END_SRC
=======================================
Modules
Load all the modules
=======================================
#+BEGIN_SRC lua :tangle yes
require('module.notifications')
require('module.decorate-client')
require('module.backdrop')
require('module.volume-osd')
require('module.brightness-osd')
-- require('module.auto-start')
-- require('module.exit-screen')
-- require('module.quake-terminal')
-- require('module.titlebar')
-- require('module.menu')
-- require('module.dynamic-wallpaper')
-- require('module.battery-notifier')
-- require('module.lockscreen')
#+END_SRC
* Theme and Variables
#+BEGIN_SRC lua :tangle yes
-- -- {{{ 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("/home/chris/.config/awesome/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "alacritty"
editor = "emacsclient -a emacs"
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"
altkey = "Mod1"
#+END_SRC
* Layouts
#+BEGIN_SRC lua :tangle yes
-- Table of layouts to cover with awful.layout.inc, order matters.
awful.layout.layouts = {
awful.layout.suit.tile,
awful.layout.suit.magnifier,
awful.layout.suit.floating,
-- awful.layout.suit.tile.left,
-- awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
-- awful.layout.suit.fair.horizontal,
-- awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
-- awful.layout.suit.max.fullscreen,
-- awful.layout.suit.corner.nw,
-- awful.layout.suit.corner.ne,
-- awful.layout.suit.corner.sw,
-- awful.layout.suit.corner.se,
}
-- }}}
#+END_SRC
* Menu and Launchers
#+BEGIN_SRC lua :tangle yes
-- {{{ 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()
#+END_SRC
* Bar
#+BEGIN_SRC lua :tangle yes
-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock(" %a %b %d, %l:%M %p ")
-- Create a volume widget
-- myvolumewidget = wibox.widget.button()
-- 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)
-- mynewpanel:setup {
-- layout = wibox.layout.align.horizontal,
-- expand = "outside",
-- { -- Left widgets
-- layout = wibox.layout.align.horizontal,
-- -- wibox.container.margin (s.mytaglist,25,0,0,0),
-- -- wibox.container.margin (s.mytasklist,25,25,0,0), -- Middle widget
-- -- s.myemptywidget,
-- spacing = 15
-- },
-- -- mytextclock,
-- { -- Right widgets
-- layout = wibox.layout.align.horizontal,
-- -- s.myemptywidget,
-- -- s.myemptywidget,
-- -- s.myrightwidgets,
-- },
-- }
awful.screen.connect_for_each_screen(function(s)
-- Wallpaper
set_wallpaper(s)
-- Each screen has its own tag table.
awful.tag({ "◉", "◉", "◉", "◉"}, s, awful.layout.layouts[1])
yoffset = dpi(45)
xoffset = dpi(18)
mypanel = wibox
({
x = s.geometry.x + xoffset,
y = s.geometry.height - yoffset,
height = dpi(30),
width = s.geometry.width - (xoffset * 2),
ontop = false,
stretch = false,
type = "dock",
screen = s,
shape = gears.shape.rounded_bar,
-- widget = wibox.widget.textbox
bg = beautiful.bg_normal,
fg = beautiful.fg_normal,
opacity = 0.65,
})
mypanel:struts {
bottom = dpi(40)
}
-- 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 systray widget
s.mysystray = {
wibox.widget.systray(),
-- bg = "#00FF0066",
widget = wibox.container.background,
}
-- Create a tasklist widget
-- s.mytasklist = awful.widget.tasklist {
-- screen = s,
-- filter = awful.widget.tasklist.filter.currenttags,
-- buttons = tasklist_buttons
-- style =
-- }
s.mytasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons,
style = {
border_width = 0,
border_color = '#777777',
shape = gears.shape.rounded_bar,
},
layout = {
spacing = 20,
spacing_widget = {
{
forced_width = 5,
forced_height = dpi(20),
-- shape = gears.shape.circle,
widget = wibox.widget.separator
},
valign = 'center',
halign = 'center',
widget = wibox.container.place,
},
layout = wibox.layout.flex.horizontal
},
-- notice that there is *no* wibox.wibox prefix, it is a template,
-- not a widget instance.
widget_template = {
{
{
{
{
id = 'icon_role',
widget = wibox.widget.imagebox,
},
margins = 2,
widget = wibox.container.margin,
},
{
id = 'text_role',
widget = wibox.widget.textbox,
},
layout = wibox.layout.align.horizontal,
},
left = 10,
right = 10,
widget = wibox.container.margin
},
id = 'background_role',
widget = wibox.container.background,
},
}
-- Create Battery, Network, and Volume widget
s.battery = require('widget.battery')()
s.network = require('widget.network')()
s.volume = require('widget.volume')()
s.updater = require('widget.package-updater')()
-- Create the wibox
-- s.mywibox = awful.wibar({
-- y = s.geometry.y + dpi(1080) - yoffset,
-- position = "bottom",
-- screen = s})
s.myrightwidgets =
{
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
s.volume,
s.mysystray,
s.updater,
s.network,
s.battery,
wibox.container.margin (s.mylayoutbox,0,dpi(25),0,0),
},
-- bg = "#00FF0066",
widget = wibox.container.background,
}
-- Empty widget to use for spacing
s.myemptywidget = wibox.widget{
markup = '',
align = '',
valign = '',
widget = wibox.widget.textbox
}
-- Add widgets to the wibox
-- s.mywibox:setup {
-- layout = wibox.layout.align.horizontal,
-- expand = "outside",
-- { -- Left widgets
-- layout = wibox.layout.align.horizontal,
-- wibox.container.margin (s.mytaglist,25,0,0,0),
-- wibox.container.margin (s.mytasklist,25,25,0,0), -- Middle widget
-- s.myemptywidget,
-- spacing = 15
-- },
-- mytextclock,
-- { -- Right widgets
-- layout = wibox.layout.align.horizontal,
-- s.myemptywidget,
-- s.myemptywidget,
-- s.myrightwidgets,
-- },
-- }
-- Add widgets to the wibox
mypanel:setup {
layout = wibox.layout.align.horizontal,
expand = "outside",
{ -- Left widgets
layout = wibox.layout.align.horizontal,
wibox.container.margin (s.mytaglist,dpi(15),0,dpi(-3),0),
wibox.container.margin (s.mytasklist,dpi(25),dpi(25),0,0), -- Middle widget
s.myemptywidget,
spacing = dpi(15)
},
mytextclock,
{ -- Right widgets
layout = wibox.layout.align.horizontal,
s.myemptywidget,
s.myemptywidget,
s.myrightwidgets,
},
visible = true,
}
mypanel.visible = true
-- return mypanel
end)
-- }}}
#+END_SRC
* Mouse bindings
#+BEGIN_SRC lua :tangle yes
-- {{{ 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)
))
-- }}}
#+END_SRC
* Key bindings
#+BEGIN_SRC lua :tangle yes
-- {{{ 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"}),
-- Screenshots
awful.key({}, "Print", function() awful.util.spawn("flameshot gui") end,
{description = "take a screenshot", group = "screen"}),
-- Increase-Decrease Gap
awful.key({ modkey, altkey }, "k", function () awful.tag.incgap ( 1, null) end,
{description = "increase gap", group = "layout"}),
awful.key({ modkey, altkey }, "j", function () awful.tag.incgap ( -1, null) end,
{description = "decrease gap", group = "layout"}),
-- 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"}),
-- Programs
awful.key({ modkey, }, "b", function () awful.spawn("firefox") end,
{description = "open firefox", group = "apps"}),
awful.key({ modkey, }, "e", function () awful.spawn("emacsclient -c") end,
{description = "open emacs frame connected to server", group = "apps"}),
-- dolphin
awful.key({ modkey, }, "d", function () awful.spawn("dolphin") end,
{description = "open dolphin file manager", group = "apps"}),
-- layout
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"}),
-- Volume Keys
awful.key({}, "XF86AudioLowerVolume", function ()
awful.util.spawn("amixer -D pulse sset Master 5%-", false)
awful.util.spawn("mpv /home/chris/Music/notifications/Pop-709f8e26-a350-3999-9e86-aa91b8602650.mp3")
awesome.emit_signal('widget::volume')
awesome.emit_signal('module::volume_osd:show', true)
end),
awful.key({}, "XF86AudioRaiseVolume", function ()
awful.util.spawn("amixer -D pulse sset Master 5%+", false)
awful.util.spawn("mpv /home/chris/Music/notifications/Pop-16da230f-5ffc-4a42-93df-a169e9253ddc.mp3")
awesome.emit_signal('widget::volume')
awesome.emit_signal('module::volume_osd:show', true)
end),
awful.key({}, "XF86AudioMute", function ()
awful.util.spawn("amixer set Master 1+ toggle", false)
end),
-- Media Keys
awful.key({}, "XF86AudioPlay", function()
awful.util.spawn("playerctl play-pause", false)
end),
awful.key({}, "XF86AudioNext", function()
awful.util.spawn("playerctl next", false)
end),
awful.key({}, "XF86AudioPrev", function()
awful.util.spawn("playerctl previous", false)
end),
-- Brightness Keys
awful.key({}, "XF86MonBrightnessUp", function()
awful.util.spawn("brightnessctl set +10%", false)
awesome.emit_signal('widget::brightness')
awesome.emit_signal('module::brightness_osd:show', true)
end),
awful.key({}, "XF86MonBrightnessDown", function()
awful.util.spawn("brightnessctl set 10%-", false)
awesome.emit_signal('widget::brightness')
awesome.emit_signal('module::brightness_osd:show', true)
end),
-- Prompt
awful.key({ }, "Menu", function ()
awful.util.spawn("/home/chris/.dotfiles/rofi/launchers-git/launcher.sh") end,
{description = "launch 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"})
)
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, }, "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)
-- }}}
#+END_SRC
* Rules
#+BEGIN_SRC lua :tangle yes
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
client.connect_signal("request::rules", function(c)
ruled.client.append_rule {
-- 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
},
}
ruled.client.append_rule {
-- make mpv float
rule_any = {
class = {
"mpv",
"gl",
"vlc"
}
},
properties = {
placement = awful.placement.centered,
floating = true,
ontop = true
},
}
-- ruled.client.append_rule {
-- -- Floating clients.
-- rule_any = {
-- class = {
-- "Arandr",
-- "Blender",
-- "dolphin",
-- },
-- name = {
-- "Event Tester", -- xev.
-- "remove images?" -- darktable delete window.
-- },
-- role = {
-- "AlarmWindow", -- Thunderbird's calendar.
-- "ConfigManager", -- Thunderbird's about:config.
-- "pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
-- }
-- },
-- properties = { floating = true },
-- }
-- ruled.client.append_rule {
-- -- Add titlebars to normal clients and dialogs
-- rule_any = { type = { "normal", "dialog" } },
-- properties = { titlebars_enabled = false},
-- }
-- ruled.client.append_rule {
-- -- Set Firefox to never have titlebars
-- rule = { class = "Firefox" },
-- properties = { requests_no_titlebar = true, titlebars_enabled = false },
-- }
-- ruled.client.append_rule {
-- -- Set Feh center
-- rule = { class = "feh" },
-- properties = {
-- placement = awful.placement.centered,
-- floating = true
-- },
-- }
end)
-- }}}
awful.spawn.with_shell("mpv /home/chris/Videos/transcoded/a love letter.mp4")
#+END_SRC
* Signals
#+BEGIN_SRC lua :tangle yes
-- {{{ 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)
-- 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)
-- Enable nice titlebars
nice()
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)
-- }}}
#+END_SRC
* Autostart Apps
#+BEGIN_SRC lua :tangle yes
-- Autostart Applications
awful.spawn.with_shell("picom --experimental-backend")
awful.spawn.with_shell("libinput-gestures-setup start")
awful.spawn.with_shell("flameshot")
awful.spawn.with_shell("xset r rate 220 90")
-- awful.spawn.with_shell("feh --bg-fill ~/Pictures/wallpapers/RoyalKing.png")
awful.spawn.with_shell("/usr/lib/polkit-kde-authentication-agent-1")
awful.spawn.with_shell("emacs -daemon")
awful.spawn.with_shell("nextcloud --background")
awful.spawn.with_shell("caffeine")
#+END_SRC

View file

@ -103,33 +103,33 @@ theme.wibar_width = dpi(1850)
-- theme.wibar_bgimage = nil
-- Define the image to load
theme.titlebar_bg_normal = "#282A36FF"
theme.titlebar_bg_focus = "#282A3699"
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_bg_normal = "#282A36FF"
-- theme.titlebar_bg_focus = "#282A3699"
-- 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_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_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_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_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.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 = wallpaperdir.."RoyalKing.png"

View file

@ -49,7 +49,7 @@
.tabbrowser-tab[selected]{
min-width: 200px !important;
max-width: 1600px !important;
max-width: 2600px !important;
max-height: 20px !important;
height: 20px !important;
min-height: 20px !important;
@ -62,15 +62,29 @@
}
.tabbrowser-tab{
max-width: 70px !important;
min-width: 0px !important;
max-width: 80px !important;
min-width: 10px !important;
}
.tab-throbber, .tab-throbber-tabslist, .tab-icon-pending, .tab-icon-image, .tab-sharing-icon-overlay .tab-icon-sound{
max-height: 10px !important;
height: 10px !important;
min-height: 10px !important;
max-width: 10px !important;
.tab-background {
border-top: 0px !important;
}
.tab-icon-pending, .tab-icon-image, .tab-sharing-icon-overlay .tab-icon-sound{
max-height: 13px !important;
height: 13px !important;
min-height: 13px !important;
min-width: 13px !important;
max-width: 13px !important;
align-self: center !important;
}
.tab-throbber, .tab-throbber-tabslist {
max-height: 18px !important;
height: 18px !important;
min-height: 18px !important;
min-width: 16px !important;
max-width: 16px !important;
align-self: center !important;
}

20
fish/conf.d/omf.fish Normal file
View file

@ -0,0 +1,20 @@
# Path to Oh My Fish install.
set -q XDG_DATA_HOME
and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
or set -gx OMF_PATH "$HOME/.local/share/omf"
# Load Oh My Fish configuration.
source $OMF_PATH/init.fish
# variables
# set -x GOPATH=$HOME/dev/go
# set -x PATH=$PATH:/usr/local/dev/go/bin
# set -x PATH=$PATH:/home/chris/.config/polybar
set -x PATH {/bin,/usr/bin,/home/chris/.dotfiles,/home/chris/.emacs.d/bin}
set -x QT_QPA_PLATFORMTHEME "qt5ct"
set -x EDITOR "emacsclient -a emacs"
set -x TERM alacritty
# aliases
alias ls="lsd -a"
alias rfi="/home/chris/.dotfiles/rofi/launchers-git/launcher.sh"

33
fish/fish_variables Normal file
View file

@ -0,0 +1,33 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR THEME_EDEN_PROMPT_CHAR:\u00bb
SETUVAR __fish_initialized:3100
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:005fd7
SETUVAR fish_color_comment:990000
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:009900
SETUVAR fish_color_error:ff0000
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:00afff
SETUVAR fish_color_quote:999900
SETUVAR fish_color_redirection:00afff
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:\x1d
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:\x1d
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan

View file

@ -0,0 +1 @@
/home/chris/.local/share/omf/themes/scorphish/fish_prompt.fish

View file

@ -2,7 +2,7 @@
# Corners #
#################################
# requires: https://github.com/sdhand/compton
corner-radius = 15.0;
corner-radius = 11.0;
rounded-corners-exclude = [
#"window_type = 'normal'",
"class_g = 'awesome'",
@ -24,8 +24,8 @@ round-borders-exclude = [
#################################
# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# shadow = false
@ -40,18 +40,18 @@ shadow-opacity = .85
# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = 3;
shadow-offset-x = 0;
# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = 3;
shadow-offset-y = 0;
# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false
@ -65,12 +65,12 @@ shadow-offset-y = 3;
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0
# Do not paint shadows on shaped windows. Note shaped windows
# here means windows setting its shape through X Shape extension.
# Those using ARGB background is beyond our control.
# Deprecated, use
# Do not paint shadows on shaped windows. Note shaped windows
# here means windows setting its shape through X Shape extension.
# Those using ARGB background is beyond our control.
# Deprecated, use
# shadow-exclude = 'bounding_shaped'
# or
# or
# shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
@ -93,11 +93,11 @@ shadow-exclude = [
];
# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
# be painted in, such as a dock window region. Use
# shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""
# shadow-exclude-reg = ""
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false
@ -174,9 +174,9 @@ focus-exclude = [
# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
# opacity-rule = [ "80:class_g = 'URxvt'" ];
@ -205,20 +205,20 @@ opacity-rule = [
# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-method =
# blur-size = 12
#
# blur-deviation = false
# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = true;
# Blur background of windows when the window frame is not opaque.
# Blur background of windows when the window frame is not opaque.
# Implies:
# blur-background
# blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;
@ -239,7 +239,7 @@ blur: {
# requires: https://github.com/ibhagwan/picom
method = "dual_kawase";
#method = "kernel";
strength = 11;
strength = 10;
# deviation = 1.0;
# kernel = "11x11gaussian";
background = false;
@ -284,7 +284,7 @@ vsync = true
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false
# Try to detect WM windows (a non-override-redirect window with no
# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
@ -294,7 +294,7 @@ mark-wmwin-focused = true;
# mark-ovredir-focused = false
mark-ovredir-focused = true;
# Try to detect windows with rounded corners and don't consider them
# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
@ -306,28 +306,28 @@ detect-rounded-corners = true;
# detect-client-opacity = false
detect-client-opacity = true;
# Specify refresh rate of the screen. If not specified or 0, picom will
# Specify refresh rate of the screen. If not specified or 0, picom will
# try detecting this with X RandR extension.
#
# refresh-rate = 60
refresh-rate = 0
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
# boost performance. This should not be used with
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
# boost performance. This should not be used with
# vsync drm/opengl/opengl-oml
# as they essentially does sw-opti's job already,
# as they essentially does sw-opti's job already,
# unless you wish to specify a lower refresh rate than the actual value.
#
# sw-opti =
# sw-opti =
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false
# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious.
#
# unredir-if-possible = false
@ -338,52 +338,52 @@ refresh-rate = 0
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
detect-transient = true
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
# detect-transient is enabled, too.
#
# detect-client-leader = false
detect-client-leader = true
# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1
# Specify a list of conditions of windows that should be painted with inverted color.
# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes,
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes,
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false
# Disable the use of damage information.
# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
@ -391,31 +391,31 @@ detect-client-leader = true
# no-use-damage = false
use-damage = true
# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ''
# Force all windows to be painted with blending. Useful if you
# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false
# Do not use EWMH to detect fullscreen windows.
# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false
# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0
@ -427,17 +427,17 @@ use-damage = true
# Set the log level. Possible values are:
# "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";
# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'
@ -449,33 +449,33 @@ log-level = "info";
# write-pid-path = '/path/to/your/log/file'
# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
# "tooltip", "notification", "combo", and "dnd".
#
#
# Following per window-type options are available: ::
#
#
# fade, shadow:::
# Controls window-type-specific shadow and fade settings.
#
#
# opacity:::
# Controls default opacity of the window type.
#
#
# focus:::
# Controls whether the window of this type is to be always considered focused.
# Controls whether the window of this type is to be always considered focused.
# (By default, all window types except "normal" and "dialog" has this on.)
#
#
# full-shadow:::
# Controls whether shadow is drawn under the parts of the window that you
# normally won't be able to see. Useful when the window has parts of it
# Controls whether shadow is drawn under the parts of the window that you
# normally won't be able to see. Useful when the window has parts of it
# transparent, and you want shadows in those areas.
#
#
# redir-ignore:::
# Controls whether this type of windows should cause screen to become
# Controls whether this type of windows should cause screen to become
# redirected again after been unredirected. If you have unredir-if-possible
# set, and doesn't want certain window to cause unnecessary screen redirection,
# set, and doesn't want certain window to cause unnecessary screen redirection,
# you can set this to `true`.
#
wintypes:

View file

@ -5,13 +5,18 @@ set update.nag true
set update.nagwait 7
set update.lastnaggedversion 1.14.0
set update.checkintervalsecs 86400
set theme base16-google-dark
set theme snazzy
set searchurls.gh https://github.com/search?utf8=✓&q=
set searchurls.y https://www.yewtu.be/search?q=
set searchurls.aw https://wiki.archlinux.org/index.php?search=
set searchurls.qt https://doc.qt.io/qt-5/search-results.html?q=
set searchurls.mel https://melpa.org/#/?q=
set searchurls.fel https://felgo.com/search-results?q=
set searchurls.o https://www.office.com/search?auth=2&q=
set searchurls.wiki https://en.wikipedia.org/wiki/Special:Search/
set searchurls.g https://www.google.com/search?q=
set searchurls.d https://duckduckgo.com/?q=
set searchurls.ama https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=
set searchurls.ama https://smile.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=
set searchurls.google https://www.google.com/search?q=
set searchurls.googlelucky https://www.google.com/search?btnI=I'm+Feeling+Lucky&q=
set searchurls.scholar https://scholar.google.com/scholar?q=
@ -21,7 +26,6 @@ set searchurls.duckduckgo https://duckduckgo.com/?q=
set searchurls.yahoo https://search.yahoo.com/search?p=
set searchurls.twitter https://twitter.com/search?q=
set searchurls.wikipedia https://en.wikipedia.org/wiki/Special:Search/
set searchurls.youtube https://www.youtube.com/results?search_query=
set searchurls.amazon https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=
set searchurls.amazonuk https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=
set searchurls.startpage https://startpage.com/do/search?language=english&cat=web&query=
@ -35,3 +39,7 @@ set searchurls.qwant https://www.qwant.com/?q=
" For syntax highlighting see https://github.com/tridactyl/vim-tridactyl
" vim: set filetype=tridactyl
bind v hint -W mpvsafe
" command oc js -p tri.excmds.shellescape(JS_ARG).then(url => tri.excmds.exclaim_quiet('org-capture ' + url))