Merge branch 'arch-awesome' of github.com:warrenhood/dotfiles
9
.gitmodules
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[submodule "awesome/.config/awesome/lain"]
|
||||||
|
path = awesome/.config/awesome/lain
|
||||||
|
url = https://github.com/lcpz/lain
|
||||||
|
[submodule "awesome/.config/awesome/freedesktop"]
|
||||||
|
path = awesome/.config/awesome/freedesktop
|
||||||
|
url = https://github.com/lcpz/awesome-freedesktop
|
||||||
|
[submodule "awesome/.config/awesome/awesome-wm-widgets"]
|
||||||
|
path = awesome/.config/awesome/awesome-wm-widgets
|
||||||
|
url = https://github.com/streetturtle/awesome-wm-widgets
|
|
@ -417,10 +417,19 @@ font:
|
||||||
# - (Linux/BSD) user login shell
|
# - (Linux/BSD) user login shell
|
||||||
# - (Windows) powershell
|
# - (Windows) powershell
|
||||||
|
|
||||||
|
# Non-tiling WM setup
|
||||||
|
# shell:
|
||||||
|
# program: /bin/zsh
|
||||||
|
# args:
|
||||||
|
# - -l
|
||||||
|
# - -c
|
||||||
|
# - "tmux attach || tmux"
|
||||||
|
|
||||||
|
# Tiling WM setup - don't need tmux
|
||||||
shell:
|
shell:
|
||||||
program: /bin/zsh
|
program: /bin/zsh
|
||||||
# args:
|
args:
|
||||||
# - -l
|
- -l
|
||||||
# - -c
|
# - -c
|
||||||
# - "tmux attach || tmux"
|
# - "tmux attach || tmux"
|
||||||
|
|
||||||
|
|
1
awesome/.config/awesome/awesome-wm-widgets
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 3bb3d56c26ac3500aab33381af0cccebf6aaa05c
|
1
awesome/.config/awesome/freedesktop
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit c82ad2960c5f0c84e765df68554c266ea7e9464d
|
1
awesome/.config/awesome/lain
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 438dd7481026519f1e924a2b3087e7cda559df57
|
625
awesome/.config/awesome/rc.lua
Normal file
|
@ -0,0 +1,625 @@
|
||||||
|
-- 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")
|
||||||
|
|
||||||
|
local lain = require("lain")
|
||||||
|
local separators = lain.util.separators
|
||||||
|
local arrow = separators.arrow_left
|
||||||
|
|
||||||
|
-- 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_themes_dir() .. "default/theme.lua")
|
||||||
|
beautiful.init(gears.filesystem.get_configuration_dir() .. "theme.lua")
|
||||||
|
|
||||||
|
|
||||||
|
-- This is used later as the default terminal and editor to run.
|
||||||
|
terminal = "alacritty"
|
||||||
|
editor = os.getenv("EDITOR") or "nvim"
|
||||||
|
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.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.magnifier,
|
||||||
|
-- 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- WIDGETS
|
||||||
|
|
||||||
|
local battery_widget = require("awesome-wm-widgets.battery-widget.battery")
|
||||||
|
local cpu = lain.widget.cpu()
|
||||||
|
|
||||||
|
-- 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
|
||||||
|
-- Colors: #DDDD77 #77DDDD #DD77DD #7777DD #77DD77
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
arrow("alpha", "#DD77DD"),
|
||||||
|
wibox.container.background( battery_widget({
|
||||||
|
show_current_level = true,
|
||||||
|
margin_right = 2,
|
||||||
|
}), "#DD77DD"),
|
||||||
|
arrow("#DD77DD", "#7777DD"),
|
||||||
|
wibox.container.background( wibox.widget.systray(), "#7777DD"),
|
||||||
|
arrow("#7777DD", "#77DD77"),
|
||||||
|
wibox.container.background( mytextclock, "#77DD77"),
|
||||||
|
arrow("#77DD77", "alpha"),
|
||||||
|
s.mylayoutbox,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end)
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- These mouse bindings are annoying...
|
||||||
|
-- {{{ 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(
|
||||||
|
-- Make multimedia keys work properly - mainly for spotify
|
||||||
|
awful.key({}, "XF86AudioPlay", function() awful.util.spawn("playerctl play-pause") end),
|
||||||
|
awful.key({}, "XF86AudioStop", function() awful.util.spawn("playerctl play-pause") end),
|
||||||
|
awful.key({}, "XF86AudioPrev", function() awful.util.spawn("playerctl previous") end),
|
||||||
|
awful.key({}, "XF86AudioNext", function() awful.util.spawn("playerctl next") end),
|
||||||
|
|
||||||
|
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"}),
|
||||||
|
|
||||||
|
-- dmenu
|
||||||
|
awful.key({ modkey }, "r", function() awful.util.spawn("dmenu_run") end,
|
||||||
|
{ description = "show dmenu", group = "launcher" }),
|
||||||
|
|
||||||
|
|
||||||
|
-- Firfox
|
||||||
|
awful.key({ modkey }, "b", function() awful.util.spawn("firefox") end,
|
||||||
|
{ description = "firefox", group = "applications" }),
|
||||||
|
|
||||||
|
|
||||||
|
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, "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 }
|
||||||
|
-- },
|
||||||
|
|
||||||
|
-- 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)
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
|
||||||
|
-- Stuff to kill just in case
|
||||||
|
awful.spawn.once("killall lxsession")
|
||||||
|
awful.spawn.once("killall picom")
|
||||||
|
awful.spawn.once("kilall nm-applet")
|
||||||
|
awful.spawn.once("killall volumeicon")
|
||||||
|
|
||||||
|
-- Stuff to start
|
||||||
|
-- awful.spawn.once("lxpolkit") -- Polkit
|
||||||
|
awful.spawn.once("lxsession") -- Let's run an lxsession which has a polkit
|
||||||
|
awful.spawn.once("picom") -- Compositor
|
||||||
|
awful.spawn.once("nm-applet") -- Network Manager applet
|
||||||
|
awful.spawn.once("autorandr -l dual") -- Load my dual monitor autorandr config
|
||||||
|
awful.spawn.once("volumeicon") -- Volume icon
|
||||||
|
|
||||||
|
-- Wallpaper
|
||||||
|
-- awful.spawn.once("xargs xwallpaper --output all --stretch --center ~/.config/awesome/wallpapers/miku_1.png")
|
||||||
|
-- awful.spawn.once("nitrogen --restore") -- Restore last set wallpaper
|
137
awesome/.config/awesome/theme.lua
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
---------------------------
|
||||||
|
-- Default awesome theme --
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
local theme_assets = require("beautiful.theme_assets")
|
||||||
|
local xresources = require("beautiful.xresources")
|
||||||
|
local dpi = xresources.apply_dpi
|
||||||
|
|
||||||
|
local gears = require("gears")
|
||||||
|
local lain = require("lain")
|
||||||
|
local awful = require("awful")
|
||||||
|
local wibox = require("wibox")
|
||||||
|
local separators = lain.util.separators
|
||||||
|
local arrow = separators.arrow_left
|
||||||
|
|
||||||
|
|
||||||
|
local gfs = require("gears.filesystem")
|
||||||
|
local themes_path = gfs.get_themes_dir()
|
||||||
|
|
||||||
|
local theme = {}
|
||||||
|
|
||||||
|
theme.font = "Mononoki Nerd Font 8"
|
||||||
|
theme.bg_normal = "#222222AA"
|
||||||
|
theme.bg_focus = "#222222AA"
|
||||||
|
theme.bg_urgent = "#cc0088"
|
||||||
|
theme.bg_minimize = "#222222"
|
||||||
|
theme.bg_systray = "#7777DD"
|
||||||
|
|
||||||
|
theme.fg_normal = "#FFFFFF"
|
||||||
|
theme.fg_focus = "#77DDDD"
|
||||||
|
theme.fg_urgent = "#FFFFFF"
|
||||||
|
theme.fg_minimize = "#AAAAAA"
|
||||||
|
|
||||||
|
theme.useless_gap = dpi(6)
|
||||||
|
theme.border_width = dpi(2)
|
||||||
|
theme.border_normal = "#333333"
|
||||||
|
theme.border_focus = "#77D7D7"
|
||||||
|
theme.border_marked = "#900090"
|
||||||
|
|
||||||
|
-- There are other variable sets
|
||||||
|
-- overriding the default one when
|
||||||
|
-- defined, the sets are:
|
||||||
|
-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile]
|
||||||
|
-- tasklist_[bg|fg]_[focus|urgent]
|
||||||
|
-- titlebar_[bg|fg]_[normal|focus]
|
||||||
|
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||||
|
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||||
|
-- prompt_[fg|bg|fg_cursor|bg_cursor|font]
|
||||||
|
-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font]
|
||||||
|
-- Example:
|
||||||
|
--theme.taglist_bg_focus = "#ff0000"
|
||||||
|
|
||||||
|
-- Generate taglist squares:
|
||||||
|
local taglist_square_size = dpi(4)
|
||||||
|
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
|
||||||
|
taglist_square_size, theme.fg_normal
|
||||||
|
)
|
||||||
|
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
||||||
|
taglist_square_size, theme.fg_normal
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Variables set for theming notifications:
|
||||||
|
-- notification_font
|
||||||
|
-- notification_[bg|fg]
|
||||||
|
-- notification_[width|height|margin]
|
||||||
|
-- notification_[border_color|border_width|shape|opacity]
|
||||||
|
|
||||||
|
-- Variables set for theming the menu:
|
||||||
|
-- menu_[bg|fg]_[normal|focus]
|
||||||
|
-- menu_[border_color|border_width]
|
||||||
|
theme.menu_submenu_icon = themes_path.."default/submenu.png"
|
||||||
|
theme.menu_height = dpi(15)
|
||||||
|
theme.menu_width = dpi(100)
|
||||||
|
|
||||||
|
-- You can add as many variables as
|
||||||
|
-- you wish and access them by using
|
||||||
|
-- beautiful.variable in your rc.lua
|
||||||
|
--theme.bg_widget = "#cc0000"
|
||||||
|
|
||||||
|
-- Define the image to load
|
||||||
|
theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png"
|
||||||
|
theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png"
|
||||||
|
|
||||||
|
theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png"
|
||||||
|
theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png"
|
||||||
|
|
||||||
|
theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png"
|
||||||
|
theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png"
|
||||||
|
theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png"
|
||||||
|
theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png"
|
||||||
|
|
||||||
|
theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png"
|
||||||
|
theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png"
|
||||||
|
theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png"
|
||||||
|
theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png"
|
||||||
|
|
||||||
|
theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png"
|
||||||
|
theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png"
|
||||||
|
theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png"
|
||||||
|
theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png"
|
||||||
|
|
||||||
|
theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png"
|
||||||
|
theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png"
|
||||||
|
theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png"
|
||||||
|
theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png"
|
||||||
|
|
||||||
|
theme.wallpaper = "~/.wallpapers/current"
|
||||||
|
|
||||||
|
-- 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
|
||||||
|
|
BIN
awesome/.config/awesome/wallpapers/black-turquoise.jpg
Normal file
After Width: | Height: | Size: 436 KiB |
BIN
awesome/.config/awesome/wallpapers/miku.jpg
Normal file
After Width: | Height: | Size: 469 KiB |
|
@ -1,104 +0,0 @@
|
||||||
// _ ___ ___ _
|
|
||||||
// | | / __)_ / __|_)
|
|
||||||
// | | ____| |__| |_ _ _ _ ____ ____ ___ ____ | |__ _ ____ ____ ___ ____
|
|
||||||
// | |/ _ ) __) _) | | | \ / ___) _ \| _ \| __) |/ _ | / ___) _ \| _ \
|
|
||||||
// | ( (/ /| | | |_| | | | | | | ( (__| |_| | | | | | | ( ( | |_| | | |_| | | | |
|
|
||||||
// |_|\____)_| \___)____|_|_|_| \____)___/|_| |_|_| |_|\_|| (_)_| \___/|_| |_|
|
|
||||||
// A WindowManager for Adventurers (____/
|
|
||||||
// For info about configuration please visit https://github.com/leftwm/leftwm/wiki
|
|
||||||
|
|
||||||
#![enable(implicit_some)]
|
|
||||||
(
|
|
||||||
modkey: "Mod4",
|
|
||||||
mousekey: "Mod4",
|
|
||||||
workspaces: [],
|
|
||||||
tags: [
|
|
||||||
"chat",
|
|
||||||
"www",
|
|
||||||
"dev",
|
|
||||||
"4",
|
|
||||||
"5",
|
|
||||||
"6",
|
|
||||||
"7",
|
|
||||||
"8",
|
|
||||||
"9",
|
|
||||||
],
|
|
||||||
max_window_width: None,
|
|
||||||
layouts: [
|
|
||||||
MainAndVertStack,
|
|
||||||
/* MainAndHorizontalStack, */
|
|
||||||
/* MainAndDeck, */
|
|
||||||
/* GridHorizontal, */
|
|
||||||
/* EvenHorizontal, */
|
|
||||||
/* EvenVertical, */
|
|
||||||
/* Fibonacci, */
|
|
||||||
/* LeftMain, */
|
|
||||||
/* CenterMain, */
|
|
||||||
/* CenterMainBalanced, */
|
|
||||||
/* CenterMainFluid, */
|
|
||||||
/* Monocle, */
|
|
||||||
/* RightWiderLeftStack, */
|
|
||||||
/* LeftWiderRightStack, */
|
|
||||||
],
|
|
||||||
layout_mode: Tag,
|
|
||||||
insert_behavior: Bottom,
|
|
||||||
scratchpad: [
|
|
||||||
(name: "Alacritty", value: "alacritty", x: 860, y: 390, height: 300, width: 200),
|
|
||||||
],
|
|
||||||
window_rules: [],
|
|
||||||
disable_current_tag_swap: false,
|
|
||||||
disable_tile_drag: false,
|
|
||||||
disable_window_snap: true,
|
|
||||||
focus_behaviour: Sloppy,
|
|
||||||
focus_new_windows: true,
|
|
||||||
single_window_border: true,
|
|
||||||
sloppy_mouse_follows_focus: true,
|
|
||||||
auto_derive_workspaces: true,
|
|
||||||
keybind: [
|
|
||||||
(command: Execute, value: "dmenu_run", modifier: ["modkey"], key: "p"),
|
|
||||||
(command: Execute, value: "alacritty", modifier: ["modkey", "Shift"], key: "Return"),
|
|
||||||
(command: CloseWindow, value: "", modifier: ["modkey", "Shift"], key: "q"),
|
|
||||||
(command: SoftReload, value: "", modifier: ["modkey", "Shift"], key: "r"),
|
|
||||||
(command: Execute, value: "loginctl kill-session $XDG_SESSION_ID", modifier: ["modkey", "Shift"], key: "x"),
|
|
||||||
(command: Execute, value: "slock", modifier: ["modkey", "Control"], key: "l"),
|
|
||||||
(command: MoveToLastWorkspace, value: "", modifier: ["modkey", "Shift"], key: "w"),
|
|
||||||
(command: SwapTags, value: "", modifier: ["modkey"], key: "w"),
|
|
||||||
(command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "k"),
|
|
||||||
(command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "j"),
|
|
||||||
(command: MoveWindowTop, value: "", modifier: ["modkey"], key: "Return"),
|
|
||||||
(command: FocusWindowUp, value: "", modifier: ["modkey"], key: "k"),
|
|
||||||
(command: FocusWindowDown, value: "", modifier: ["modkey"], key: "j"),
|
|
||||||
(command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "k"),
|
|
||||||
(command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "j"),
|
|
||||||
(command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "l"),
|
|
||||||
(command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "h"),
|
|
||||||
(command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "Up"),
|
|
||||||
(command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "Down"),
|
|
||||||
(command: FocusWindowUp, value: "", modifier: ["modkey"], key: "Up"),
|
|
||||||
(command: FocusWindowDown, value: "", modifier: ["modkey"], key: "Down"),
|
|
||||||
(command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "Up"),
|
|
||||||
(command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "Down"),
|
|
||||||
(command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "Right"),
|
|
||||||
(command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "Left"),
|
|
||||||
(command: ToggleFullScreen, value: "", modifier: ["modkey"], key: "f"),
|
|
||||||
(command: GotoTag, value: "1", modifier: ["modkey"], key: "1"),
|
|
||||||
(command: GotoTag, value: "2", modifier: ["modkey"], key: "2"),
|
|
||||||
(command: GotoTag, value: "3", modifier: ["modkey"], key: "3"),
|
|
||||||
(command: GotoTag, value: "4", modifier: ["modkey"], key: "4"),
|
|
||||||
(command: GotoTag, value: "5", modifier: ["modkey"], key: "5"),
|
|
||||||
(command: GotoTag, value: "6", modifier: ["modkey"], key: "6"),
|
|
||||||
(command: GotoTag, value: "7", modifier: ["modkey"], key: "7"),
|
|
||||||
(command: GotoTag, value: "8", modifier: ["modkey"], key: "8"),
|
|
||||||
(command: GotoTag, value: "9", modifier: ["modkey"], key: "9"),
|
|
||||||
(command: MoveToTag, value: "1", modifier: ["modkey", "Shift"], key: "1"),
|
|
||||||
(command: MoveToTag, value: "2", modifier: ["modkey", "Shift"], key: "2"),
|
|
||||||
(command: MoveToTag, value: "3", modifier: ["modkey", "Shift"], key: "3"),
|
|
||||||
(command: MoveToTag, value: "4", modifier: ["modkey", "Shift"], key: "4"),
|
|
||||||
(command: MoveToTag, value: "5", modifier: ["modkey", "Shift"], key: "5"),
|
|
||||||
(command: MoveToTag, value: "6", modifier: ["modkey", "Shift"], key: "6"),
|
|
||||||
(command: MoveToTag, value: "7", modifier: ["modkey", "Shift"], key: "7"),
|
|
||||||
(command: MoveToTag, value: "8", modifier: ["modkey", "Shift"], key: "8"),
|
|
||||||
(command: MoveToTag, value: "9", modifier: ["modkey", "Shift"], key: "9"),
|
|
||||||
],
|
|
||||||
state_path: None,
|
|
||||||
)
|
|
|
@ -1,255 +0,0 @@
|
||||||
[[repos]]
|
|
||||||
url = "https://raw.githubusercontent.com/leftwm/leftwm-community-themes/master/known.toml"
|
|
||||||
name = "community"
|
|
||||||
definitions_version = 1
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Amber"
|
|
||||||
repository = "https://github.com/di-effe/amber"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.2.2"
|
|
||||||
leftwm_versions = ">0.2.10, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "arch-one-dark"
|
|
||||||
directory = "/home/warren/.config/leftwm/themes/arch-one-dark"
|
|
||||||
repository = "https://github.com/jamesbaker1901/leftwm-arch-one-dark/"
|
|
||||||
commit = "*"
|
|
||||||
version = "1.0.0"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Ascent"
|
|
||||||
directory = "/home/warren/.config/leftwm/themes/Ascent"
|
|
||||||
repository = "https://gitlab.com/mWalrus/ascent"
|
|
||||||
commit = "*"
|
|
||||||
version = "1.0.0"
|
|
||||||
leftwm_versions = ">0.2.7"
|
|
||||||
current = true
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Blue Coffee"
|
|
||||||
directory = "/home/warren/.config/leftwm/themes/Blue Coffee"
|
|
||||||
repository = "https://github.com/Qwart376/Blue-Coffee/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Bumblebee"
|
|
||||||
repository = "https://github.com/mfdorst/leftwm-bumblebee/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "^0.2.8, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Catppuccin"
|
|
||||||
repository = "https://github.com/di-effe/catppuccin"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.1.1"
|
|
||||||
leftwm_versions = ">0.2.10, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Coffee"
|
|
||||||
repository = "https://github.com/lex148/leftwm-coffee/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Desire"
|
|
||||||
repository = "https://github.com/copypasteonly/Desire"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.1"
|
|
||||||
leftwm_versions = "^0.4.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Double Bar"
|
|
||||||
repository = "https://github.com/PeterDauwe/doublebar/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.2"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Dracula Rounded"
|
|
||||||
repository = "https://github.com/AethanFoot/leftwm-theme-dracula-rounded/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.3"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Epitaph"
|
|
||||||
repository = "https://github.com/VentGrey/Epitaph"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.2"
|
|
||||||
leftwm_versions = "*"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Flamingo"
|
|
||||||
repository = "https://github.com/necaris/leftwm-theme-flamingo"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = ">0.2.7, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Forest"
|
|
||||||
repository = "https://github.com/lex148/forest/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Garden"
|
|
||||||
repository = "https://github.com/taylor85345/leftwm-theme-garden"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.4"
|
|
||||||
leftwm_versions = ">0.2.7"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Ground Zero"
|
|
||||||
repository = "https://github.com/Qwart376/Ground-Zero/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "minimal-solarized"
|
|
||||||
repository = "https://github.com/minda1975/minimal_solarized"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.1.0"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Molese"
|
|
||||||
repository = "https://github.com/m0lese/leftwm-config"
|
|
||||||
commit = "*"
|
|
||||||
version = "2.1.0"
|
|
||||||
leftwm_versions = ">0.2.10, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Ocean-night"
|
|
||||||
repository = "https://github.com/TheRoniOne/ocean-night"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "*"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Orange Forest"
|
|
||||||
repository = "https://github.com/PVautour/leftwm-theme-orange-forest/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.2"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "plan9"
|
|
||||||
repository = "https://github.com/seabassapologist/leftwm-theme-plan9"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.1.0"
|
|
||||||
leftwm_versions = "^0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Red Moon"
|
|
||||||
repository = "https://github.com/Qwart376/Red-Moon"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Serika"
|
|
||||||
repository = "https://github.com/VuiMuich/leftwm-theme-serika.git"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = ">=0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Soothe"
|
|
||||||
directory = "/home/warren/.config/leftwm/themes/Soothe"
|
|
||||||
repository = "https://github.com/b4skyx/leftwm-soothe/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
relative_directory = "theme/"
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "SpaceJelly"
|
|
||||||
repository = "https://gitlab.com/leftwmthemes/space_jelly"
|
|
||||||
commit = "*"
|
|
||||||
version = "1.0.0"
|
|
||||||
leftwm_versions = ">0.2.10, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "sunflower"
|
|
||||||
repository = "https://github.com/mautamu/leftwm-sunflower/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.1.2"
|
|
||||||
leftwm_versions = "^0.2.11, <0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Sunset"
|
|
||||||
repository = "https://github.com/Syudagye/leftwm-sunset"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "TNG"
|
|
||||||
repository = "https://github.com/lex148/leftwm-tng/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Windows XP"
|
|
||||||
repository = "https://github.com/lex148/leftwm-windowsxp/"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = "<0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Zexanima"
|
|
||||||
repository = "https://github.com/calebgasser/zexanima-leftwm-theme/tree/develop"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = ">0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos.themes]]
|
|
||||||
name = "Blood-Moon"
|
|
||||||
repository = "https://github.com/zawesomekid/Blood-Moon-leftwm-theme"
|
|
||||||
commit = "*"
|
|
||||||
version = "0.0.1"
|
|
||||||
leftwm_versions = ">0.3.0"
|
|
||||||
current = false
|
|
||||||
|
|
||||||
[[repos]]
|
|
||||||
url = "localhost"
|
|
||||||
name = "LOCAL"
|
|
||||||
definitions_version = 1
|
|
||||||
themes = []
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 50ffeb80052dbdfd58e0c5b5185aa877374e74f6
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit b939b71837a2c1c64c9a612d0fb86e1a693c471c
|
|
|
@ -1,48 +0,0 @@
|
||||||
# Why have themes
|
|
||||||
|
|
||||||
With LeftWM, there are two types of configs:
|
|
||||||
* **LeftWM Configuration files:** LeftWM configurations are specific to you and don’t change for different themes. These are settings like keybindings, workspace locations, and names of desktops/tags. These settings can be found in `~/.config/leftwm/config.toml`.
|
|
||||||
|
|
||||||
* **Theme Configuration files:** The appearance of your desktop is different. It’s fun to try new looks and feels. It’s fun to tweak and customize the appearance (AKA: [ricing](https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/)). It’s fun to share so others can experience your awesome desktop! LeftWM is built around this concept. By pulling all these settings out into themes, you can now easily tweak, switch, and share your experiences. This configuration is spread between `theme.toml` and related files contained within a theme's folder.
|
|
||||||
|
|
||||||
|
|
||||||
# We want your themes
|
|
||||||
|
|
||||||
We are looking to expand the list of available themes for an upcoming release. If you enjoy making desktops look good please consider sharing by making a pull request on [the community themes repository](https://github.com/leftwm/leftwm-community-themes).
|
|
||||||
|
|
||||||
|
|
||||||
# Requirements for a theme
|
|
||||||
|
|
||||||
A theme has only two requirements. An “up” and a “down” executable/script. They can be written in whatever makes you happy. The up script you guessed it starts up all the things that make your script unique and awesome. The down script restores the environment to an un-themes state. A theme should be self contained if possible so that it can be shared and doesn’t interfere with other themes. For example when booting an application with a config file, put the config file in the theme folder instead of ~/.config. This way other themes can use the same application
|
|
||||||
|
|
||||||
|
|
||||||
# Setup / selection of theme
|
|
||||||
|
|
||||||
There are two ways to setup a theme: you can use [leftwm-theme](https://github.com/leftwm/leftwm-theme/) or you can set a symlink yourself.
|
|
||||||
|
|
||||||
## Using LeftWM-theme
|
|
||||||
Install LeftWM-theme, as per the directions on [its Github](https://github.com/leftwm/leftwm-theme).
|
|
||||||
|
|
||||||
Update your list of themes:
|
|
||||||
```bash
|
|
||||||
leftwm-theme update
|
|
||||||
```
|
|
||||||
Install the theme you like:
|
|
||||||
```bash
|
|
||||||
leftwm-theme install "THEME NAME GOES HERE"
|
|
||||||
```
|
|
||||||
Apply the theme you like as the current theme:
|
|
||||||
```bash
|
|
||||||
leftwm-theme apply "THEME NAME GOES HERE"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using symlinks
|
|
||||||
|
|
||||||
To select a theme all that is required is that it’s located at: `~/.config/leftwm/themes/current`
|
|
||||||
It is strongly recommended that you do this with a symlink rather than creating a folder. Using a symlink makes it easy to save all your themes in the folder `~/.config/leftwm/themes` and switch between them using a symlink easily.
|
|
||||||
|
|
||||||
The following command would set the included basic_polybar to the current theme:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ln -s ~/.config/leftwm/themes/basic_polybar ~/.config/leftwm/themes/current
|
|
||||||
```
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit a27d12348489fac04d5790f7043b3eebcaf76950
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 95e0bfb7409d414fa4ea0edcd488704fe8796a07
|
|
|
@ -1,9 +0,0 @@
|
||||||
This is a very basic README, merely containing a bunch of heads-up notes for using `eww` with `leftwm`
|
|
||||||
|
|
||||||
Important:
|
|
||||||
Copy the `eww-bar` folder to `~/.config/eww/` otherwise every `eww` command needs to pass the path to the folder where the `eww.yuck` and `eww.scss` files are located.
|
|
||||||
It is also possible to symlink instead of copy, though `eww` isn't to happy about this and will log some errors, even though working just fine.
|
|
||||||
|
|
||||||
The legacy eww example was removed here. If you are still using that, pleas refer to the [leftwm-contrib repo](https://github.com/leftwm/leftwm-contrib/tree/main/examples/basic_eww/legacy_eww_xml_config).
|
|
||||||
|
|
||||||
Since `eww` is still rapidly changing, if stuff breaks please check their [github](https://github.com/elkowar/eww) for documentation on changes and existing issues.
|
|
Before Width: | Height: | Size: 50 KiB |
|
@ -1,18 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/down.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
leftwm-command "UnloadTheme"
|
|
||||||
|
|
||||||
pkill compton
|
|
||||||
pkill picom
|
|
||||||
pkill polybar
|
|
||||||
pkill conky
|
|
||||||
if [ -x "$(command -v eww)" ]; then
|
|
||||||
eww kill
|
|
||||||
fi
|
|
Before Width: | Height: | Size: 539 B |
Before Width: | Height: | Size: 6.1 KiB |
|
@ -1,81 +0,0 @@
|
||||||
* {
|
|
||||||
all: unset; //Unsets everything so you can style everything from scratch
|
|
||||||
}
|
|
||||||
|
|
||||||
//Global Styles
|
|
||||||
.bar0 {
|
|
||||||
background-color: #3a3a3a;
|
|
||||||
color: #b0b4bc;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Styles on classes (see eww.yuck for more information)
|
|
||||||
|
|
||||||
.sidestuff slider {
|
|
||||||
all: unset;
|
|
||||||
color: #ffd5cd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
.label-ram {
|
|
||||||
font-size: large;
|
|
||||||
}
|
|
||||||
.time {
|
|
||||||
margin-right: 30px;
|
|
||||||
}
|
|
||||||
.workspaces {
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
.workspaces button {
|
|
||||||
font-size: 24px;
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
.workspaces button:hover {
|
|
||||||
color: #D35D6E;
|
|
||||||
}
|
|
||||||
.ws-button-mine {
|
|
||||||
color: #4e4e4e;
|
|
||||||
background-color: #ffd5ca;
|
|
||||||
}
|
|
||||||
.ws-button-visible {
|
|
||||||
color: #D35D6E;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
}
|
|
||||||
.ws-button-urgent {
|
|
||||||
color: #ffd5ca;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
}
|
|
||||||
.ws-button-busy {
|
|
||||||
color: #D35D6E;
|
|
||||||
}
|
|
||||||
.ws-button {
|
|
||||||
color: #b0b4bc;
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
(defwidget bar []
|
|
||||||
(centerbox :orientation "h"
|
|
||||||
(workspaces)
|
|
||||||
(music)
|
|
||||||
(sidestuff)))
|
|
||||||
|
|
||||||
(defwidget sidestuff []
|
|
||||||
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
|
|
||||||
(metric :label "🔊"
|
|
||||||
:value volume
|
|
||||||
:onchange "amixer -D pulse sset Master {}%")
|
|
||||||
(metric :label ""
|
|
||||||
:value '${EWW_RAM.used_mem_perc}'
|
|
||||||
:onchange "")
|
|
||||||
(metric :label "💾"
|
|
||||||
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
|
||||||
:onchange "")
|
|
||||||
(time)))
|
|
||||||
|
|
||||||
; eww is natively able to parse the JSON output of `leftwm-state`
|
|
||||||
; since eww also has the ability of `for` loops there is no need for a `liquid` template anymore
|
|
||||||
(defwidget workspaces []
|
|
||||||
(box :class "workspaces"
|
|
||||||
:orientation "h"
|
|
||||||
:space-evenly true
|
|
||||||
:halign "start"
|
|
||||||
:spacing 10
|
|
||||||
(box
|
|
||||||
(for tag in '${wmstate.workspaces[0].tags}'
|
|
||||||
(button
|
|
||||||
:class {tag.mine ? "ws-button-mine" :
|
|
||||||
tag.visible ? "ws-button-visible" :
|
|
||||||
tag.urgent ? "ws-button-urgent" :
|
|
||||||
tag.busy ? "ws-button-busy" : "ws-button"}
|
|
||||||
:onclick "leftwm-command \"SendWorkspaceToTag 0 ${tag.index}\""
|
|
||||||
{!tag.mine && !tag.busy && !tag.visible && !tag.urgent ? "·" : "${tag.name}"})))))
|
|
||||||
|
|
||||||
(defwidget music []
|
|
||||||
(box :class "music"
|
|
||||||
:orientation "h"
|
|
||||||
:space-evenly false
|
|
||||||
:halign "center"
|
|
||||||
{music != "" ? "🎵${music}" : ""}))
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget metric [label value onchange]
|
|
||||||
(box :orientation "h"
|
|
||||||
:class "metric"
|
|
||||||
:space-evenly false
|
|
||||||
(box :class "label" label)
|
|
||||||
(scale :min 0
|
|
||||||
:max 101
|
|
||||||
:active {onchange != ""}
|
|
||||||
:value value
|
|
||||||
:onchange onchange)))
|
|
||||||
|
|
||||||
(defwidget time []
|
|
||||||
(box :class "time" {time}))
|
|
||||||
|
|
||||||
|
|
||||||
(deflisten music :initial ""
|
|
||||||
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
|
||||||
|
|
||||||
(defpoll volume :interval "1s" :initial "50"
|
|
||||||
"scripts/getvol")
|
|
||||||
|
|
||||||
(defpoll time :interval "10s"
|
|
||||||
"date '+%H:%M %b %d, %Y'")
|
|
||||||
|
|
||||||
(deflisten wmstate
|
|
||||||
:initial '{"workspaces":[{"layout":"","tags":[{"name":"","index":0,"mine":false,"busy":false,"visible":false,"urgent":false}]}]}'
|
|
||||||
"leftwm state")
|
|
||||||
|
|
||||||
(defwindow bar0
|
|
||||||
:monitor 0
|
|
||||||
:windowtype "dock"
|
|
||||||
:geometry (geometry :x "0%"
|
|
||||||
:y "0%"
|
|
||||||
:width "90%"
|
|
||||||
:height "10px"
|
|
||||||
:anchor "top center")
|
|
||||||
:reserve (struts :side "top" :distance "4%")
|
|
||||||
(bar))
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%' | head -1
|
|
|
@ -1,3 +0,0 @@
|
||||||
{% for workspace in workspaces %}
|
|
||||||
{{workspace.w}}x{{workspace.h}}+{{workspace.x}}+{{workspace.y}}
|
|
||||||
{% endfor %}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{% assign mine_open = ' (button :class "ws-button-mine" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
|
||||||
{% assign visible_open = ' (button :class "ws-button-visible" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
|
||||||
{% assign busy_open = ' (button :class "ws-button-busy" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
|
||||||
{% assign close = '`)' %}
|
|
||||||
{% assign unoccupied = ' (button :class "ws-button" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
|
||||||
|
|
||||||
{{'(box :class "workspaces" :orientation "h" :space-evenly true :halign "start" :spacing 10'}}
|
|
||||||
{% for tag in workspace.tags %}
|
|
||||||
{% if tag.mine %}
|
|
||||||
{{mine_open}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ tag.name }}{{close}}
|
|
||||||
{% elsif tag.visible %}
|
|
||||||
{{visible_open}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ tag.name }}{{close}}
|
|
||||||
{% elsif tag.busy %}
|
|
||||||
{{busy_open}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ tag.name }}{{close}}
|
|
||||||
{% else %}
|
|
||||||
{{unoccupied}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ "·" }}{{close}}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{{")"}}
|
|
|
@ -1,6 +0,0 @@
|
||||||
(border_width: 1,
|
|
||||||
margin: 5,
|
|
||||||
default_border_color: "#37474F",
|
|
||||||
floating_border_color: "#225588",
|
|
||||||
focused_border_color: "#885522",
|
|
||||||
)
|
|
|
@ -1,44 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
export SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
#if path to liblinkt is not not exported do so:
|
|
||||||
if [ -z "$LD_LIBRARY_PATH" ]; then
|
|
||||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Down the last running theme
|
|
||||||
if [ -f "/tmp/leftwm-theme-down" ]; then
|
|
||||||
/tmp/leftwm-theme-down
|
|
||||||
rm /tmp/leftwm-theme-down
|
|
||||||
fi
|
|
||||||
ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down
|
|
||||||
|
|
||||||
# start eww daemon
|
|
||||||
eww daemon &
|
|
||||||
|
|
||||||
# Boot picom or compton if it exists
|
|
||||||
if [ -x "$(command -v picom)" ]; then
|
|
||||||
picom --experimental-backends &> /dev/null &
|
|
||||||
# picom &> /dev/null &
|
|
||||||
elif [ -x "$(command -v compton)" ]; then
|
|
||||||
compton &> /dev/null &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set the theme.ron config
|
|
||||||
leftwm-command "LoadTheme $SCRIPTPATH/theme.ron"
|
|
||||||
|
|
||||||
# Set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/background.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
#open eww 'bar' windows
|
|
||||||
#this is a bit of an uggly hack, a more elegant way will hopefully be possible with a future `eww` version
|
|
||||||
sleep 1
|
|
||||||
index=0
|
|
||||||
sizes=( $(leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d' ) )
|
|
||||||
for size in "${sizes[@]}"
|
|
||||||
do
|
|
||||||
eww open bar$index
|
|
||||||
let index=index+1
|
|
||||||
done
|
|
Before Width: | Height: | Size: 288 KiB |
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SendWorkspaceToTag $1 $2"
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/down.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
leftwm-command "UnloadTheme"
|
|
||||||
|
|
||||||
pkill lemonbar
|
|
||||||
pkill compton
|
|
||||||
pkill picom
|
|
||||||
pkill lemonbar
|
|
||||||
|
|
Before Width: | Height: | Size: 539 B |
|
@ -1,3 +0,0 @@
|
||||||
{% for workspace in workspaces %}
|
|
||||||
{{workspace.w}}x{{34}}+{{workspace.x}}+{{workspace.y}}
|
|
||||||
{% endfor %}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{% assign mine_open = '%{F#000000}%{B#FFFFFF}' %}
|
|
||||||
{% assign mine_close = '%{B-}%{F-}' %}
|
|
||||||
{% assign visible_open = '%{F#000000}%{B#999999}' %}
|
|
||||||
{% assign visible_close = '%{B-}%{F-}' %}
|
|
||||||
{% assign busy_open = '%{F#999999}%{B#333333}' %}
|
|
||||||
{% assign busy_close = '%{B-}%{F-}' %}
|
|
||||||
|
|
||||||
{% for tag in workspace.tags %}
|
|
||||||
{% if tag.mine %}
|
|
||||||
{{mine_open}} {{ tag.name }} {{mine_close}}
|
|
||||||
{% elsif tag.visible %}
|
|
||||||
{{visible_open}} {{ tag.name }} {{visible_close}}
|
|
||||||
{% elsif tag.busy %}
|
|
||||||
{{busy_open}} {{ tag.name }} {{busy_close}}
|
|
||||||
{% else %}
|
|
||||||
{{ tag.name }}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
%{c}
|
|
||||||
{{ window_title }}
|
|
||||||
%{r}
|
|
||||||
{{ localtime }}
|
|
|
@ -1,6 +0,0 @@
|
||||||
(border_width: 1,
|
|
||||||
margin: 10,
|
|
||||||
default_border_color: "#222222",
|
|
||||||
floating_border_color: "#555555",
|
|
||||||
focused_border_color: "#AAAAAA",
|
|
||||||
)
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
|
|
||||||
#down the last running theme
|
|
||||||
if [ -f "/tmp/leftwm-theme-down" ]; then
|
|
||||||
/tmp/leftwm-theme-down
|
|
||||||
rm /tmp/leftwm-theme-down
|
|
||||||
fi
|
|
||||||
ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down
|
|
||||||
|
|
||||||
|
|
||||||
#boot compton or picom if it exists
|
|
||||||
if [ -x "$(command -v compton)" ]; then
|
|
||||||
compton &> /dev/null &
|
|
||||||
elif [ -x "$(command -v picom)" ]; then
|
|
||||||
picom &> /dev/null &
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set the theme.ron config
|
|
||||||
leftwm-command "LoadTheme $SCRIPTPATH/theme.ron"
|
|
||||||
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/background.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#boot lemonbar and pipe the status of left into it
|
|
||||||
sizes=( $(leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d') )
|
|
||||||
|
|
||||||
index=0
|
|
||||||
for size in "${sizes[@]}"
|
|
||||||
do
|
|
||||||
leftwm-state -w $index -t $SCRIPTPATH/template.liquid | lemonbar -g $size -F#FFFFFFFF -B#AA222222&
|
|
||||||
let index=index+1
|
|
||||||
done
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
I changed the pre-loop section to instead of getting a single monitor, to get all the monitors by removing the grep and tac (which caused monitors to be in reverse order compared to leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid). This is so I can set the monitor variable that's passed to the polybar command to the correct monitor (previously, it only got the first monitor and sent that to each). This fixes the highlighted tag being wrong. I got the correct monitor in-loop by using sed which was already a dependent of this script. However, sed expects it to be indexed at one so I created a new variable for that. I then set the 0-indexed variable at the end to that variable instead of recalculating index+1 (don't know if that's actually faster though). I also changed offsetx=$x to offset=$x since offsetx didn't work for my middle monitor which is index0 and a different size than the others. As far as I know, these changes are only an improvement and shouldn't break old setups.
|
|
Before Width: | Height: | Size: 619 KiB |
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SendWorkspaceToTag $1 $2"
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/down.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
leftwm-command "UnloadTheme"
|
|
||||||
|
|
||||||
pkill compton
|
|
||||||
pkill picom
|
|
||||||
pkill polybar
|
|
||||||
|
|
Before Width: | Height: | Size: 539 B |
|
@ -1,447 +0,0 @@
|
||||||
;==========================================================
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
|
||||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
|
||||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
|
||||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
|
||||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
|
||||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; To learn more about how to configure Polybar
|
|
||||||
; go to https://github.com/jaagr/polybar
|
|
||||||
;
|
|
||||||
; The README contains a lot of information
|
|
||||||
;
|
|
||||||
;==========================================================
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
background = #99222222
|
|
||||||
foreground = #dfdfdf
|
|
||||||
background-alt = #99444444
|
|
||||||
foreground-alt = #FFFFFF
|
|
||||||
primary = #00ff00
|
|
||||||
secondary = #e60053
|
|
||||||
alert = #bd2c40
|
|
||||||
|
|
||||||
|
|
||||||
[bar/mainbar0]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace0
|
|
||||||
[module/workspace0]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 0 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
[bar/mainbar1]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace1
|
|
||||||
[module/workspace1]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 1 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
[bar/mainbar2]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace2
|
|
||||||
[module/workspace2]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 2 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
[bar/mainbar3]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace3
|
|
||||||
[module/workspace3]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 3 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
|
|
||||||
[bar/barbase]
|
|
||||||
width = ${env:width}
|
|
||||||
offset-x = ${env:offsetx}
|
|
||||||
monitor = ${env:monitor}
|
|
||||||
;offset-y = ${env:y}
|
|
||||||
;width = 100%
|
|
||||||
height = 27
|
|
||||||
fixed-center = false
|
|
||||||
background = ${colors.background}
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
line-size = 3
|
|
||||||
line-color = #f00
|
|
||||||
border-size = 0
|
|
||||||
border-color = #00000000
|
|
||||||
padding-left = 0
|
|
||||||
padding-right = 2
|
|
||||||
module-margin-left = 1
|
|
||||||
module-margin-right = 2
|
|
||||||
font-0 = misc fixed:pixelsize=10;1
|
|
||||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
|
||||||
font-2 = wuncon siji:pixelsize=10;1
|
|
||||||
modules-center =
|
|
||||||
modules-right = filesystem xbacklight pulseaudio xkeyboard memory cpu wlan eth battery temperature date powermenu
|
|
||||||
tray-position = right
|
|
||||||
tray-padding = 2
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
[module/ewmh]
|
|
||||||
type = internal/xworkspaces
|
|
||||||
label-active = " %icon% %name% "
|
|
||||||
label-active-foreground = ${colors.foreground-alt}
|
|
||||||
label-active-background = ${colors.background-alt}
|
|
||||||
label-active-underline = ${colors.primary}
|
|
||||||
label-occupied = " %icon% %name% "
|
|
||||||
label-occupied-underline = ${colors.secondary}
|
|
||||||
label-urgent = " %icon% %name% "
|
|
||||||
label-urgent-foreground = ${colors.foreground}
|
|
||||||
label-urgent-background = ${colors.background}
|
|
||||||
label-urgent-underline = ${colors.alert}
|
|
||||||
label-empty = " %icon% %name% "
|
|
||||||
label-empty-foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:30:...%
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
blacklist-0 = num lock
|
|
||||||
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-prefix-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
label-layout = %layout%
|
|
||||||
label-layout-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
label-indicator-padding = 2
|
|
||||||
label-indicator-margin = 1
|
|
||||||
label-indicator-background = ${colors.secondary}
|
|
||||||
label-indicator-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
interval = 25
|
|
||||||
|
|
||||||
mount-0 = /
|
|
||||||
|
|
||||||
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
|
|
||||||
label-unmounted = %mountpoint% not mounted
|
|
||||||
label-unmounted-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/bspwm]
|
|
||||||
type = internal/bspwm
|
|
||||||
|
|
||||||
label-focused = %index%
|
|
||||||
label-focused-background = ${colors.background-alt}
|
|
||||||
label-focused-underline= ${colors.primary}
|
|
||||||
label-focused-padding = 2
|
|
||||||
|
|
||||||
label-occupied = %index%
|
|
||||||
label-occupied-padding = 2
|
|
||||||
|
|
||||||
label-urgent = %index%!
|
|
||||||
label-urgent-background = ${colors.alert}
|
|
||||||
label-urgent-padding = 2
|
|
||||||
|
|
||||||
label-empty = %index%
|
|
||||||
label-empty-foreground = ${colors.foreground-alt}
|
|
||||||
label-empty-padding = 2
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
[module/i3]
|
|
||||||
type = internal/i3
|
|
||||||
format = <label-state> <label-mode>
|
|
||||||
index-sort = true
|
|
||||||
wrapping-scroll = false
|
|
||||||
|
|
||||||
; Only show workspaces on the same output as the bar
|
|
||||||
;pin-workspaces = true
|
|
||||||
|
|
||||||
label-mode-padding = 2
|
|
||||||
label-mode-foreground = #000
|
|
||||||
label-mode-background = ${colors.primary}
|
|
||||||
|
|
||||||
; focused = Active workspace on focused monitor
|
|
||||||
label-focused = %index%
|
|
||||||
label-focused-background = ${module/bspwm.label-focused-background}
|
|
||||||
label-focused-underline = ${module/bspwm.label-focused-underline}
|
|
||||||
label-focused-padding = ${module/bspwm.label-focused-padding}
|
|
||||||
|
|
||||||
; unfocused = Inactive workspace on any monitor
|
|
||||||
label-unfocused = %index%
|
|
||||||
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
|
|
||||||
|
|
||||||
; visible = Active workspace on unfocused monitor
|
|
||||||
label-visible = %index%
|
|
||||||
label-visible-background = ${self.label-focused-background}
|
|
||||||
label-visible-underline = ${self.label-focused-underline}
|
|
||||||
label-visible-padding = ${self.label-focused-padding}
|
|
||||||
|
|
||||||
; urgent = Workspace with urgency hint set
|
|
||||||
label-urgent = %index%
|
|
||||||
label-urgent-background = ${module/bspwm.label-urgent-background}
|
|
||||||
label-urgent-padding = ${module/bspwm.label-urgent-padding}
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
|
|
||||||
[module/mpd]
|
|
||||||
type = internal/mpd
|
|
||||||
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
|
||||||
|
|
||||||
icon-prev =
|
|
||||||
icon-stop =
|
|
||||||
icon-play =
|
|
||||||
icon-pause =
|
|
||||||
icon-next =
|
|
||||||
|
|
||||||
label-song-maxlen = 25
|
|
||||||
label-song-ellipsis = true
|
|
||||||
|
|
||||||
[module/xbacklight]
|
|
||||||
type = internal/xbacklight
|
|
||||||
|
|
||||||
format = <label> <bar>
|
|
||||||
label = BL
|
|
||||||
|
|
||||||
bar-width = 10
|
|
||||||
bar-indicator = |
|
|
||||||
bar-indicator-foreground = #fff
|
|
||||||
bar-indicator-font = 2
|
|
||||||
bar-fill = ─
|
|
||||||
bar-fill-font = 2
|
|
||||||
bar-fill-foreground = #9f78e1
|
|
||||||
bar-empty = ─
|
|
||||||
bar-empty-font = 2
|
|
||||||
bar-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/backlight-acpi]
|
|
||||||
inherit = module/xbacklight
|
|
||||||
type = internal/backlight
|
|
||||||
card = intel_backlight
|
|
||||||
|
|
||||||
[module/cpu]
|
|
||||||
type = internal/cpu
|
|
||||||
interval = 2
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-underline = #f90000
|
|
||||||
label = %percentage:2%%
|
|
||||||
|
|
||||||
[module/memory]
|
|
||||||
type = internal/memory
|
|
||||||
interval = 2
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-underline = #4bffdc
|
|
||||||
label = %percentage_used%%
|
|
||||||
|
|
||||||
[module/wlan]
|
|
||||||
type = internal/network
|
|
||||||
interface = wlp3s0
|
|
||||||
interval = 3.0
|
|
||||||
|
|
||||||
format-connected = <ramp-signal> <label-connected>
|
|
||||||
format-connected-underline = #9f78e1
|
|
||||||
label-connected = %essid%
|
|
||||||
|
|
||||||
format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
ramp-signal-0 =
|
|
||||||
ramp-signal-1 =
|
|
||||||
ramp-signal-2 =
|
|
||||||
ramp-signal-3 =
|
|
||||||
ramp-signal-4 =
|
|
||||||
ramp-signal-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/eth]
|
|
||||||
type = internal/network
|
|
||||||
interface = enp0s25
|
|
||||||
interval = 3.0
|
|
||||||
|
|
||||||
format-connected-underline = #55aa55
|
|
||||||
format-connected-prefix = " "
|
|
||||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
label-connected = %local_ip%
|
|
||||||
|
|
||||||
format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
date = %%{F#99}%m/%d/%Y%%{F-} %%{F#fff}%I:%M %p%{F-}
|
|
||||||
date-alt = %%{F#fff}%A, %B %d, %Y %%{F#fff}%I:%M:%{F#666}%%{F#fba922}%S%%{F-} %p
|
|
||||||
;interval = 5
|
|
||||||
;date =
|
|
||||||
;date-alt = " %Y-%m-%d"
|
|
||||||
;time = %H:%M
|
|
||||||
;time-alt = %H:%M:%S
|
|
||||||
;format-prefix =
|
|
||||||
;format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
;format-underline = #0a6cf5
|
|
||||||
;label = %date% %time%
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
|
||||||
label-volume = VOL %percentage%%
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
|
|
||||||
label-muted = 🔇 muted
|
|
||||||
label-muted-foreground = #666
|
|
||||||
|
|
||||||
bar-volume-width = 10
|
|
||||||
bar-volume-foreground-0 = #55aa55
|
|
||||||
bar-volume-foreground-1 = #55aa55
|
|
||||||
bar-volume-foreground-2 = #55aa55
|
|
||||||
bar-volume-foreground-3 = #55aa55
|
|
||||||
bar-volume-foreground-4 = #55aa55
|
|
||||||
bar-volume-foreground-5 = #f5a70a
|
|
||||||
bar-volume-foreground-6 = #ff5555
|
|
||||||
bar-volume-gradient = false
|
|
||||||
bar-volume-indicator = |
|
|
||||||
bar-volume-indicator-font = 2
|
|
||||||
bar-volume-fill = ─
|
|
||||||
bar-volume-fill-font = 2
|
|
||||||
bar-volume-empty = ─
|
|
||||||
bar-volume-empty-font = 2
|
|
||||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/alsa]
|
|
||||||
type = internal/alsa
|
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
|
||||||
label-volume = VOL
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
|
|
||||||
format-muted-prefix = " "
|
|
||||||
format-muted-foreground = ${colors.foreground-alt}
|
|
||||||
label-muted = sound muted
|
|
||||||
|
|
||||||
bar-volume-width = 10
|
|
||||||
bar-volume-foreground-0 = #55aa55
|
|
||||||
bar-volume-foreground-1 = #55aa55
|
|
||||||
bar-volume-foreground-2 = #55aa55
|
|
||||||
bar-volume-foreground-3 = #55aa55
|
|
||||||
bar-volume-foreground-4 = #55aa55
|
|
||||||
bar-volume-foreground-5 = #f5a70a
|
|
||||||
bar-volume-foreground-6 = #ff5555
|
|
||||||
bar-volume-gradient = false
|
|
||||||
bar-volume-indicator = |
|
|
||||||
bar-volume-indicator-font = 2
|
|
||||||
bar-volume-fill = ─
|
|
||||||
bar-volume-fill-font = 2
|
|
||||||
bar-volume-empty = ─
|
|
||||||
bar-volume-empty-font = 2
|
|
||||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/battery]
|
|
||||||
type = internal/battery
|
|
||||||
battery = BAT0
|
|
||||||
adapter = AC
|
|
||||||
full-at = 98
|
|
||||||
|
|
||||||
format-charging = <animation-charging> <label-charging>
|
|
||||||
format-charging-underline = #ffb52a
|
|
||||||
|
|
||||||
format-discharging = <animation-discharging> <label-discharging>
|
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
format-full-prefix = " "
|
|
||||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-full-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
ramp-capacity-0 =
|
|
||||||
ramp-capacity-1 =
|
|
||||||
ramp-capacity-2 =
|
|
||||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
animation-charging-0 =
|
|
||||||
animation-charging-1 =
|
|
||||||
animation-charging-2 =
|
|
||||||
animation-charging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-charging-framerate = 750
|
|
||||||
|
|
||||||
animation-discharging-0 =
|
|
||||||
animation-discharging-1 =
|
|
||||||
animation-discharging-2 =
|
|
||||||
animation-discharging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-discharging-framerate = 750
|
|
||||||
|
|
||||||
[module/temperature]
|
|
||||||
type = internal/temperature
|
|
||||||
thermal-zone = 0
|
|
||||||
warn-temperature = 60
|
|
||||||
|
|
||||||
format = <ramp> <label>
|
|
||||||
format-underline = #f50a4d
|
|
||||||
format-warn = <ramp> <label-warn>
|
|
||||||
format-warn-underline = ${self.format-underline}
|
|
||||||
|
|
||||||
label = %temperature-c%
|
|
||||||
label-warn = %temperature-c%
|
|
||||||
label-warn-foreground = ${colors.secondary}
|
|
||||||
|
|
||||||
ramp-0 =
|
|
||||||
ramp-1 =
|
|
||||||
ramp-2 =
|
|
||||||
ramp-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/powermenu]
|
|
||||||
type = custom/menu
|
|
||||||
|
|
||||||
expand-right = true
|
|
||||||
|
|
||||||
format-spacing = 1
|
|
||||||
|
|
||||||
label-open =
|
|
||||||
label-open-foreground = ${colors.secondary}
|
|
||||||
label-close = cancel
|
|
||||||
label-close-foreground = ${colors.secondary}
|
|
||||||
label-separator = |
|
|
||||||
label-separator-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
menu-0-0 = reboot
|
|
||||||
menu-0-0-exec = menu-open-1
|
|
||||||
menu-0-1 = power off
|
|
||||||
menu-0-1-exec = menu-open-2
|
|
||||||
|
|
||||||
menu-1-0 = cancel
|
|
||||||
menu-1-0-exec = menu-open-0
|
|
||||||
menu-1-1 = reboot
|
|
||||||
menu-1-1-exec = sudo reboot
|
|
||||||
|
|
||||||
menu-2-0 = power off
|
|
||||||
menu-2-0-exec = sudo poweroff
|
|
||||||
menu-2-1 = cancel
|
|
||||||
menu-2-1-exec = menu-open-0
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
screenchange-reload = true
|
|
||||||
;compositing-background = xor
|
|
||||||
;compositing-background = screen
|
|
||||||
;compositing-foreground = source
|
|
||||||
;compositing-border = over
|
|
||||||
;pseudo-transparency = false
|
|
||||||
|
|
||||||
;[global/wm]
|
|
||||||
;margin-top = 5
|
|
||||||
;margin-bottom = 5
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
|
@ -1,3 +0,0 @@
|
||||||
{% for workspace in workspaces %}
|
|
||||||
{{workspace.w}} {{workspace.x}} {{workspace.y}}
|
|
||||||
{% endfor %}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{% for tag in workspace.tags %}
|
|
||||||
{% if tag.mine %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#000000}%{B#FFB52A} {{tag.name}} %{B-}%{F-}
|
|
||||||
%{A}
|
|
||||||
{% elsif tag.urgent %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{B#FF0000}%{F#000000} {{tag.name}} %{F-}%{B-}
|
|
||||||
%{A}
|
|
||||||
{% elsif tag.visible %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#000000}%{B#FFFFFF} {{tag.name}} %{B-}%{F-}
|
|
||||||
%{A}
|
|
||||||
{% elsif tag.busy %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#FFB52A} {{tag.name}} %{F-}
|
|
||||||
%{A}
|
|
||||||
{% else %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#FFFFFF} {{tag.name}} %{F-}
|
|
||||||
%{A}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
%{c}
|
|
||||||
{{ window_title }}
|
|
|
@ -1,6 +0,0 @@
|
||||||
(border_width: 1,
|
|
||||||
margin: 20,
|
|
||||||
default_border_color: "#222222",
|
|
||||||
floating_border_color: "#005500",
|
|
||||||
focused_border_color: "#FFB53A",
|
|
||||||
)
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
export SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
|
|
||||||
#down the last running theme
|
|
||||||
if [ -f "/tmp/leftwm-theme-down" ]; then
|
|
||||||
/tmp/leftwm-theme-down
|
|
||||||
rm /tmp/leftwm-theme-down
|
|
||||||
fi
|
|
||||||
ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down
|
|
||||||
|
|
||||||
|
|
||||||
#boot picom or compton if it exists
|
|
||||||
if [ -x "$(command -v picom)" ]; then
|
|
||||||
picom &> /dev/null &
|
|
||||||
elif [ -x "$(command -v compton)" ]; then
|
|
||||||
compton &> /dev/null &
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set the theme.ron config
|
|
||||||
leftwm-command "LoadTheme $SCRIPTPATH/theme.ron"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/background.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
index=0
|
|
||||||
monitors="$(polybar -m | sed s/:.*//)"
|
|
||||||
leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d' | while read -r width x y
|
|
||||||
do
|
|
||||||
let indextemp=index+1
|
|
||||||
monitor=$(sed "$indextemp!d" <<<"$monitors")
|
|
||||||
barname="mainbar$index"
|
|
||||||
monitor=$monitor offset=$x width=$width polybar -c $SCRIPTPATH/polybar.config $barname &> /dev/null &
|
|
||||||
let index=indextemp
|
|
||||||
done
|
|
||||||
|
|
Before Width: | Height: | Size: 4.2 MiB |
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SendWorkspaceToTag $1 $2"
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/reset.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
leftwm-command "UnloadTheme"
|
|
||||||
|
|
||||||
|
|
||||||
ps -alh | grep xmobar_control_script | awk '{print $3}' | xargs kill
|
|
||||||
|
|
||||||
pkill compton
|
|
||||||
pkill picom
|
|
||||||
pkill xmobar
|
|
||||||
pkill xmobar
|
|
||||||
|
|
Before Width: | Height: | Size: 539 B |
|
@ -1,3 +0,0 @@
|
||||||
{% for w in workspaces %}
|
|
||||||
Static { xpos = {{w.x}} , ypos = {{w.y}}, width = {{w.w}}, height = 24 }
|
|
||||||
{% endfor %}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{% for tag in workspace.tags %}
|
|
||||||
{% if tag.mine %}
|
|
||||||
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`><fc=#FF0000> {{tag.name}} </fc></action>
|
|
||||||
{% elsif tag.visible %}
|
|
||||||
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`><fc=#FF9999> {{tag.name}} </fc></action>
|
|
||||||
{% elsif tag.busy %}
|
|
||||||
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`> {{tag.name}}* </action>
|
|
||||||
{% else %}
|
|
||||||
<action=`$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}`><fc=#FFFFFF> {{tag.name}} </fc></action>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
<fc=#555555> {{ window_title }}</fc>
|
|
|
@ -1,6 +0,0 @@
|
||||||
(border_width: 2,
|
|
||||||
margin: 12,
|
|
||||||
default_border_color: "#222222",
|
|
||||||
floating_border_color: "#555555",
|
|
||||||
focused_border_color: "#FF3333",
|
|
||||||
)
|
|
|
@ -1,35 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
export SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
|
|
||||||
#down the last running theme
|
|
||||||
if [ -f "/tmp/leftwm-theme-down" ]; then
|
|
||||||
/tmp/leftwm-theme-down
|
|
||||||
rm /tmp/leftwm-theme-down
|
|
||||||
fi
|
|
||||||
ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down
|
|
||||||
|
|
||||||
|
|
||||||
#boot compton or picom if it exists
|
|
||||||
if [ -x "$(command -v compton)" ]; then
|
|
||||||
compton &> /dev/null &
|
|
||||||
elif [ -x "$(command -v picom)" ]; then
|
|
||||||
picom &> /dev/null &
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set the theme.ron config
|
|
||||||
leftwm-command "LoadTheme $SCRIPTPATH/theme.ron"
|
|
||||||
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/background.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
index=0
|
|
||||||
leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d' | while read size
|
|
||||||
do
|
|
||||||
leftwm-state -w $index -t $SCRIPTPATH/template.liquid | xmobar -p "$size" $SCRIPTPATH/xmobar-config.hs &
|
|
||||||
let index=index+1
|
|
||||||
done
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
Config { font = "-misc-fixed-*-*-*-*-13-*-*-*-*-*-*-*"
|
|
||||||
, bgColor = "black"
|
|
||||||
, fgColor = "grey"
|
|
||||||
, position = Top
|
|
||||||
, lowerOnStart = True
|
|
||||||
, allDesktops = True
|
|
||||||
, pickBroadest = False
|
|
||||||
, overrideRedirect = False
|
|
||||||
, commands = [ Run Weather "KSHV" ["-t"," <tempF>F","-L","64","-H","77","--normal","green","--high","red","--low","lightblue"] 36000
|
|
||||||
, Run Network "eno1" ["-L","0","-H","32","--normal","green","--high","red"] 10
|
|
||||||
, Run MultiCpu ["-L","15","-H","50","--normal","green","--high","red"] 10
|
|
||||||
, Run Memory [] 10
|
|
||||||
, Run Swap [] 10
|
|
||||||
, Run TopProc [] 10
|
|
||||||
, Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
|
|
||||||
, Run UnsafeStdinReader
|
|
||||||
]
|
|
||||||
, sepChar = "%"
|
|
||||||
, alignSep = "}{"
|
|
||||||
, template = "%UnsafeStdinReader% }{ %top% | %multicpu% | %memory% * %swap% | %eno1% | %date% | %KSHV%"
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
# How to control LeftWM from an external proccess
|
|
||||||
|
|
||||||
LeftWM supports being controlled using EWMH calls and from an external pipe
|
|
||||||
file.
|
|
||||||
|
|
||||||
This folder has example of how to send commands to LeftWM using its external pipe
|
|
||||||
file.
|
|
||||||
|
|
||||||
A full list of supported commands can be found here:
|
|
||||||
|
|
||||||
```
|
|
||||||
LoadTheme PATH_TO_THEME
|
|
||||||
UnloadTheme
|
|
||||||
Reload
|
|
||||||
SendWorkspaceToTag INDEX_OF_WORKSPACE, INDEX_OF_TAG
|
|
||||||
SendWindowToTag INDEX_OF_TAG
|
|
||||||
SwapScreens
|
|
||||||
MoveWindowToLastWorkspace
|
|
||||||
MoveWindowUp
|
|
||||||
MoveWindowDown
|
|
||||||
FocusWindowUp
|
|
||||||
FocusWindowDown
|
|
||||||
FocusWorkspaceNext
|
|
||||||
FocusWorkspacePrevious
|
|
||||||
CloseWindow
|
|
||||||
NextLayout
|
|
||||||
PreviousLayout
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SendWorkspaceToTag $1 $2"
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "MoveWindowToLastWorkspace"
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SendWindowToTag $1"
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SwapScreens"
|
|
|
@ -1 +0,0 @@
|
||||||
my_theme
|
|
|
@ -1 +0,0 @@
|
||||||
I changed the pre-loop section to instead of getting a single monitor, to get all the monitors by removing the grep and tac (which caused monitors to be in reverse order compared to leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid). This is so I can set the monitor variable that's passed to the polybar command to the correct monitor (previously, it only got the first monitor and sent that to each). This fixes the highlighted tag being wrong. I got the correct monitor in-loop by using sed which was already a dependent of this script. However, sed expects it to be indexed at one so I created a new variable for that. I then set the 0-indexed variable at the end to that variable instead of recalculating index+1 (don't know if that's actually faster though). I also changed offsetx=$x to offset=$x since offsetx didn't work for my middle monitor which is index0 and a different size than the others. As far as I know, these changes are only an improvement and shouldn't break old setups.
|
|
Before Width: | Height: | Size: 619 KiB |
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
leftwm-command "SendWorkspaceToTag $1 $2"
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/down.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
leftwm-command "UnloadTheme"
|
|
||||||
|
|
||||||
pkill compton
|
|
||||||
pkill picom
|
|
||||||
pkill polybar
|
|
||||||
|
|
Before Width: | Height: | Size: 539 B |
|
@ -1,448 +0,0 @@
|
||||||
;==========================================================
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
|
||||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
|
||||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
|
||||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
|
||||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
|
||||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; To learn more about how to configure Polybar
|
|
||||||
; go to https://github.com/jaagr/polybar
|
|
||||||
;
|
|
||||||
; The README contains a lot of information
|
|
||||||
;
|
|
||||||
;==========================================================
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
background = #AA000000
|
|
||||||
foreground = #dfdfdf
|
|
||||||
background-alt = #000000
|
|
||||||
foreground-alt = #FFFFFF
|
|
||||||
primary = #00ff00
|
|
||||||
; secondary = #e60053
|
|
||||||
secondary = #FF0000
|
|
||||||
alert = #bd2c40
|
|
||||||
|
|
||||||
|
|
||||||
[bar/mainbar0]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace0
|
|
||||||
[module/workspace0]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 0 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
[bar/mainbar1]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace1
|
|
||||||
[module/workspace1]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 1 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
[bar/mainbar2]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace2
|
|
||||||
[module/workspace2]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 2 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
[bar/mainbar3]
|
|
||||||
inherit = bar/barbase
|
|
||||||
modules-left = workspace3
|
|
||||||
[module/workspace3]
|
|
||||||
type = custom/script
|
|
||||||
exec = leftwm-state -w 3 -t $SCRIPTPATH/template.liquid
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
|
|
||||||
[bar/barbase]
|
|
||||||
width = ${env:width}
|
|
||||||
offset-x = ${env:offsetx}
|
|
||||||
monitor = ${env:monitor}
|
|
||||||
;offset-y = ${env:y}
|
|
||||||
;width = 100%
|
|
||||||
height = 27
|
|
||||||
fixed-center = false
|
|
||||||
background = ${colors.background}
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
line-size = 3
|
|
||||||
line-color = #f00
|
|
||||||
border-size = 0
|
|
||||||
border-color = #00000000
|
|
||||||
padding-left = 0
|
|
||||||
padding-right = 2
|
|
||||||
module-margin-left = 1
|
|
||||||
module-margin-right = 2
|
|
||||||
font-0 = misc fixed:pixelsize=10;1
|
|
||||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
|
||||||
font-2 = wuncon siji:pixelsize=10;1
|
|
||||||
modules-center =
|
|
||||||
modules-right = filesystem xbacklight pulseaudio xkeyboard memory cpu wlan eth battery temperature date powermenu
|
|
||||||
tray-position = right
|
|
||||||
tray-padding = 2
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
[module/ewmh]
|
|
||||||
type = internal/xworkspaces
|
|
||||||
label-active = " %icon% %name% "
|
|
||||||
label-active-foreground = ${colors.foreground-alt}
|
|
||||||
label-active-background = ${colors.background-alt}
|
|
||||||
label-active-underline = ${colors.primary}
|
|
||||||
label-occupied = " %icon% %name% "
|
|
||||||
label-occupied-underline = ${colors.secondary}
|
|
||||||
label-urgent = " %icon% %name% "
|
|
||||||
label-urgent-foreground = ${colors.foreground}
|
|
||||||
label-urgent-background = ${colors.background}
|
|
||||||
label-urgent-underline = ${colors.alert}
|
|
||||||
label-empty = " %icon% %name% "
|
|
||||||
label-empty-foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:30:...%
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
blacklist-0 = num lock
|
|
||||||
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-prefix-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
label-layout = %layout%
|
|
||||||
label-layout-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
label-indicator-padding = 2
|
|
||||||
label-indicator-margin = 1
|
|
||||||
label-indicator-background = ${colors.secondary}
|
|
||||||
label-indicator-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
interval = 25
|
|
||||||
|
|
||||||
mount-0 = /
|
|
||||||
|
|
||||||
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
|
|
||||||
label-unmounted = %mountpoint% not mounted
|
|
||||||
label-unmounted-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/bspwm]
|
|
||||||
type = internal/bspwm
|
|
||||||
|
|
||||||
label-focused = %index%
|
|
||||||
label-focused-background = ${colors.background-alt}
|
|
||||||
label-focused-underline= ${colors.primary}
|
|
||||||
label-focused-padding = 2
|
|
||||||
|
|
||||||
label-occupied = %index%
|
|
||||||
label-occupied-padding = 2
|
|
||||||
|
|
||||||
label-urgent = %index%!
|
|
||||||
label-urgent-background = ${colors.alert}
|
|
||||||
label-urgent-padding = 2
|
|
||||||
|
|
||||||
label-empty = %index%
|
|
||||||
label-empty-foreground = ${colors.foreground-alt}
|
|
||||||
label-empty-padding = 2
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
[module/i3]
|
|
||||||
type = internal/i3
|
|
||||||
format = <label-state> <label-mode>
|
|
||||||
index-sort = true
|
|
||||||
wrapping-scroll = false
|
|
||||||
|
|
||||||
; Only show workspaces on the same output as the bar
|
|
||||||
;pin-workspaces = true
|
|
||||||
|
|
||||||
label-mode-padding = 2
|
|
||||||
label-mode-foreground = #000
|
|
||||||
label-mode-background = ${colors.primary}
|
|
||||||
|
|
||||||
; focused = Active workspace on focused monitor
|
|
||||||
label-focused = %index%
|
|
||||||
label-focused-background = ${module/bspwm.label-focused-background}
|
|
||||||
label-focused-underline = ${module/bspwm.label-focused-underline}
|
|
||||||
label-focused-padding = ${module/bspwm.label-focused-padding}
|
|
||||||
|
|
||||||
; unfocused = Inactive workspace on any monitor
|
|
||||||
label-unfocused = %index%
|
|
||||||
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
|
|
||||||
|
|
||||||
; visible = Active workspace on unfocused monitor
|
|
||||||
label-visible = %index%
|
|
||||||
label-visible-background = ${self.label-focused-background}
|
|
||||||
label-visible-underline = ${self.label-focused-underline}
|
|
||||||
label-visible-padding = ${self.label-focused-padding}
|
|
||||||
|
|
||||||
; urgent = Workspace with urgency hint set
|
|
||||||
label-urgent = %index%
|
|
||||||
label-urgent-background = ${module/bspwm.label-urgent-background}
|
|
||||||
label-urgent-padding = ${module/bspwm.label-urgent-padding}
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
|
|
||||||
[module/mpd]
|
|
||||||
type = internal/mpd
|
|
||||||
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
|
||||||
|
|
||||||
icon-prev =
|
|
||||||
icon-stop =
|
|
||||||
icon-play =
|
|
||||||
icon-pause =
|
|
||||||
icon-next =
|
|
||||||
|
|
||||||
label-song-maxlen = 25
|
|
||||||
label-song-ellipsis = true
|
|
||||||
|
|
||||||
[module/xbacklight]
|
|
||||||
type = internal/xbacklight
|
|
||||||
|
|
||||||
format = <label> <bar>
|
|
||||||
label = BL
|
|
||||||
|
|
||||||
bar-width = 10
|
|
||||||
bar-indicator = |
|
|
||||||
bar-indicator-foreground = #fff
|
|
||||||
bar-indicator-font = 2
|
|
||||||
bar-fill = ─
|
|
||||||
bar-fill-font = 2
|
|
||||||
bar-fill-foreground = #9f78e1
|
|
||||||
bar-empty = ─
|
|
||||||
bar-empty-font = 2
|
|
||||||
bar-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/backlight-acpi]
|
|
||||||
inherit = module/xbacklight
|
|
||||||
type = internal/backlight
|
|
||||||
card = intel_backlight
|
|
||||||
|
|
||||||
[module/cpu]
|
|
||||||
type = internal/cpu
|
|
||||||
interval = 2
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-underline = #f90000
|
|
||||||
label = %percentage:2%%
|
|
||||||
|
|
||||||
[module/memory]
|
|
||||||
type = internal/memory
|
|
||||||
interval = 2
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-underline = #4bffdc
|
|
||||||
label = %percentage_used%%
|
|
||||||
|
|
||||||
[module/wlan]
|
|
||||||
type = internal/network
|
|
||||||
interface = wlp3s0
|
|
||||||
interval = 3.0
|
|
||||||
|
|
||||||
format-connected = <ramp-signal> <label-connected>
|
|
||||||
format-connected-underline = #9f78e1
|
|
||||||
label-connected = %essid%
|
|
||||||
|
|
||||||
format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
ramp-signal-0 =
|
|
||||||
ramp-signal-1 =
|
|
||||||
ramp-signal-2 =
|
|
||||||
ramp-signal-3 =
|
|
||||||
ramp-signal-4 =
|
|
||||||
ramp-signal-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/eth]
|
|
||||||
type = internal/network
|
|
||||||
interface = enp0s25
|
|
||||||
interval = 3.0
|
|
||||||
|
|
||||||
format-connected-underline = #55aa55
|
|
||||||
format-connected-prefix = " "
|
|
||||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
label-connected = %local_ip%
|
|
||||||
|
|
||||||
format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
date = %%{F#99}%m/%d/%Y%%{F-} %%{F#fff}%I:%M %p%{F-}
|
|
||||||
date-alt = %%{F#fff}%A, %B %d, %Y %%{F#fff}%I:%M:%{F#666}%%{F#fba922}%S%%{F-} %p
|
|
||||||
;interval = 5
|
|
||||||
;date =
|
|
||||||
;date-alt = " %Y-%m-%d"
|
|
||||||
;time = %H:%M
|
|
||||||
;time-alt = %H:%M:%S
|
|
||||||
;format-prefix =
|
|
||||||
;format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
;format-underline = #0a6cf5
|
|
||||||
;label = %date% %time%
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
|
||||||
label-volume = VOL %percentage%%
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
|
|
||||||
label-muted = 🔇 muted
|
|
||||||
label-muted-foreground = #666
|
|
||||||
|
|
||||||
bar-volume-width = 10
|
|
||||||
bar-volume-foreground-0 = #55aa55
|
|
||||||
bar-volume-foreground-1 = #55aa55
|
|
||||||
bar-volume-foreground-2 = #55aa55
|
|
||||||
bar-volume-foreground-3 = #55aa55
|
|
||||||
bar-volume-foreground-4 = #55aa55
|
|
||||||
bar-volume-foreground-5 = #f5a70a
|
|
||||||
bar-volume-foreground-6 = #ff5555
|
|
||||||
bar-volume-gradient = false
|
|
||||||
bar-volume-indicator = |
|
|
||||||
bar-volume-indicator-font = 2
|
|
||||||
bar-volume-fill = ─
|
|
||||||
bar-volume-fill-font = 2
|
|
||||||
bar-volume-empty = ─
|
|
||||||
bar-volume-empty-font = 2
|
|
||||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/alsa]
|
|
||||||
type = internal/alsa
|
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
|
||||||
label-volume = VOL
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
|
|
||||||
format-muted-prefix = " "
|
|
||||||
format-muted-foreground = ${colors.foreground-alt}
|
|
||||||
label-muted = sound muted
|
|
||||||
|
|
||||||
bar-volume-width = 10
|
|
||||||
bar-volume-foreground-0 = #55aa55
|
|
||||||
bar-volume-foreground-1 = #55aa55
|
|
||||||
bar-volume-foreground-2 = #55aa55
|
|
||||||
bar-volume-foreground-3 = #55aa55
|
|
||||||
bar-volume-foreground-4 = #55aa55
|
|
||||||
bar-volume-foreground-5 = #f5a70a
|
|
||||||
bar-volume-foreground-6 = #ff5555
|
|
||||||
bar-volume-gradient = false
|
|
||||||
bar-volume-indicator = |
|
|
||||||
bar-volume-indicator-font = 2
|
|
||||||
bar-volume-fill = ─
|
|
||||||
bar-volume-fill-font = 2
|
|
||||||
bar-volume-empty = ─
|
|
||||||
bar-volume-empty-font = 2
|
|
||||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/battery]
|
|
||||||
type = internal/battery
|
|
||||||
battery = BAT0
|
|
||||||
adapter = AC
|
|
||||||
full-at = 98
|
|
||||||
|
|
||||||
format-charging = <animation-charging> <label-charging>
|
|
||||||
format-charging-underline = #ffb52a
|
|
||||||
|
|
||||||
format-discharging = <animation-discharging> <label-discharging>
|
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
format-full-prefix = " "
|
|
||||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-full-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
ramp-capacity-0 =
|
|
||||||
ramp-capacity-1 =
|
|
||||||
ramp-capacity-2 =
|
|
||||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
animation-charging-0 =
|
|
||||||
animation-charging-1 =
|
|
||||||
animation-charging-2 =
|
|
||||||
animation-charging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-charging-framerate = 750
|
|
||||||
|
|
||||||
animation-discharging-0 =
|
|
||||||
animation-discharging-1 =
|
|
||||||
animation-discharging-2 =
|
|
||||||
animation-discharging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-discharging-framerate = 750
|
|
||||||
|
|
||||||
[module/temperature]
|
|
||||||
type = internal/temperature
|
|
||||||
thermal-zone = 0
|
|
||||||
warn-temperature = 60
|
|
||||||
|
|
||||||
format = <ramp> <label>
|
|
||||||
format-underline = #f50a4d
|
|
||||||
format-warn = <ramp> <label-warn>
|
|
||||||
format-warn-underline = ${self.format-underline}
|
|
||||||
|
|
||||||
label = %temperature-c%
|
|
||||||
label-warn = %temperature-c%
|
|
||||||
label-warn-foreground = ${colors.secondary}
|
|
||||||
|
|
||||||
ramp-0 =
|
|
||||||
ramp-1 =
|
|
||||||
ramp-2 =
|
|
||||||
ramp-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/powermenu]
|
|
||||||
type = custom/menu
|
|
||||||
|
|
||||||
expand-right = true
|
|
||||||
|
|
||||||
format-spacing = 1
|
|
||||||
|
|
||||||
label-open =
|
|
||||||
label-open-foreground = ${colors.secondary}
|
|
||||||
label-close = cancel
|
|
||||||
label-close-foreground = ${colors.secondary}
|
|
||||||
label-separator = |
|
|
||||||
label-separator-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
menu-0-0 = reboot
|
|
||||||
menu-0-0-exec = menu-open-1
|
|
||||||
menu-0-1 = power off
|
|
||||||
menu-0-1-exec = menu-open-2
|
|
||||||
|
|
||||||
menu-1-0 = cancel
|
|
||||||
menu-1-0-exec = menu-open-0
|
|
||||||
menu-1-1 = reboot
|
|
||||||
menu-1-1-exec = sudo reboot
|
|
||||||
|
|
||||||
menu-2-0 = power off
|
|
||||||
menu-2-0-exec = sudo poweroff
|
|
||||||
menu-2-1 = cancel
|
|
||||||
menu-2-1-exec = menu-open-0
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
screenchange-reload = true
|
|
||||||
;compositing-background = xor
|
|
||||||
;compositing-background = screen
|
|
||||||
;compositing-foreground = source
|
|
||||||
;compositing-border = over
|
|
||||||
;pseudo-transparency = false
|
|
||||||
|
|
||||||
;[global/wm]
|
|
||||||
;margin-top = 5
|
|
||||||
;margin-bottom = 5
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
|
@ -1,3 +0,0 @@
|
||||||
{% for workspace in workspaces %}
|
|
||||||
{{workspace.w}} {{workspace.x}} {{workspace.y}}
|
|
||||||
{% endfor %}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{% for tag in workspace.tags %}
|
|
||||||
{% if tag.mine %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#000000}%{B#FFB52A} {{tag.name}} %{B-}%{F-}
|
|
||||||
%{A}
|
|
||||||
{% elsif tag.urgent %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{B#FF0000}%{F#000000} {{tag.name}} %{F-}%{B-}
|
|
||||||
%{A}
|
|
||||||
{% elsif tag.visible %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#000000}%{B#FFFFFF} {{tag.name}} %{B-}%{F-}
|
|
||||||
%{A}
|
|
||||||
{% elsif tag.busy %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#FFB52A} {{tag.name}} %{F-}
|
|
||||||
%{A}
|
|
||||||
{% else %}
|
|
||||||
%{A1:$SCRIPTPATH/change_to_tag {{workspace.index}} {{tag.index}}:}
|
|
||||||
%{F#FFFFFF} {{tag.name}} %{F-}
|
|
||||||
%{A}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
%{c}
|
|
||||||
{{ window_title }}
|
|
|
@ -1,6 +0,0 @@
|
||||||
(border_width: 2,
|
|
||||||
margin: 6,
|
|
||||||
default_border_color: "#222222",
|
|
||||||
floating_border_color: "#77DDDD",
|
|
||||||
focused_border_color: "#77DD77",
|
|
||||||
)
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
export SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
||||||
|
|
||||||
|
|
||||||
#down the last running theme
|
|
||||||
if [ -f "/tmp/leftwm-theme-down" ]; then
|
|
||||||
/tmp/leftwm-theme-down
|
|
||||||
rm /tmp/leftwm-theme-down
|
|
||||||
fi
|
|
||||||
ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down
|
|
||||||
|
|
||||||
|
|
||||||
#boot picom or compton if it exists
|
|
||||||
if [ -x "$(command -v picom)" ]; then
|
|
||||||
picom &> /dev/null &
|
|
||||||
elif [ -x "$(command -v compton)" ]; then
|
|
||||||
compton &> /dev/null &
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set the theme.ron config
|
|
||||||
leftwm-command "LoadTheme $SCRIPTPATH/theme.ron"
|
|
||||||
|
|
||||||
#set background
|
|
||||||
if [ -x "$(command -v feh)" ]; then
|
|
||||||
feh --bg-scale $SCRIPTPATH/background.jpg
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
index=0
|
|
||||||
monitors="$(polybar -m | sed s/:.*//)"
|
|
||||||
leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d' | while read -r width x y
|
|
||||||
do
|
|
||||||
let indextemp=index+1
|
|
||||||
monitor=$(sed "$indextemp!d" <<<"$monitors")
|
|
||||||
barname="mainbar$index"
|
|
||||||
monitor=$monitor offset=$x width=$width polybar -c $SCRIPTPATH/polybar.config $barname &> /dev/null &
|
|
||||||
let index=indextemp
|
|
||||||
done
|
|
||||||
|
|
428
picom/.config/picom.conf
Normal file
|
@ -0,0 +1,428 @@
|
||||||
|
#################################
|
||||||
|
# Shadows #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# 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
|
||||||
|
shadow = true;
|
||||||
|
|
||||||
|
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||||
|
# shadow-radius = 12
|
||||||
|
shadow-radius = 7;
|
||||||
|
|
||||||
|
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||||
|
# shadow-opacity = .75
|
||||||
|
|
||||||
|
# The left offset for shadows, in pixels. (defaults to -15)
|
||||||
|
# shadow-offset-x = -15
|
||||||
|
shadow-offset-x = -7;
|
||||||
|
|
||||||
|
# The top offset for shadows, in pixels. (defaults to -15)
|
||||||
|
# shadow-offset-y = -15
|
||||||
|
shadow-offset-y = -7;
|
||||||
|
|
||||||
|
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-red = 0
|
||||||
|
|
||||||
|
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-green = 0
|
||||||
|
|
||||||
|
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-blue = 0
|
||||||
|
|
||||||
|
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||||
|
# shadow-color = "#000000"
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should have no shadow.
|
||||||
|
#
|
||||||
|
# examples:
|
||||||
|
# shadow-exclude = "n:e:Notification";
|
||||||
|
#
|
||||||
|
# shadow-exclude = []
|
||||||
|
shadow-exclude = [
|
||||||
|
"name = 'Notification'",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"class_g = 'Cairo-clock'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||||
|
# clip-shadow-above = []
|
||||||
|
|
||||||
|
# Specify a X geometry that describes the region in which shadow should not
|
||||||
|
# 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 = ""
|
||||||
|
|
||||||
|
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||||
|
# xinerama-shadow-crop = false
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Fading #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Fade windows in/out when opening/closing and when opacity changes,
|
||||||
|
# unless no-fading-openclose is used.
|
||||||
|
# fading = false
|
||||||
|
fading = true;
|
||||||
|
|
||||||
|
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||||
|
# fade-in-step = 0.028
|
||||||
|
fade-in-step = 0.03;
|
||||||
|
|
||||||
|
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||||
|
# fade-out-step = 0.03
|
||||||
|
fade-out-step = 0.03;
|
||||||
|
|
||||||
|
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||||
|
# fade-delta = 10
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should not be faded.
|
||||||
|
# fade-exclude = []
|
||||||
|
|
||||||
|
# Do not fade on window open/close.
|
||||||
|
# no-fading-openclose = false
|
||||||
|
|
||||||
|
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||||
|
# no-fading-destroyed-argb = false
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Transparency / Opacity #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||||
|
# inactive-opacity = 1
|
||||||
|
inactive-opacity = 0.95;
|
||||||
|
|
||||||
|
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||||
|
# frame-opacity = 1.0
|
||||||
|
frame-opacity = 0.9;
|
||||||
|
|
||||||
|
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||||
|
# inactive-opacity-override = true
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
|
||||||
|
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||||
|
# active-opacity = 1.0
|
||||||
|
|
||||||
|
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||||
|
# inactive-dim = 0.0
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should never be considered focused.
|
||||||
|
# focus-exclude = []
|
||||||
|
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||||
|
# example:
|
||||||
|
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||||
|
#
|
||||||
|
# opacity-rule = []
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Corners #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||||
|
# round the corners of windows. Does not interact well with
|
||||||
|
# `transparent-clipping`.
|
||||||
|
corner-radius = 0
|
||||||
|
|
||||||
|
# Exclude conditions for rounded corners.
|
||||||
|
rounded-corners-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Background-Blurring #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||||
|
# blur-method =
|
||||||
|
# blur-size = 12
|
||||||
|
#
|
||||||
|
# blur-deviation = false
|
||||||
|
#
|
||||||
|
# blur-strength = 5
|
||||||
|
|
||||||
|
# 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 = false
|
||||||
|
|
||||||
|
# Blur background of windows when the window frame is not opaque.
|
||||||
|
# Implies:
|
||||||
|
# blur-background
|
||||||
|
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||||
|
#
|
||||||
|
# blur-background-frame = false
|
||||||
|
|
||||||
|
|
||||||
|
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||||
|
# blur-background-fixed = false
|
||||||
|
|
||||||
|
|
||||||
|
# Specify the blur convolution kernel, with the following format:
|
||||||
|
# example:
|
||||||
|
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||||
|
#
|
||||||
|
# blur-kern = ""
|
||||||
|
blur-kern = "3x3box";
|
||||||
|
|
||||||
|
|
||||||
|
# Exclude conditions for background blur.
|
||||||
|
# blur-background-exclude = []
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# General Settings #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Enable remote control via D-Bus. See the man page for more details.
|
||||||
|
# dbus = true
|
||||||
|
|
||||||
|
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||||
|
# daemon = false
|
||||||
|
|
||||||
|
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||||
|
# `xrender` is the default one.
|
||||||
|
#
|
||||||
|
# backend = "glx"
|
||||||
|
backend = "xrender";
|
||||||
|
|
||||||
|
# Enable/disable VSync.
|
||||||
|
# vsync = false
|
||||||
|
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
|
||||||
|
# child that has 'WM_STATE') and mark them as active.
|
||||||
|
#
|
||||||
|
# mark-wmwin-focused = false
|
||||||
|
mark-wmwin-focused = true;
|
||||||
|
|
||||||
|
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||||
|
# mark-ovredir-focused = false
|
||||||
|
mark-ovredir-focused = true;
|
||||||
|
|
||||||
|
# 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
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
|
||||||
|
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||||
|
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||||
|
#
|
||||||
|
# detect-client-opacity = false
|
||||||
|
detect-client-opacity = true;
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# when redirecting/unredirecting windows.
|
||||||
|
#
|
||||||
|
unredir-if-possible = true
|
||||||
|
|
||||||
|
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||||
|
# unredir-if-possible-delay = 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
|
||||||
|
# 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. This usually means windows from the same application
|
||||||
|
# will be considered focused or unfocused at the same time.
|
||||||
|
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||||
|
#
|
||||||
|
# detect-client-leader = false
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# 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.
|
||||||
|
# My tests show a 15% performance boost. Recommended.
|
||||||
|
#
|
||||||
|
glx-no-stencil = true;
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# This cause the whole screen to be redrawn every time, 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
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# with GLX backend for some users.
|
||||||
|
#
|
||||||
|
# xrender-sync-fence = false
|
||||||
|
|
||||||
|
# GLX backend: Use specified GLSL fragment shader for rendering window
|
||||||
|
# contents. Read the man page for a detailed explanation of the interface.
|
||||||
|
#
|
||||||
|
# window-shader-fg = "default"
|
||||||
|
|
||||||
|
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
|
||||||
|
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
|
||||||
|
#
|
||||||
|
# window-shader-fg-rule = [
|
||||||
|
# "my_shader.frag:window_type != 'dock'"
|
||||||
|
# ]
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# 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.
|
||||||
|
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||||
|
#
|
||||||
|
# max-brightness = 1.0
|
||||||
|
|
||||||
|
# Make transparent windows clip other windows like non-transparent windows do,
|
||||||
|
# instead of blending on top of them.
|
||||||
|
#
|
||||||
|
# transparent-clipping = false
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should never have transparent
|
||||||
|
# clipping applied. Useful for screenshot tools, where you need to be able to
|
||||||
|
# see through transparent parts of the window.
|
||||||
|
#
|
||||||
|
# transparent-clipping-exclude = []
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# using *--log-file*, since it can generate a huge stream of logs.
|
||||||
|
#
|
||||||
|
# log-level = "debug"
|
||||||
|
log-level = "warn";
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||||
|
#
|
||||||
|
# log-file = "/path/to/your/log/file"
|
||||||
|
|
||||||
|
# Show all X errors (for debugging)
|
||||||
|
# show-all-xerrors = false
|
||||||
|
|
||||||
|
# Write process ID to a file.
|
||||||
|
# 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",
|
||||||
|
# "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.
|
||||||
|
# (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
|
||||||
|
# transparent, and you want shadows in those areas.
|
||||||
|
#
|
||||||
|
# clip-shadow-above:::
|
||||||
|
# Controls whether shadows that would have been drawn above the window should
|
||||||
|
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||||
|
#
|
||||||
|
# redir-ignore:::
|
||||||
|
# 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,
|
||||||
|
# you can set this to `true`.
|
||||||
|
#
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||||
|
dock = { shadow = false; clip-shadow-above = true; }
|
||||||
|
dnd = { shadow = false; }
|
||||||
|
popup_menu = { opacity = 0.8; }
|
||||||
|
dropdown_menu = { opacity = 0.8; }
|
||||||
|
};
|
7
setup
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
echo "Setting up the stuff..."
|
echo "Setting up the stuff..."
|
||||||
|
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
|
||||||
if [[ "$(cat /etc/os-release)" == *"Ubuntu"* ]]
|
if [[ "$(cat /etc/os-release)" == *"Ubuntu"* ]]
|
||||||
then
|
then
|
||||||
echo "Updating Ubuntu"
|
echo "Updating Ubuntu"
|
||||||
|
@ -17,8 +20,8 @@ else
|
||||||
echo "Updating Arch"
|
echo "Updating Arch"
|
||||||
sudo pacman -Syyu
|
sudo pacman -Syyu
|
||||||
echo "Installing tools/utils"
|
echo "Installing tools/utils"
|
||||||
sudo pacman -S ripgrep fd neovim make stow tmux
|
sudo pacman -S ripgrep fd neovim make stow tmux awesome dmenu arandr autorandr volumeicon picom nitrogen network-manager-applet lxsession thunar lxappearance-gtk3 power-profiles-daemon thermald acpi arc-icon-theme playerctl bspwm sxhkd polybar xorg-xsetroot ttf-jetbrains-mono-nerd
|
||||||
sudo pacman -S ripgrep fd neovim make stow tmux dmenu arandr autorandr volumeicon picom nitrogen network-manager-applet lxsession thunar lxappearance-gtk3 power-profiles-daemon thermald acpi arc-icon-theme playerctl bspwm sxhkd polybar xorg-xsetroot ttf-jetbrains-mono-nerd
|
|
||||||
sudo systemctl enable --now power-profiles-daemon
|
sudo systemctl enable --now power-profiles-daemon
|
||||||
sudo thermald --systemd
|
sudo thermald --systemd
|
||||||
sudo power-profiles-daemon set performance
|
sudo power-profiles-daemon set performance
|
||||||
|
|