This commit is contained in:
wooshdude
2024-10-06 22:32:48 -07:00
82 changed files with 5205 additions and 2615 deletions
+29
View File
@@ -0,0 +1,29 @@
#!/bin/sh
run() {
if ! pgrep -f "$1" ;
then
"$@"&
fi
}
run "picom"
run "unclutter"
run "firefox"
run "copyq"
run "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
run "nm-applet"
run "batsignal"
run "redshift"
run "sunshine"
killall -q polybar
polybar left &
polybar right &
polybar middle &
polybar tray &
polybar xwindow &
pkill xidlehook
xidlehook --detect-sleep --not-when-audio --timer 300 'cool-retro-term --fullscreen -e sh ~/cmatrix.sh' '' --timer 600 'pkill cool-retro-term && systemctl suspend' ''
+269
View File
@@ -0,0 +1,269 @@
-------------------------------------------------
-- Calendar Widget for Awesome Window Manager
-- Shows the current month and supports scroll up/down to switch month
-- More details could be found here:
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/calendar-widget
-- @author Pavel Makhov
-- @copyright 2019 Pavel Makhov
-------------------------------------------------
local awful = require("awful")
local beautiful = require("beautiful")
local wibox = require("wibox")
local gears = require("gears")
local naughty = require("naughty")
local calendar_widget = {}
local function worker(user_args)
local calendar_themes = {
nord = {
bg = '#2E3440',
fg = '#D8DEE9',
focus_date_bg = '#88C0D0',
focus_date_fg = '#000000',
weekend_day_bg = '#3B4252',
weekday_fg = '#88C0D0',
header_fg = '#E5E9F0',
border = '#4C566A'
},
outrun = {
bg = '#0d0221',
fg = '#D8DEE9',
focus_date_bg = '#650d89',
focus_date_fg = '#2de6e2',
weekend_day_bg = '#261447',
weekday_fg = '#2de6e2',
header_fg = '#f6019d',
border = '#261447'
},
dark = {
bg = '#000000',
fg = '#ffffff',
focus_date_bg = '#ffffff',
focus_date_fg = '#000000',
weekend_day_bg = '#444444',
weekday_fg = '#ffffff',
header_fg = '#ffffff',
border = '#333333'
},
light = {
bg = '#ffffff',
fg = '#000000',
focus_date_bg = '#000000',
focus_date_fg = '#ffffff',
weekend_day_bg = '#AAAAAA',
weekday_fg = '#000000',
header_fg = '#000000',
border = '#CCCCCC'
},
monokai = {
bg = '#272822',
fg = '#F8F8F2',
focus_date_bg = '#AE81FF',
focus_date_fg = '#ffffff',
weekend_day_bg = '#75715E',
weekday_fg = '#FD971F',
header_fg = '#F92672',
border = '#75715E'
},
catppuccin = {
bg = '#181825',
fg = '#F8F8F2',
focus_date_bg = '#b4befe',
focus_date_fg = '#ffffff',
weekend_day_bg = '#1e1e2e',
weekday_fg = '#f2cdcd',
header_fg = '#cba6f7',
border = '#181825'
},
naughty = {
bg = beautiful.notification_bg or beautiful.bg,
fg = beautiful.notification_fg or beautiful.fg,
focus_date_bg = beautiful.notification_fg or beautiful.fg,
focus_date_fg = beautiful.notification_bg or beautiful.bg,
weekend_day_bg = beautiful.bg_focus,
weekday_fg = beautiful.fg,
header_fg = beautiful.fg,
border = beautiful.border_normal
}
}
local args = user_args or {}
if args.theme ~= nil and calendar_themes[args.theme] == nil then
naughty.notify({
preset = naughty.config.presets.critical,
title = 'Calendar Widget',
text = 'Theme "' .. args.theme .. '" not found, fallback to default'})
args.theme = 'naughty'
end
local theme = args.theme or 'naughty'
local placement = args.placement or 'top'
local radius = args.radius or 8
local next_month_button = args.next_month_button or 4
local previous_month_button = args.previous_month_button or 5
local start_sunday = args.start_sunday or false
local styles = {}
local function rounded_shape(size)
return function(cr, width, height)
gears.shape.rounded_rect(cr, width, height, size)
end
end
styles.month = {
padding = 4,
bg_color = calendar_themes[theme].bg,
border_width = 0,
}
styles.normal = {
markup = function(t) return t end,
shape = rounded_shape(4)
}
styles.focus = {
fg_color = calendar_themes[theme].focus_date_fg,
bg_color = calendar_themes[theme].focus_date_bg,
markup = function(t) return '<b>' .. t .. '</b>' end,
shape = rounded_shape(4)
}
styles.header = {
fg_color = calendar_themes[theme].header_fg,
bg_color = calendar_themes[theme].bg,
markup = function(t) return '<b>' .. t .. '</b>' end
}
styles.weekday = {
fg_color = calendar_themes[theme].weekday_fg,
bg_color = calendar_themes[theme].bg,
markup = function(t) return '<b>' .. t .. '</b>' end,
}
local function decorate_cell(widget, flag, date)
if flag == 'monthheader' and not styles.monthheader then
flag = 'header'
end
-- highlight only today's day
if flag == 'focus' then
local today = os.date('*t')
if not (today.month == date.month and today.year == date.year) then
flag = 'normal'
end
end
local props = styles[flag] or {}
if props.markup and widget.get_text and widget.set_markup then
widget:set_markup(props.markup(widget:get_text()))
end
-- Change bg color for weekends
local d = { year = date.year, month = (date.month or 1), day = (date.day or 1) }
local weekday = tonumber(os.date('%w', os.time(d)))
local default_bg = (weekday == 0 or weekday == 6)
and calendar_themes[theme].weekend_day_bg
or calendar_themes[theme].bg
local ret = wibox.widget {
{
{
widget,
halign = 'center',
widget = wibox.container.place
},
margins = (props.padding or 2) + (props.border_width or 0),
widget = wibox.container.margin
},
shape = props.shape,
shape_border_color = props.border_color or '#000000',
shape_border_width = props.border_width or 0,
fg = props.fg_color or calendar_themes[theme].fg,
bg = props.bg_color or default_bg,
widget = wibox.container.background
}
return ret
end
local cal = wibox.widget {
date = os.date('*t'),
font = beautiful.get_font(),
fn_embed = decorate_cell,
long_weekdays = true,
start_sunday = start_sunday,
widget = wibox.widget.calendar.month
}
local popup = awful.popup {
ontop = true,
visible = false,
shape = rounded_shape(radius),
offset = { y = 5 },
border_width = 1,
border_color = calendar_themes[theme].border,
widget = cal
}
popup:buttons(
awful.util.table.join(
awful.button({}, next_month_button, function()
local a = cal:get_date()
a.month = a.month + 1
cal:set_date(nil)
cal:set_date(a)
popup:set_widget(cal)
end),
awful.button({}, previous_month_button, function()
local a = cal:get_date()
a.month = a.month - 1
cal:set_date(nil)
cal:set_date(a)
popup:set_widget(cal)
end)
)
)
function calendar_widget.toggle()
if popup.visible then
-- to faster render the calendar refresh it and just hide
cal:set_date(nil) -- the new date is not set without removing the old one
cal:set_date(os.date('*t'))
popup:set_widget(nil) -- just in case
popup:set_widget(cal)
popup.visible = not popup.visible
else
if placement == 'top' then
awful.placement.top(popup, { margins = { top = 50 }, parent = awful.screen.focused() })
elseif placement == 'top_right' then
awful.placement.top_right(popup, { margins = { top = 30, right = 10}, parent = awful.screen.focused() })
elseif placement == 'top_left' then
awful.placement.top_left(popup, { margins = { top = 30, left = 10}, parent = awful.screen.focused() })
elseif placement == 'bottom_right' then
awful.placement.bottom_right(popup, { margins = { bottom = 30, right = 10},
parent = awful.screen.focused() })
elseif placement == 'bottom_left' then
awful.placement.bottom_left(popup, { margins = { bottom = 30, left = 10},
parent = awful.screen.focused() })
else
awful.placement.top(popup, { margins = { top = 50 }, parent = awful.screen.focused() })
end
popup.visible = true
end
end
return calendar_widget
end
return setmetatable(calendar_widget, { __call = function(_, ...)
return worker(...)
end })
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
killall -q polybar
+688
View File
@@ -0,0 +1,688 @@
-- awesome_mode: api-level=4:screen=on
-- 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")
-- Declarative object management
local ruled = require("ruled")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
local dpi = beautiful.xresources.apply_dpi
-- {{{ 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)
naughty.connect_signal("request::display_error", function(message, startup)
naughty.notification({
urgency = "critical",
title = "Oops, an error happened" .. (startup and " during startup!" or "!"),
message = message,
})
end)
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init("~/.config/awesome/theme-def.lua")
-- This is used later as the default terminal and editor to run.
terminal = "wezterm"
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"
-- }}}
-- {{{ Menu
polybar = {
{
"Kill bar",
function()
awful.spawn.with_shell("sh ~/.config/awesome/kpolybar.sh")
end,
},
{
"Spawn bar",
function()
awful.spawn.with_shell("sh ~/.config/awesome/spolybar.sh")
end,
},
}
mymainmenu = awful.menu({
items = {
{
"Apps",
function()
awful.spawn.with_shell("sleep 0.5s && sh ~/.config/rofi/launchers/type-6/launcher.sh")
end,
},
{
"Nemo",
function()
awful.spawn.with_shell("nemo")
end,
},
{
"Scrshot",
function()
awful.spawn.with_shell("sleep 0.5s && flameshot full")
end,
},
{ "Terminal", terminal },
{ "Polybar", polybar, beautiful.menu_submenu_icon },
{
"Xkill",
function()
awful.spawn.with_shell("sleep 0.5s && xkill")
end,
},
{ "Restart", awesome.restart },
{
"Quit",
function()
awesome.quit()
end,
},
},
})
-- {{{ Tag layout
-- Table of layouts to cover with awful.layout.inc, order matters.
tag.connect_signal("request::default_layouts", function()
awful.layout.append_default_layouts({
awful.layout.suit.spiral.dwindle,
awful.layout.suit.floating,
})
end)
-- }}}
-- {{{ Wallpaper
screen.connect_signal("request::wallpaper", function(s)
awful.wallpaper({
screen = s,
widget = {
{
image = beautiful.wallpaper,
upscale = true,
downscale = true,
widget = wibox.widget.imagebox,
},
valign = "center",
halign = "center",
tiled = false,
widget = wibox.container.tile,
},
})
end)
-- }}}
-- {{{ Tags
screen.connect_signal("request::desktop_decoration", function(s)
-- Each screen has its own tag table.
local names = { "1", "2", "3", "4", "5" }
local l = awful.layout.suit
local layouts = { l.spiral.dwindle, l.spiral.dwindle, l.spiral.dwindle, l.spiral.dwindle, l.floating }
awful.tag(names, s, layouts)
end)
-- }}}
-- {{{ Mouse bindings
awful.mouse.append_global_mousebindings({
awful.button({}, 3, function()
mymainmenu:toggle()
end),
awful.button({}, 4, awful.tag.viewprev),
awful.button({}, 5, awful.tag.viewnext),
})
-- }}}
-- {{{ Calendar widget
local calendar_widget = require("calendar")
local cw = calendar_widget({
theme = "catppuccin",
placement = "top center",
start_sunday = false,
radius = 8,
})
-- }}}
-- {{{ Key bindings
-- General Awesome keys
awful.keyboard.append_global_keybindings({
awful.key({ modkey }, "s", hotkeys_popup.show_help, { description = "show help", group = "awesome" }),
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 }, "Return", function()
awful.spawn(terminal)
end, { description = "open a terminal", group = "launcher" }),
awful.key({}, "XF86AudioRaiseVolume", function()
awful.spawn.with_shell("pactl set-sink-volume @DEFAULT_SINK@ +5%")
end),
awful.key({}, "XF86AudioMute", function()
awful.spawn.with_shell("pactl set-sink-mute @DEFAULT_SINK@ toggle")
end),
awful.key({}, "F6", function()
awful.util.spawn("playerctl play-pause", false)
end),
awful.key({}, "F8", function()
awful.util.spawn("playerctl next", false)
end),
awful.key({}, "F7", function()
awful.util.spawn("playerctl previous", false)
end),
awful.key({}, "XF86AudioLowerVolume", function()
awful.spawn.with_shell("pactl set-sink-volume @DEFAULT_SINK@ -5%")
end),
awful.key({}, "XF86MonBrightnessDown", function()
awful.util.spawn("brightnessctl s 10%-")
end),
awful.key({}, "XF86MonBrightnessUp", function()
awful.util.spawn("brightnessctl s +10%")
end),
})
-- Tags related keybindings
awful.keyboard.append_global_keybindings({
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" }),
})
-- Focus related keybindings
awful.keyboard.append_global_keybindings({
awful.key({ "Mod1" }, "Tab", function()
awful.client.focus.byidx(1)
end, { description = "focus next 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, "Control" }, "n", function()
local c = awful.client.restore()
-- Focus restored client
if c then
c:activate({ raise = true, context = "key.unminimize" })
end
end, { description = "restore minimized", group = "client" }),
})
-- Layout related keybindings
awful.keyboard.append_global_keybindings({
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 }, "u", awful.client.urgent.jumpto, { description = "jump to urgent client", group = "client" }),
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, "Control" }, "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" }),
-- Prompt
awful.key({ modkey }, "a", function()
awful.spawn.with_shell("sh ~/.config/rofi/launchers/type-6/launcher.sh")
end, { description = "run rofi apps", group = "launcher" }),
awful.key({ modkey }, "r", function()
awful.spawn.with_shell("sh ~/.config/rofi/launchers/type-6/launcher2.sh")
end, { description = "run rofi programs", group = "launcher" }),
awful.key({ modkey }, "w", function()
awful.spawn.with_shell("sh ~/.config/rofi/launchers/type-6/launcher1.sh")
end, { description = "run rofi windows", group = "launcher" }),
awful.key({ modkey }, "e", function()
awful.spawn.with_shell("nemo")
end, { description = "run nemo", group = "launcher" }),
awful.key({ modkey }, "`", function()
awful.spawn.with_shell("sh ~/.config/rofi/powermenu/type-6/powermenu.sh")
end, { description = "power options", group = "awesome" }),
awful.key({ modkey }, "c", function()
cw.toggle()
end, { description = "calendar popup", group = "launcher" }),
awful.key({}, "F4", function()
awful.spawn.with_shell("flameshot gui")
end, { description = "run flameshot", group = "launcher" }),
awful.key({ modkey }, "p", function()
awful.spawn.with_shell("scrcpy -S --power-off-on-close --window-x 10")
end, { description = "run scrcpy", group = "launcher" }),
awful.key({ modkey }, "z", function()
awful.spawn.with_shell("sh ~/.config/awesome/kpolybar.sh")
end, { description = "kill polybar", group = "launcher" }),
awful.key({ modkey }, "x", function()
awful.spawn.with_shell("sh ~/.config/awesome/spolybar.sh")
end, { description = "run polybar", group = "launcher" }),
})
awful.keyboard.append_global_keybindings({
awful.key({
modifiers = { modkey },
keygroup = "numrow",
description = "only view tag",
group = "tag",
on_press = function(index)
local screen = awful.screen.focused()
local tag = screen.tags[index]
if tag then
tag:view_only()
end
end,
}),
awful.key({
modifiers = { modkey, "Shift" },
keygroup = "numrow",
description = "move focused client to tag",
group = "tag",
on_press = function(index)
if client.focus then
local tag = client.focus.screen.tags[index]
if tag then
client.focus:move_to_tag(tag)
end
end
end,
}),
})
client.connect_signal("request::default_mousebindings", function()
awful.mouse.append_client_mousebindings({
awful.button({}, 1, function(c)
c:activate({ context = "mouse_click" })
end),
awful.button({ modkey }, 1, function(c)
c:activate({ context = "mouse_click", action = "mouse_move" })
end),
awful.button({ modkey }, 3, function(c)
c:activate({ context = "mouse_click", action = "mouse_resize" })
end),
})
end)
client.connect_signal("request::default_keybindings", function()
awful.keyboard.append_client_keybindings({
awful.key({ modkey }, "f", function(c)
c.fullscreen = not c.fullscreen
c:raise()
end, { description = "toggle fullscreen", group = "client" }),
awful.key({ modkey }, "q", function(c)
c:kill()
end, { description = "close", group = "client" }),
awful.key({ modkey }, "space", function(c)
awful.client.floating.toggle(c)
c.width = 1000
c.height = 550
awful.placement.centered(c)
end, { 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" }),
})
end)
-- }}}
-- {{{ Rules
-- Rules to apply to new clients.
ruled.client.connect_signal("request::rules", function()
-- All clients will match this rule.
ruled.client.append_rule({
id = "global",
rule = {},
properties = {
focus = awful.client.focus.filter,
raise = true,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap + awful.placement.no_offscreen,
},
})
-- Floating clients.
ruled.client.append_rule({
id = "floating",
rule_any = {
instance = { "copyq", "pinentry" },
class = {
"Arandr",
"Blueman-manager",
"Gpick",
"Kruler",
"Sxiv",
"Tor Browser",
"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
ruled.client.append_rule({
id = "titlebars",
rule_any = { type = { "normal", "dialog" } },
properties = { titlebars_enabled = false },
})
ruled.client.append_rule({
rule_any = {
class = { "firefox" },
},
properties = { screen = 1 },
})
ruled.client.append_rule({
rule = { instance = "chromium" },
properties = { screen = 1, tag = "4", floating = true },
})
ruled.client.append_rule({
rule = { instance = "Steam" },
properties = { screen = 1, tag = "4", floating = true },
})
ruled.client.append_rule({
rule = { instance = "discord" },
properties = { screen = 1, tag = "2" },
})
ruled.client.append_rule({
rule = { instance = "discord-screenaudio" },
properties = { screen = 1, tag = "2" },
})
ruled.client.append_rule({
rule_any = {
instance = { "youtube music" },
},
properties = { screen = 1, tag = "3" },
})
ruled.client.append_rule({
rule_any = {
class = { "thunderbird" },
},
properties = { screen = 1, tag = "3" },
})
ruled.client.append_rule({
rule = { instance = "vscodium" },
properties = { screen = 1, tag = "4" },
})
ruled.client.append_rule({
rule = { instance = "dolphin-emu" },
properties = { floating = true },
})
ruled.client.append_rule({
rule = { instance = "Windscribe" },
properties = { floating = true },
})
ruled.client.append_rule({
rule = { instance = "feh" },
properties = { floating = true },
})
ruled.client.append_rule({
rule = { instance = "nm-connection-editor" },
properties = { floating = true },
})
ruled.client.append_rule({
rule = { instance = "scrcpy" },
properties = { floating = true },
})
ruled.client.append_rule({
rule = { instance = "polybar" },
properties = { border_width = 0 },
})
end)
-- }}}
-- {{{ Notifications
naughty.config.defaults.ontop = true
naughty.config.defaults.screen = awful.screen.focused()
naughty.config.defaults.timeout = 4
naughty.config.defaults.title = "Notification"
naughty.config.defaults.position = "top_right"
naughty.config.defaults.border_width = 0
beautiful.notification_spacing = 16
local function create_notif(n)
local icon_visibility
if n.icon == nil then
icon_visibility = false
else
icon_visibility = true
end
-- Action widget
local action_widget = {
{
{
id = "text_role",
align = "center",
font = "Product Sans 10",
widget = wibox.widget.textbox,
},
margins = { left = dpi(3), right = dpi(3) },
widget = wibox.container.margin,
},
widget = wibox.container.background,
}
-- Apply action widget ^
local actions = wibox.widget({
notification = n,
base_layout = wibox.widget({
spacing = dpi(20),
layout = wibox.layout.flex.horizontal,
}),
widget_template = action_widget,
widget = naughty.list.actions,
})
local function space_h(length, circumstances)
return wibox.widget({
forced_width = length,
visible = circumstances,
layout = wibox.layout.fixed.horizontal,
})
end
-- Make other widgets
local title = wibox.widget.textbox()
title.font = "Product Sans Bold 12"
title.align = "center"
title.markup = n.title
local message = wibox.widget.textbox()
message.font = "Product Sans 12"
message.align = "left"
message.markup = n.message
local icon = wibox.widget({
nil,
{
{
image = n.icon,
visible = icon_visibility,
widget = wibox.widget.imagebox,
},
strategy = "max",
width = dpi(115),
height = dpi(115),
widget = wibox.container.constraint,
},
expand = "none",
layout = wibox.layout.align.vertical,
})
local container = wibox.widget({
{
title,
{
icon,
space_h(dpi(25), icon_visibility),
message,
layout = wibox.layout.fixed.horizontal,
},
actions,
spacing = dpi(20),
layout = wibox.layout.fixed.vertical,
},
margins = dpi(15),
widget = wibox.container.margin,
})
naughty.layout.box({
notification = n,
type = "notification",
bg = beautiful.bg,
border_width = 0,
shape = function(cr, w, h)
gears.shape.rounded_rect(cr, w, h, 5)
end,
widget_template = {
{
{
{
widget = container,
},
strategy = "max",
width = dpi(300),
height = dpi(200),
widget = wibox.container.constraint,
},
strategy = "min",
width = dpi(300),
height = dpi(130),
widget = wibox.container.constraint,
},
bg = beautiful.bg,
widget = wibox.container.background,
},
})
end
naughty.connect_signal("request::display", function(n)
create_notif(n)
end)
ruled.notification.connect_signal("request::rules", function()
ruled.notification.append_rule({
rule = {},
properties = {
screen = awful.screen.focused(),
implicit_timeout = 4,
},
})
end)
-- }}}
-- Autostart
awful.spawn.with_shell("sh ~/.config/awesome/autorun.sh")
awful.spawn.with_shell("pkill http-server")
awful.spawn.with_shell("http-server ~/.config/chevron/dist")
awful.spawn.with_shell("sleep 20s && conky -c ~/.config/conky/mocha.conf")
awful.spawn.with_shell("kdeconnect-indicator")
awful.spawn.with_shell("feh --no-fehbg --bg-fill ~/Downloads/alena-aenami-stardust-1k.jpg")
-- Garbage collection
collectgarbage("setpause", 110)
collectgarbage("setstepmul", 1000)
gears.timer({
timeout = 5,
autostart = true,
call_now = true,
callback = function()
collectgarbage("collect")
end,
})
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
polybar left &
polybar right &
polybar middle &
polybar tray &
polybar xwindow &
+56
View File
@@ -0,0 +1,56 @@
---------------------------
-- Default awesome theme --
---------------------------
local theme_assets = require("beautiful.theme_assets")
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
local gfs = require("gears.filesystem")
local themes_path = gfs.get_themes_dir()
local theme = {}
theme.font = "Product Sans 11"
theme.bg_normal = "#181825"
theme.bg_focus = "#1e1e2e"
theme.bg_urgent = "#eba0ac"
theme.bg_minimize = "#313244"
theme.bg_systray = theme.bg_normal
theme.fg_normal = "#cdd6f4"
theme.fg_focus = "#737994"
theme.fg_urgent = "#ea999c"
theme.fg_minimize = "#99d1db"
theme.useless_gap = dpi(5)
theme.border_normal = "#1e1e2e"
theme.border_focus = "#1e1e2e"
theme.border_marked = "#1e1e2e"
theme.border_radius = dpi(8)
theme.border_width = dpi(0)
theme.menu_height = 30
theme.menu_width = 120
-- 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
)
--Signals
client.connect_signal("focus", function(c)
c.border_color = theme.border_focus end)
client.connect_signal("unfocus", function(c)
c.border_color = theme.border_normal end)
theme.icon_theme = nil
return theme
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
+193
View File
@@ -0,0 +1,193 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
monitor = DP-1, 1920x1080@144, auto, auto
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = waybar
exec-once = hyprpaper
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
$terminal = kitty
$fileManager = nautilus
$menu = sh /home/pjark/.config/wofi/run.sh
# Some default env vars.
env = XCURSOR_THEME,oreo_red
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
env = WLR_NO_HARDWARE_CURSORS,1
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = -0.1 # -1.0 to 1.0, 0 means no modification.
accel_profile = flat
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 6
gaps_out = 14
border_size = 4
col.active_border = rgba(e78284ff) rgba(85c1dcff) rgba(ea999cff) rgba(ca9ee6ff) 45deg
col.inactive_border = rgba(1e1e2eff)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, space, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, R, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
+3
View File
@@ -0,0 +1,3 @@
preload = /home/pjark/.wallpapers/catppuccin_waves.png
wallpaper = , /home/pjark/.wallpapers/catppuccin_waves.png
splash = false
+90
View File
@@ -0,0 +1,90 @@
# vim:ft=kitty
shell zsh
# The basic colors
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
# Cursor colors
cursor #f5e0dc
cursor_text_color #1e1e2e
# URL underline color when hovering with mouse
url_color #f5e0dc
# Kitty window border colors
active_border_color #b4befe
inactive_border_color #6c7086
bell_border_color #f9e2af
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111b
active_tab_background #cba6f7
inactive_tab_foreground #cdd6f4
inactive_tab_background #181825
tab_bar_background #11111b
# Colors for marks (marked text in the terminal)
mark1_foreground #1e1e2e
mark1_background #b4befe
mark2_foreground #1e1e2e
mark2_background #cba6f7
mark3_foreground #1e1e2e
mark3_background #74c7ec
# The 16 terminal colors
# black
color0 #45475a
color8 #585b70
# red
color1 #f38ba8
color9 #f38ba8
# green
color2 #a6e3a1
color10 #a6e3a1
# yellow
color3 #f9e2af
color11 #f9e2af
# blue
color4 #89b4fa
color12 #89b4fa
# magenta
color5 #f5c2e7
color13 #f5c2e7
# cyan
color6 #94e2d5
color14 #94e2d5
# white
color7 #bac2de
color15 #a6adc8
# fonts
font_family JetBrainsMono Nerd Font Mono
bold_font auto
bold_italic_font auto
italic_font auto
# tab bar
tab_bar_edge bottom
# tabs
map alt+c new_tab
map alt+x close_tab
map alt+n next_tab
map alt+b previous_tab
+284
View File
@@ -0,0 +1,284 @@
[colors]
disabled = #707880
Rosewater = #f5e0dc
Flamingo = #f2cdcd
Pink = #f5c2e7
Mauve = #cba6f7
Red = #f38ba8
Maroon = #eba0ac
Peach = #fab387
Yellow = #f9e2af
Green = #a6e3a1
Teal = #94e2d5
Sky = #89dceb
Sapphire = #74c7ec
Blue = #89b4fa
Lavender = #b4befe
Base = #1e1e2e
Mantle = #181825
[bar/left]
width = 16%
offset-x = 1%
offset-y = 1%
height = 22pt
fixed-center = true
background = ${colors.Mantle}
foreground = ${colors.Lavender}
line-size = 1pt
font-0 = "RobotoMono Nerd Font:weight=bold:size=9;2"
font-1 = "RobotoMono Nerd Font:size=10;3"
font-2 = "RobotoMono Nerd Font:size=11;3"
font-3 = "NotoEmoji:scale=11;3"
font-4 = "Noto Sans CJK JP:size=10;3"
modules-left = space space power xworkspaces sep space weather
enable-ipc = true
wm-restack = generic
[bar/middle]
width = 14%
offset-x = 43%
offset-y = 1%
height = 22pt
fixed-center = true
background = ${colors.Mantle}
foreground = ${colors.Lavender}
line-size = 1pt
font-0 = "RobotoMono Nerd Font:weight=bold:size=9;2"
font-1 = "RobotoMono Nerd Font:size=10;3"
font-2 = "RobotoMono Nerd Font:size=11;3"
modules-center = day space sep space date space sep space time
enable-ipc = true
wm-restack = generic
[bar/right]
width = 8%
offset-x = 91%
offset-y = 1%
height = 22pt
fixed-center = true
background = ${colors.Mantle}
foreground = ${colors.Lavender}
line-size = 1pt
font-0 = "RobotoMono Nerd Font:weight=bold:size=9;2"
font-1 = "RobotoMono Nerd Font:size=10;3"
font-2 = "RobotoMono Nerd Font:size=11;3"
modules-center = space pulseaudio space sep space backlight space
enable-ipc = true
wm-restack = generic
[bar/tray]
width = 9%
offset-x = 81%
offset-y = 1%
height = 22pt
fixed-center = true
background = ${colors.Mantle}
foreground = ${colors.Lavender}
line-size = 1pt
font-0 = "RobotoMono Nerd Font:size=10;3"
modules-center = tray
; tray-position = center
; tray-detached = false
; tray-maxsize = 16
enable-ipc = true
wm-restack = generic
[bar/xwindow]
width = 19%
offset-x = 18%
offset-y = 1%
height = 22pt
fixed-center = true
background = ${colors.Mantle}
foreground = ${colors.Lavender}
line-size = 1pt
font-0 = "RobotoMono Nerd Font:weight=bold:size=10;3"
font-1 = "Noto Sans CJK JP:style=Regular;size=10;1"
modules-center = space xwindow space
enable-ipc = true
wm-restack = generic
[module/xworkspaces]
type = internal/xworkspaces
label-active =
label-active-padding = 2
label-active-foreground = ${colors.Lavender}
label-active-font = 2
label-occupied =
label-occupied-padding = 2
label-occupied-font = 2
label-empty =
label-empty-foreground = ${colors.disabled}
label-empty-padding = 2
label-empty-font = 2
[module/xwindow]
type = internal/xwindow
format = <label>
format-background = ${colors.Mantle}
format-foreground = ${colors.Lavender}
format-padding = 2
label = %title%
label-maxlen = 40
label-empty = ~/
label-empty-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "墳 "
format-volume-prefix-foreground = ${colors.Rosewater}
format-volume = <label-volume>
format-volume-prefix-font = 3
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = disconnected
format-connected-foreground = ${colors.Lavender}
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected-font = 3
label-connected =
label-connected-foreground = ${colors.Rosewater}
[module/day]
type = internal/date
interval = 1
date = %A
label = %date%
label-foreground = ${colors.Lavender}
[module/date]
type = internal/date
interval = 1
date = %d-%m-%Y
label = %date%
label-foreground = ${colors.Lavender}
[module/time]
type = internal/date
interval = 1
date = %H:%M:%S
label = %date%
label-foreground = ${colors.Lavender}
[module/battery]
type = internal/battery
poll-interval = 5
full-at = 99
format-full-prefix = " "
format-charging-prefix = " "
format-discharging-prefix = " "
format-full-prefix-foreground = ${colors.Rosewater}
format-charging-prefix-foreground = ${colors.Rosewater}
format-discharging-prefix-foreground = ${colors.Red}
label-charging = %percentage%%
label-discharging = %percentage%%
label-full = %percentage%%
[module/backlight]
type = internal/backlight
; Use the following command to list available cards:
; $ ls -1 /sys/class/backlight/
card = amdgpu_bl1
use-actual-brightness = true
format-prefix = "盛 "
format-prefix-foreground = ${colors.Rosewater}
format-prefix-font = 3
enable-scroll = true
[module/tray]
type = internal/tray
format-margin = 8px
; tray-spacing = 8px
tray-padding = 4px
[module/power]
type = custom/text
content =
content-font = 3
content-foreground = ${colors.Red}
content-margin = 1
click-left = "sh ~/.config/rofi/powermenu/type-6/powermenu.sh"
[module/weather]
type = custom/script
exec = "sh ~/.config/polybar/weather.sh"
interval = 700
; decor
[module/sep]
type = custom/text
content = "|"
content-foreground = ${colors.disabled}
[module/space]
type = custom/text
content = " "
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini
+99
View File
@@ -0,0 +1,99 @@
import json
import requests
def wc_extract(wc):
wc = str(wc)
if wc in ("0", "1"):
if day == "1":
return ("☀️")
else:
return("🌙")
elif wc == "2":
if day == "1":
return ("")
else:
return("☁️")
elif wc in ("3", "45", "48"):
return ("☁️")
elif wc in ("51", "53", "55", "61", "63", "65", "80", "81", "82"):
return ("🌧️")
elif wc in ("56", "57", "66", "67", "85", "86"):
return ("🌨️")
elif wc in ("71", "73", "75", "77"):
return ("❄️")
elif wc in ("95", "96", "99"):
return ("⛈️")
def json_extract(obj, path):
'''
Extracts an element from a nested dictionary or
a list of nested dictionaries along a specified path.
If the input is a dictionary, a list is returned.
If the input is a list of dictionary, a list of lists is returned.
obj - list or dict - input dictionary or list of dictionaries
path - list - list of strings that form the path to the desired element
'''
def extract(obj, path, ind, arr):
'''
Extracts an element from a nested dictionary
along a specified path and returns a list.
obj - dict - input dictionary
path - list - list of strings that form the JSON path
ind - int - starting index
arr - list - output list
'''
key = path[ind]
if ind + 1 < len(path):
if isinstance(obj, dict):
if key in obj.keys():
extract(obj.get(key), path, ind + 1, arr)
else:
arr.append(None)
elif isinstance(obj, list):
if not obj:
arr.append(None)
else:
for item in obj:
extract(item, path, ind, arr)
else:
arr.append(None)
if ind + 1 == len(path):
if isinstance(obj, list):
if not obj:
arr.append(None)
else:
for item in obj:
arr.append(item.get(key, None))
elif isinstance(obj, dict):
arr.append(obj.get(key, None))
else:
arr.append(None)
return arr
if isinstance(obj, dict):
return extract(obj, path, 0, [])
elif isinstance(obj, list):
outer_arr = []
for item in obj:
outer_arr.append(extract(item, path, 0, []))
return outer_arr
latitude = 26.50
longitude = 80.24
wurl = "https://api.open-meteo.com/v1/forecast?latitude=" + str(latitude) + "&longitude=" + str(longitude) + "&hourly=temperature_2m,is_day&current_weather=true&timezone=auto"
wjson = requests.get(wurl).content
wjson = json.loads(wjson)
tmp = str(json_extract(wjson, ["current_weather", "temperature"])[0])
day = str(json_extract(wjson, ["current_weather", "is_day"])[0])
wcode = wc_extract(str(json_extract(wjson, ["current_weather", "weathercode"])[0]))
temp = ""
for i in tmp:
if i == ".":
break
else:
temp += i
print(wcode, temp+"°C")
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
sleep 5
if 2>/dev/null 1>&2 ping -c 1 www.archlinux.org; then
python3 ~/.config/polybar/weather.py
else
echo '\_(ツ)_/'
fi
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #222D32FF;
background-alt: #29353BFF;
foreground: #B8C2C6FF;
selected: #00BCD4FF;
active: #21FF90FF;
urgent: #FF4B60FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #2F343FFF;
background-alt: #383C4AFF;
foreground: #BAC5D0FF;
selected: #5294E2FF;
active: #98C379FF;
urgent: #E06B74FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #000000FF;
background-alt: #101010FF;
foreground: #FFFFFFFF;
selected: #62AEEFFF;
active: #98C379FF;
urgent: #E06B74FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #1E1D2FFF;
background-alt: #282839FF;
foreground: #D9E0EEFF;
selected: #7AA2F7FF;
active: #ABE9B3FF;
urgent: #F28FADFF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #000B1EFF;
background-alt: #0A1528FF;
foreground: #0ABDC6FF;
selected: #0ABDC6FF;
active: #00FF00FF;
urgent: #FF0000FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #1E1F29FF;
background-alt: #282A36FF;
foreground: #FFFFFFFF;
selected: #BD93F9FF;
active: #50FA7BFF;
urgent: #FF5555FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #323D43FF;
background-alt: #3C474DFF;
foreground: #DAD1BEFF;
selected: #7FBBB3FF;
active: #A7C080FF;
urgent: #E67E80FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #282828FF;
background-alt: #353535FF;
foreground: #EBDBB2FF;
selected: #83A598FF;
active: #B8BB26FF;
urgent: #FB4934FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #1D1F28FF;
background-alt: #282A36FF;
foreground: #FDFDFDFF;
selected: #79E6F3FF;
active: #5ADECDFF;
urgent: #F37F97FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #021B21FF;
background-alt: #0C252BFF;
foreground: #F2F1B9FF;
selected: #44B5B1FF;
active: #7CBF9EFF;
urgent: #C2454EFF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #2E3440FF;
background-alt: #383E4AFF;
foreground: #E5E9F0FF;
selected: #81A1C1FF;
active: #A3BE8CFF;
urgent: #BF616AFF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #1E2127FF;
background-alt: #282B31FF;
foreground: #FFFFFFFF;
selected: #61AFEFFF;
active: #98C379FF;
urgent: #E06C75FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #F1F1F1FF;
background-alt: #E0E0E0FF;
foreground: #252525FF;
selected: #008EC4FF;
active: #10A778FF;
urgent: #C30771FF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #002B36FF;
background-alt: #073642FF;
foreground: #EEE8D5FF;
selected: #268BD2FF;
active: #859900FF;
urgent: #DC322FFF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Levi Lacoss (fishyfishfish55)
* Github : @fishyfishfish55
*
* Colors
**/
* {
background: #15161EFF;
background-alt: #1A1B26FF;
foreground: #C0CAF5FF;
selected: #33467CFF;
active: #414868FF;
urgent: #F7768EFF;
}
+16
View File
@@ -0,0 +1,16 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #F5E7DEFF;
background-alt: #EBDCD2FF;
foreground: #34302DFF;
selected: #D97742FF;
active: #BF8F60FF;
urgent: #B23636FF;
}
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 KiB

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
## Author : Aditya Shakya (adi1090x)
## Github : @adi1090x
#
## Rofi : Launcher (Modi Drun, Run, File Browser, Window)
#
## Available Styles
#
## style-1 style-2 style-3 style-4 style-5
## style-6 style-7 style-8 style-9 style-10
dir="$HOME/.config/rofi/launchers/type-6"
theme='style-10'
## Run
rofi \
-show drun \
-theme ${dir}/${theme}.rasi
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
dir="$HOME/.config/rofi/launchers/type-6"
theme='style-10'
## Run
rofi \
-show window \
-theme ${dir}/${theme}.rasi
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
dir="$HOME/.config/rofi/launchers/type-6"
theme='style-10'
## Run
rofi \
-show run \
-theme ${dir}/${theme}.rasi
@@ -0,0 +1,208 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Rofi Theme File
* Rofi Version: 1.7.3
**/
/*****----- Configuration -----*****/
configuration {
modi: "drun,run,window";
show-icons: true;
display-drun: "Apps";
display-run: "Run";
display-window: "Window";
drun-display-format: "{name}";
window-format: "{w} · {c} · {t}";
}
/*****----- Global Properties -----*****/
* {
font: "ProductSans 11";
background: #181825;
background-alt: #181825;
foreground: #FFFFFF;
selected: #292c3c;
active: #292c3c;
urgent: #292c3c;
}
/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 1000px;
x-offset: 0px;
y-offset: 0px;
/* properties for all widgets */
enabled: true;
border-radius: 15px;
cursor: "default";
background-color: @background;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 0px;
background-color: transparent;
orientation: horizontal;
children: [ "imagebox", "listbox" ];
}
imagebox {
padding: 20px;
background-color: transparent;
background-image: url("~/.config/rofi/images/alena-aenami-bluehour-1k-crop.png", height);
orientation: vertical;
children: [ "inputbar", "dummy", "mode-switcher" ];
}
listbox {
spacing: 20px;
padding: 20px;
background-color: transparent;
orientation: vertical;
children: [ "message", "listview" ];
}
dummy {
background-color: transparent;
}
/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry" ];
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: "";
background-color: inherit;
text-color: inherit;
}
entry {
enabled: true;
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
}
/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 20px;
background-color: transparent;
text-color: @foreground;
}
button {
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: inherit;
cursor: pointer;
}
button selected {
background-color: @selected;
text-color: @foreground;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 1;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 10px;
background-color: transparent;
text-color: @foreground;
cursor: "default";
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 15px;
padding: 8px;
border-radius: 10px;
background-color: transparent;
text-color: @foreground;
cursor: pointer;
}
element normal.normal {
background-color: inherit;
text-color: inherit;
}
element normal.urgent {
background-color: @urgent;
text-color: @foreground;
}
element normal.active {
background-color: @active;
text-color: @foreground;
}
element selected.normal {
background-color: @selected;
text-color: @foreground;
}
element selected.urgent {
background-color: @urgent;
text-color: @foreground;
}
element selected.active {
background-color: @urgent;
text-color: @foreground;
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 32px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*****----- Message -----*****/
message {
background-color: transparent;
}
textbox {
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: @foreground;
vertical-align: 0.5;
horizontal-align: 0.0;
}
error-message {
padding: 15px;
border-radius: 20px;
background-color: @background;
text-color: @foreground;
}
@@ -0,0 +1,107 @@
#!/usr/bin/env bash
## Author : Aditya Shakya (adi1090x)
## Github : @adi1090x
#
## Rofi : Power Menu
#
## Available Styles
#
## style-1 style-2 style-3 style-4 style-5
# Current Theme
dir="$HOME/.config/rofi/powermenu/type-6"
theme='style-1'
# CMDs
lastlogin="`last $USER | head -n1 | tr -s ' ' | cut -d' ' -f5,6,7`"
uptime="`uptime -p | sed -e 's/up //g'`"
host=`hostname`
# Options
hibernate=''
shutdown=''
reboot=''
lock=''
suspend=''
logout=''
yes=''
no=''
# Rofi CMD
rofi_cmd() {
rofi -dmenu \
-p "$USER@$host" \
-mesg " Uptime: $uptime" \
-theme ${dir}/${theme}.rasi
}
# Confirmation CMD
confirm_cmd() {
rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \
-theme-str 'mainbox {orientation: vertical; children: [ "message", "listview" ];}' \
-theme-str 'listview {columns: 2; lines: 1;}' \
-theme-str 'element-text {horizontal-align: 0.5;}' \
-theme-str 'textbox {horizontal-align: 0.5;}' \
-dmenu \
-p 'Confirmation' \
-mesg 'Are you Sure?' \
-theme ${dir}/${theme}.rasi
}
# Ask for confirmation
confirm_exit() {
echo -e "$yes\n$no" | confirm_cmd
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$lock\n$suspend\n$logout\n$hibernate\n$reboot\n$shutdown" | rofi_cmd
}
# Execute Command
run_cmd() {
selected="$(confirm_exit)"
if [[ "$selected" == "$yes" ]]; then
if [[ $1 == '--shutdown' ]]; then
systemctl poweroff
elif [[ $1 == '--reboot' ]]; then
systemctl reboot
elif [[ $1 == '--hibernate' ]]; then
systemctl hibernate
elif [[ $1 == '--suspend' ]]; then
systemctl suspend
elif [[ $1 == '--logout' ]]; then
betterlockscreen -l
fi
else
exit 0
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$shutdown)
run_cmd --shutdown
;;
$reboot)
run_cmd --reboot
;;
$hibernate)
run_cmd --hibernate
;;
$lock)
if [[ -x '/usr/bin/betterlockscreen' ]]; then
betterlockscreen -l
elif [[ -x '/usr/bin/i3lock' ]]; then
i3lock
fi
;;
$suspend)
run_cmd --suspend
;;
$logout)
run_cmd --logout
;;
esac
@@ -0,0 +1,147 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Rofi Theme File
* Rofi Version: 1.7.3
**/
/*****----- Configuration -----*****/
configuration {
show-icons: false;
}
/*****----- Global Properties -----*****/
* {
font: "ProductSans 11";
background: #181825;
background-alt: #1e1e2e;
foreground: #FFFFFF;
selected: #b4befe;
active: #1e1e2e;
urgent: #1e1e2e;
}
/*
USE_BUTTONS=YES
*/
/*****----- Main Window -----*****/
window {
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 760px;
x-offset: 0px;
y-offset: 0px;
padding: 0px;
border: 0px solid;
border-radius: 15px;
border-color: @selected;
cursor: "default";
background-color: @background;
}
/*****----- Main Box -----*****/
mainbox {
background-color: transparent;
orientation: horizontal;
children: [ "imagebox", "listview" ];
}
/*****----- Imagebox -----*****/
imagebox {
spacing: 30px;
padding: 20px;
background-color: transparent;
background-image: url("~/.config/rofi/images/alena-aenami-portal-crop.png", height);
children: [ "inputbar", "dummy", "message" ];
}
/*****----- User -----*****/
userimage {
margin: 0px 0px;
border: 10px;
border-radius: 10px;
border-color: @background-alt;
background-color: transparent;
background-image: url("~/.config/rofi/images/a.png", height);
}
/*****----- Inputbar -----*****/
inputbar {
padding: 15px;
border-radius: 10px;
background-color: @urgent;
text-color: @foreground;
children: [ "dummy", "prompt", "dummy"];
}
dummy {
background-color: transparent;
}
prompt {
background-color: inherit;
text-color: inherit;
}
/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
padding: 15px;
border-radius: 10px;
background-color: @background;
text-color: @foreground;
}
textbox {
background-color: inherit;
text-color: inherit;
vertical-align: 0.5;
horizontal-align: 0.5;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 2;
lines: 3;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 30px;
margin: 30px;
background-color: transparent;
cursor: "default";
}
/*****----- Elements -----*****/
element {
enabled: true;
padding: 40px 10px;
border-radius: 10px;
background-color: @background-alt;
text-color: @foreground;
cursor: pointer;
}
element-text {
font: "feather bold 32";
background-color: transparent;
text-color: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.5;
}
element selected.normal {
background-color: var(selected);
text-color: var(background);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

+192
View File
@@ -0,0 +1,192 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
monitor = DP-1, 1920x1080@144, auto, auto
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = waybar
exec-once = hyperpaper
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
$terminal = kitty
$fileManager = nautilus
$menu = wofi --show drun
# Some default env vars.
env = XCURSOR_THEME,oreo_red
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = -0.1 # -1.0 to 1.0, 0 means no modification.
accel_profile = flat
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 6
gaps_out = 14
border_size = 2
col.active_border = rgba(e78284ff) rgba(85c1dcff) rgba(ca9ee6ff) rgba(ea999cff) 45deg
col.inactive_border = rgba(1e1e2eff)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, space, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, R, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
+215
View File
@@ -0,0 +1,215 @@
{
"layer": "top",
"output": "DP-1",
"position": "top",
"spacing": 4,
"margin-top": 8,
"margin-bottom": 0,
"margin-left": 12,
"margin-right": 12,
"modules-left": [
"hyprland/workspaces",
"custom/spotify",
],
"modules-center": [
"clock"
],
"modules-right": [
"backlight",
"pulseaudio",
"network",
"battery",
],
"custom/icon": {
"format": "󰣇",
"on-click": "~/.config/rofi/bin/launcher",
"tooltip": false
},
"cpu": {
"interval": 10,
"format": " {usage}%",
"max-length": 10,
"tooltip": false
},
"clock": {
"format": "<b>󰥔 {:%H:%M 󰃭 %d/%m}</b> ",
//"format": "{:%a}",
"tooltip-format": "<tt>{calendar}</tt>",
"calendar": {
"mode" : "month",
"format": {
"months": "<span color='#cdd6f4'><b>{}</b></span>",
"days": "<span color='#cdd6f4'><b>{}</b></span>",
"weeks": "<span color='#cdd6f4'><b>W{}</b></span>",
"weekdays": "<span color='#cdd6f4'><b>{}</b></span>",
"today": "<span color='#f38ba8'><b>{}</b></span>"
}
},
},
"memory": {
"interval": 30,
"format": " {used}GiB",
"format-alt": " {used:0.1f}G",
"max-length": 10
},
"temperature": {
"format": " {temperatureF}°F"
},
"hyprland/window": {
"format": " {}",
"rewrite": {
"(.*) - NVIM": " NeoVim",
"(.*) — Mozilla Firefox": "󰈹 Firefox",
" ": "󰇄 Desktop",
"(.*) Spotify Free": "󰓇 Spotify",
"(.*) Spotify": "󰓇 Spotify",
" ~": " l6174@Radon",
"(.*) - Obsidian(.*)": "󱓧 Obsidian",
}
},
"hyprland/workspaces" : {
"on-click": "activate",
"active-only": false,
"all-outputs": true,
"format": "{icon}",
"format-icons": {
"urgent": "",
"active": "",
"default": ""
},
"persistent-workspaces": {
"*": 4
}
},
"backlight": {
"format": "{icon} <b>{percent}%</b>",
"format-icons": ["󰃞", "󰃟", "󰃠"],
"tooltip": false,
},
"pulseaudio": {
"format": "{icon} <b>{volume}%</b>",
"format-bluetooth": "{icon}  <b>{volume}%</b>",
"format-bluetooth-muted": "󰝟 ",
"format-muted": " 󰝟 ",
"format-icons": {
"headset": "",
"default": ["󰕿", "󰖀", "󰕾"],
},
"tooltip": false,
"on-click": "pavucontrol",
},
"network": {
"interval": 30,
"format-wifi": "󰤨 {essid}",
"format-ethernet": "󰈀 Wired",
"fomat-disconnected": "󱚵 Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-icons": ["󰂎", "󰁻", "󰁽", "󰁿", "󰂁", "󰁹"],
"max-length": 25,
"tooltip": false,
},
"tray": {
"icon-size": 20,
"spacing": 10,
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "󰈈 ",
"deactivated": "󰈉 "
},
},
"custom/separator-space": {
"format": " ",
"tooltip": false,
},
"custom/separator-gap": {
"format": " ",
"tooltip": false,
},
"custom/separator-arrow": {
"format": "  ",
"tooltip": false,
},
"custom/spotify": {
"format": "{} ",
"max-length": 60,
"interval": "once",
"return-type": "json",
"exec": "~/.local/bin/spotifyctl",
"on-click": "playerctl --player=spotify play-pause && pkill -RTMIN+30 waybar",
"on-click-right": "playerctl --player=spotify loop track",
"on-scroll-down": "playerctl --player=spotify previous && pkill -RTMIN+30 waybar",
"on-scroll-up": "playerctl --player=spotify next && pkill -RTMIN+30 waybar",
"on-click-middle": "pkill --signal TERM spotify",
"signal": 30,
"smooth-scrolling-threshold": 1.0,
},
"custom/power": {
"format": "󰐥",
"on-click": "~/.config/rofi/bin/power.sh",
"tooltip": false,
},
"custom/notification": {
"tooltip": false,
"format": "{icon}",
"format-icons": {
"notification": "󱅫 ",
"none": "󰂚 ",
"dnd-notification": "󰵙 ",
"dnd-none": "󰂛 ",
"inhibited-notification": "󱅫 ",
"inhibited-none": "󰂚 ",
"dnd-inhibited-notification": "󰵙 ",
"dnd-inhibited-none": "󰂛​"
},
"return-type": "json",
"exec-if": "which swaync-client",
"exec": "swaync-client -swb",
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw",
"escape": true
},
"custom/updates": {
"format": " {}",
"tooltip-format": "{}",
"escape": true,
"return-type": "json",
"exec": "~/.config/waybar/custom-scripts/updates",
"restart-interval": 60,
"on-click": "kitty -e ~/.config/waybar/custom-scripts/update",
"tooltip": false
},
}
+152
View File
@@ -0,0 +1,152 @@
{
"layer": "top",
"position": "top",
"spacing": 4,
"margin-top": 5,
"margin-bottom": 0,
"margin-left": 5,
"margin-right": 5,
"modules-left": [
"custom/icon",
"custom/separator-gap",
"cpu",
"memory",
"temperature",
"custom/separator-arrow",
"hyprland/window",
],
"modules-center": [
"hyprland/workspaces",
],
"modules-right": [
"backlight",
"pulseaudio",
"network",
"battery",
"tray",
"custom/separator-dot",
"clock",
"custom/power",
],
"custom/icon": {
"format": "󰣇"
},
"cpu": {
"interval": 10,
"format": " {usage}%",
"max-length": 10,
"tooltip": false
},
"memory": {
"interval": 30,
"format": " {used}GiB",
"format-alt": " {used:0.1f}G",
"max-length": 10
},
"temperature": {
"format": " {temperatureF}°F"
},
"hyprland/window": {
"format": " {}",
"rewrite": {
"(.*) - NVIM": " NeoVim",
"(.*) — Mozilla Firefox": "󰈹 Mozilla Firefox",
}
},
"hyprland/workspaces": {
"all-outputs": true,
"format": "{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"urgent": "",
"active": "",
"default": ""
}
},
"backlight": {
"format": "{icon} <b>{percent}</b>",
"format-icons": ["󰃟", "󰃠"],
"tooltip": false,
},
"pulseaudio": {
"format": "{icon} <b>{volume}</b>",
"format-bluetooth": "{icon}  {volume}%",
"format-bluetooth-muted": "󰝟 ",
"format-muted": " 󰝟 ",
"format-icons": {
"headph": "",
"default": ["󰝟 ", ""],
},
"tooltip": false,
"on-click": "pavucontrol",
},
"network": {
"interval": 30,
"format-wifi": "󰖩 {essid}",
"format-ethernet": "󰈀 Wired",
"fomat-disconnected": "󱚵 Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-icons": [" ", " ", " ", " ", " "],
"max-length": 25,
"tooltip": false,
},
"tray": {
"icon-size": 20,
"spacing": 10,
},
"custom/separator-dot": {
"format": "  ",
"tooltip": false,
"on-click": "$HOME/.config/hypr/scripts/random-wallpaper"
},
"custom/separator-gap": {
"format": " ",
"tooltip": false,
},
"custom/separator-arrow": {
"format": "  ",
"tooltip": false,
},
"custom/spotify": {
"exec": "/usr/bin/python3 $HOME/.config/waybar/custom-scripts/mediaplayer.py --player spotify --verbose",
"format": "{} ",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
"on-scroll-down": "playerctl previous"
},
"custom/power": {
"format": "",
"on-click": "~/.config/rofi/bin/powermenu",
"tooltip": false,
},
}
+170
View File
@@ -0,0 +1,170 @@
{
"layer": "top",
"position": "top",
"spacing": 4,
"margin-top": 5,
"margin-bottom": 0,
"margin-left": 5,
"margin-right": 5,
"modules-left": [
"custom/icon",
"clock",
"custom/spotify",
],
"modules-center": [
"hyprland/window",
"custom/separator-arrow",
"hyprland/workspaces",
],
"modules-right": [
"backlight",
"pulseaudio",
"network",
"battery",
"tray",
"custom/power",
],
"custom/icon": {
"format": "󰣇",
"on-click": "~/.config/rofi/bin/launcher",
"tooltip": false
},
"cpu": {
"interval": 10,
"format": " {usage}%",
"max-length": 10,
"tooltip": false
},
clock": {
"format": "{: %d-%m-24  %H:%M}",
//"format": "{:%a}",
"tooltip-format": "<tt>{calendar}</tt>",
"calendar": {
"mode" : "month",
"format": {
"months": "<span color='#cdd6f4'><b>{}</b></span>",
"days": "<span color='#cdd6f4'><b>{}</b></span>",
"weeks": "<span color='#cdd6f4'><b>W{}</b></span>",
"weekdays": "<span color='#cdd6f4'><b>{}</b></span>",
"today": "<span color='#f38ba8'><b>{}</b></span>"
}
},
},
"memory": {
"interval": 30,
"format": " {used}GiB",
"format-alt": " {used:0.1f}G",
"max-length": 10
},
"temperature": {
"format": " {temperatureF}°F"
},
"hyprland/window": {
"format": " {}",
"rewrite": {
"(.*) - NVIM": " NeoVim",
"(.*) — Mozilla Firefox": "󰈹 Mozilla Firefox",
" ": "󰇄 Desktop",
"(.*) Spotify Free": "󰓇 Spotify",
"(.*) Spotify": "󰓇 Spotify",
" ~": " l6174@Radon",
"(.*) - Obsidian(.*)": "󱓧 Obsidian",
}
},
"hyprland/workspaces": {
"all-outputs": true,
"format": "{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"urgent": "",
"active": "",
"default": ""
}
},
"backlight": {
"format": "{icon} <b>{percent}</b>",
"format-icons": ["󰃟", "󰃠"],
"tooltip": false,
},
"pulseaudio": {
"format": "{icon} <b>{volume}</b>",
"format-bluetooth": "{icon}  {volume}%",
"format-bluetooth-muted": "󰝟 ",
"format-muted": " 󰝟 ",
"format-icons": {
"headset": "",
"default": ["", ""],
},
"tooltip": false,
"on-click": "pavucontrol",
},
"network": {
"interval": 30,
"format-wifi": "󰖩 {essid}",
"format-ethernet": "󰈀 Wired",
"fomat-disconnected": "󱚵 Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-icons": [" ", " ", " ", " ", " "],
"max-length": 25,
"tooltip": false,
},
"tray": {
"icon-size": 20,
"spacing": 10,
},
"custom/separator-dot": {
"format": "  ",
"tooltip": false,
"on-click": "$HOME/.config/hypr/scripts/random-wallpaper"
},
"custom/separator-gap": {
"format": " ",
"tooltip": false,
},
"custom/separator-arrow": {
"format": "  ",
"tooltip": false,
},
"custom/spotify": {
"exec": "/usr/bin/python3 $HOME/.config/waybar/custom-scripts/mediaplayer.py --player spotify --verbose",
"format": " {}  ",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
"on-scroll-down": "playerctl previous"
},
"custom/power": {
"format": "󰐥",
"on-click": "~/.config/rofi/bin/powermenu",
"tooltip": false,
},
}
+207
View File
@@ -0,0 +1,207 @@
{
"layer": "top",
"position": "top",
"spacing": 4,
"margin-top": 5,
"margin-bottom": 0,
"margin-left": 5,
"margin-right": 5,
"modules-left": [
"custom/icon",
"custom/separator-space",
"hyprland/workspaces",
"custom/spotify",2
"custom/separator-arrow",
"hyprland/window",
],
"modules-center": [
"clock"
],
"modules-right": [
"backlight",
"pulseaudio",
"network",
"battery",
"tray",
"custom/inhibitor",
"custom/notification",
"custom/power",
],
"custom/icon": {
"format": "󰣇",
"on-click": "~/.config/rofi/bin/launcher",
"tooltip": false
},
"cpu": {
"interval": 10,
"format": " {usage}%",
"max-length": 10,
"tooltip": false
},
"clock": {
"format": "<b>󰥔 {:%H:%M 󰃭 %d/%m} </b>",
//"format": "{:%a}",
"tooltip-format": "<tt>{calendar}</tt>",
"calendar": {
"mode" : "month",
"format": {
"months": "<span color='#cdd6f4'><b>{}</b></span>",
"days": "<span color='#cdd6f4'><b>{}</b></span>",
"weeks": "<span color='#cdd6f4'><b>W{}</b></span>",
"weekdays": "<span color='#cdd6f4'><b>{}</b></span>",
"today": "<span color='#f38ba8'><b>{}</b></span>"
}
},
},
"memory": {
"interval": 30,
"format": " {used}GiB",
"format-alt": " {used:0.1f}G",
"max-length": 10
},
"temperature": {
"format": " {temperatureF}°F"
},
"hyprland/window": {
"format": " {}",
"rewrite": {
"(.*) - NVIM": " NeoVim",
"(.*) — Mozilla Firefox": "󰈹 Firefox",
" ": "󰇄 Desktop",
"(.*) Spotify Free": "󰓇 Spotify",
"(.*) Spotify": "󰓇 Spotify",
" ~": " l6174@Radon",
"(.*) - Obsidian(.*)": "󱓧 Obsidian",
}
},
"hyprland/workspaces": {
"all-outputs": false,
"format": "{icon}",
"format-icons": {
"urgent": " ",
"persistent": " ",
"active": " ",
"empty": " "
},
"persistent-workspaces": {
"1": [],
"2": [],
"3": [],
"4": []
}
},
"backlight": {
"format": "{icon} <b>{percent}</b>",
"format-icons": ["󰃞", "󰃟", "󰃠"],
"tooltip": false,
},
"pulseaudio": {
"format": "{icon} <b>{volume}</b>",
"format-bluetooth": "{icon}  {volume}%",
"format-bluetooth-muted": "󰝟 ",
"format-muted": " 󰝟 ",
"format-icons": {
"headset": "",
"default": ["󰕿", "󰖀", "󰕾"],
},
"tooltip": false,
"on-click": "pavucontrol",
},
"network": {
"interval": 30,
"format-wifi": "󰤨 {essid}",
"format-ethernet": "󰈀 Wired",
"fomat-disconnected": "󱚵 Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-icons": ["󰂎", "󰁻", "󰁽", "󰁿", "󰂁", "󰁹"],
"max-length": 25,
"tooltip": false,
},
"tray": {
"icon-size": 20,
"spacing": 10,
},
"custom/inhibitor": {
"exec": "~/.local/bin/waybar-inhibitor",
"interval": 5,
"return-type": "json",
"tooltip": true,
"on-click": "~/.local/bin/inhibitor",
"signal": 10
},
"custom/separator-dot": {
"format": "  ",
"tooltip": false,
"on-click": "$HOME/.config/hypr/scripts/random-wallpaper"
},
"custom/separator-gap": {
"format": " ",
"tooltip": false,
},
"custom/separator-arrow": {
"format": "  ",
"tooltip": false,
},
"custom/spotify": {
"exec": "/usr/bin/python3 $HOME/.config/waybar/custom-scripts/mediaplayer.py --player spotify --verbose",
"format": " {}  ",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
"on-scroll-down": "playerctl previous"
},
"custom/power": {
"format": "󰐥",
"on-click": "~/.config/rofi/bin/powermenu",
"tooltip": false,
},
"custom/notification": {
"tooltip": false,
"format": "{icon}",
"format-icons": {
"notification": "󱅫 ",
"none": "󰂚 ",
"dnd-notification": "󰵙 ",
"dnd-none": "󰂛 ",
"inhibited-notification": "󱅫 ",
"inhibited-none": "󰂚 ",
"dnd-inhibited-notification": "󰵙 ",
"dnd-inhibited-none": "󰂛​"
},
"return-type": "json",
"exec-if": "which swaync-client",
"exec": "swaync-client -swb",
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw",
"escape": true
},
}
@@ -0,0 +1,179 @@
#!/usr/bin/env python3
import gi
gi.require_version("Playerctl", "2.0")
from gi.repository import Playerctl, GLib
from gi.repository.Playerctl import Player
import argparse
import logging
import sys
import signal
import gi
import json
import os
from typing import List
logger = logging.getLogger(__name__)
def signal_handler(sig, frame):
logger.info("Received signal to stop, exiting")
sys.stdout.write("\n")
sys.stdout.flush()
# loop.quit()
sys.exit(0)
class PlayerManager:
def __init__(self, selected_player=None):
self.manager = Playerctl.PlayerManager()
self.loop = GLib.MainLoop()
self.manager.connect(
"name-appeared", lambda *args: self.on_player_appeared(*args))
self.manager.connect(
"player-vanished", lambda *args: self.on_player_vanished(*args))
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
self.selected_player = selected_player
self.init_players()
def init_players(self):
for player in self.manager.props.player_names:
if self.selected_player is not None and self.selected_player != player.name:
logger.debug(f"{player.name} is not the filtered player, skipping it")
continue
self.init_player(player)
def run(self):
logger.info("Starting main loop")
self.loop.run()
def init_player(self, player):
logger.info(f"Initialize new player: {player.name}")
player = Playerctl.Player.new_from_name(player)
player.connect("playback-status",
self.on_playback_status_changed, None)
player.connect("metadata", self.on_metadata_changed, None)
self.manager.manage_player(player)
self.on_metadata_changed(player, player.props.metadata)
def get_players(self) -> List[Player]:
return self.manager.props.players
def write_output(self, text, player):
logger.debug(f"Writing output: {text}")
output = {"text": text,
"class": "custom-" + player.props.player_name,
"alt": player.props.player_name}
sys.stdout.write(json.dumps(output) + "\n")
sys.stdout.flush()
def clear_output(self):
sys.stdout.write("\n")
sys.stdout.flush()
def on_playback_status_changed(self, player, status, _=None):
logger.debug(f"Playback status changed for player {player.props.player_name}: {status}")
self.on_metadata_changed(player, player.props.metadata)
def get_first_playing_player(self):
players = self.get_players()
logger.debug(f"Getting first playing player from {len(players)} players")
if len(players) > 0:
# if any are playing, show the first one that is playing
# reverse order, so that the most recently added ones are preferred
for player in players[::-1]:
if player.props.status == "Playing":
return player
# if none are playing, show the first one
return players[0]
else:
logger.debug("No players found")
return None
def show_most_important_player(self):
logger.debug("Showing most important player")
# show the currently playing player
# or else show the first paused player
# or else show nothing
current_player = self.get_first_playing_player()
if current_player is not None:
self.on_metadata_changed(current_player, current_player.props.metadata)
else:
self.clear_output()
def on_metadata_changed(self, player, metadata, _=None):
logger.debug(f"Metadata changed for player {player.props.player_name}")
player_name = player.props.player_name
title = player.get_title()
track_info = ""
if player_name == "spotify" and "mpris:trackid" in metadata.keys() and ":ad:" in player.props.metadata["mpris:trackid"]:
track_info = "Advertisement"
else:
track_info = title
if track_info:
if player.props.status == "Playing":
track_info = "" + track_info
else:
track_info = "" + track_info
# only print output if no other player is playing
current_playing = self.get_first_playing_player()
if current_playing is None or current_playing.props.player_name == player.props.player_name:
self.write_output(track_info, player)
else:
logger.debug(f"Other player {current_playing.props.player_name} is playing, skipping")
def on_player_appeared(self, _, player):
logger.info(f"Player has appeared: {player.name}")
if player is not None and (self.selected_player is None or player.name == self.selected_player):
self.init_player(player)
else:
logger.debug(
"New player appeared, but it's not the selected player, skipping")
def on_player_vanished(self, _, player):
logger.info(f"Player {player.props.player_name} has vanished")
self.show_most_important_player()
def parse_arguments():
parser = argparse.ArgumentParser()
# Increase verbosity with every occurrence of -v
parser.add_argument("-v", "--verbose", action="count", default=0)
# Define for which player we"re listening
parser.add_argument("--player")
parser.add_argument("--enable-logging", action="store_true")
return parser.parse_args()
def main():
arguments = parse_arguments()
# Initialize logging
if arguments.enable_logging:
logfile = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "media-player.log")
logging.basicConfig(filename=logfile, level=logging.DEBUG,
format="%(asctime)s %(name)s %(levelname)s:%(lineno)d %(message)s")
# Logging is set by default to WARN and higher.
# With every occurrence of -v it's lowered by one
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
logger.info("Creating player manager")
if arguments.player:
logger.info(f"Filtering for player: {arguments.player}")
player = PlayerManager(arguments.player)
player.run()
if __name__ == "__main__":
main()
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
sleep 1
figlet "Update"
sleep 0.5
echo "."
sleep 0.5
echo "."
sleep 0.5
echo "."
sleep 0.5
arch-update
+63
View File
@@ -0,0 +1,63 @@
#!/bin/bash
# _ _ _ _
# | | | |_ __ __| | __ _| |_ ___ ___
# | | | | '_ \ / _` |/ _` | __/ _ \/ __|
# | |_| | |_) | (_| | (_| | || __/\__ \
# \___/| .__/ \__,_|\__,_|\__\___||___/
# |_|
#
# by Stephan Raabe (2023)
# -----------------------------------------------------
# -----------------------------------------------------
# Define threshholds for color indicators
# -----------------------------------------------------
threshhold_green=0
threshhold_yellow=25
threshhold_red=100
# -----------------------------------------------------
# Calculate available updates pacman and aur (with aur)
# -----------------------------------------------------
if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then
updates_arch=0
fi
if ! updates_aur=$(paru -Qua | wc -l); then
updates_aur=0
fi
updates=$(("$updates_arch" + "$updates_aur"))
# -----------------------------------------------------
# Testing
# -----------------------------------------------------
# Overwrite updates with numbers for testing
# updates=50
# test JSON output
# printf '{"text": "0", "alt": "0", "tooltip": "0 Updates", "class": "red"}'
# exit
# -----------------------------------------------------
# Output in JSON format for Waybar Module custom-updates
# -----------------------------------------------------
css_class="green"
if [ "$updates" -gt $threshhold_yellow ]; then
css_class="yellow"
fi
if [ "$updates" -gt $threshhold_red ]; then
css_class="red"
fi
if [ "$updates" -gt $threshhold_green ]; then
printf '{"text": "%s", "alt": "%s", "tooltip": "%s Updates", "class": "%s"}' "$updates" "$updates" "$updates" "$css_class"
else
printf '{"text": "0", "alt": "0", "tooltip": "0 Updates", "class": "green"}'
fi
+37
View File
@@ -0,0 +1,37 @@
/*
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;
+181
View File
@@ -0,0 +1,181 @@
@import "mocha.css";
* {
padding: 1px;
margin: 0px;
font-family: "Overpass", "JetBrains Mono Nerd Font";
font-size: 12px;
}
/* ------ Set a Uniform Border Radius ------ */
.modules-left, .modules-center, .modules-right, #cpu, #memory, #temperature, #pulseaudio, #backlight, #custom-spotify, #custom-icon, #custom-updates, #network, #battery, #tray, #idle_inhibitor, #custom-power, #custom-notification {
border-radius: 99px;
}
/* ------ Modules Left ------ */
.modules-left {
background-color: @base;
padding-right: 5px;
padding-left: 12px;
}
/* ------ Modules Center ------ */
.modules-center {
background-color: @base;
padding-right: 5px;
padding-left: 5px;
}
/* ------ Modules Right ------ */
.modules-right {
background-color: @base;
padding-right: 5px;
padding-left: 5px;
}
/* ------ Cpu Usage, Temperature, and Memory ------ */
#cpu, #temperature, #memory {
background-color: @surface1;
padding: 2px 5px;
margin: 4px 2px;
}
#cpu { color: @peach; }
#memory { color: @mauve; }
#temperature { color: @maroon; }
/* ------ Window Title ------ */
#window {
color: @text;
padding-right: 4px;
}
window#waybar {
background-color: rgba(0, 0, 0, 0);
border-bottom: 0px solid #ffffff;
/* color: #FFFFFF; */
background: transparent;
transition-property: background-color;
transition-duration: .5s;
}
/* -----------------------------------------------------
* Workspaces
* ----------------------------------------------------- */
#workspaces button.empty {
color: @surface2;
font-family: JetBrainsMono Nerd Font;
}
#workspaces {
margin: 0px 1px 0px 1px;
padding: 0px 12px 0px 0px;
font-family: JetBrainsMono Nerd Font;
}
#workspaces button {
padding: 0px 2px;
margin: 4px 2px;
color: @yellow;
font-family: JetBrainsMono Nerd Font;
}
#workspaces button:hover {
opacity:0.5;
}
/* ------ Pulseaudio ------ */
#pulseaudio {
color: @peach;
background-color: @surface1;
padding: 2px 8px;
margin: 4px 2px;
}
/* ------ Backlight ------ */
#backlight {
color: @sky;
background-color: @surface1;
padding: 2px 5px;
margin: 4px 2px;
}
/* ------ Network ------ */
#network {
color: @mauve;
background-color: @surface1;
padding: 2px 8px;
margin: 4px 2px;
}
/* ------ Battery ------ */
#battery {
color: @maroon;
background-color: @surface1;
padding: 2px 5px;
margin: 4px 2px;
}
/* ------ Clock ------ */
#clock {
padding-left: 10px;
color: @text;
font-weight: bold;
font-size: 13px;
}
/* ------ System Tray ------ */
#tray {
background-color: @surface1;
padding: 2px 5px;
margin: 4px 2px;
}
/* ------ Custom Modules ------ */
#custom-separator-arrow {
font-size: 14px;
color: @text;
}
#custom-separator-dot {
font-size: 15px;
color: @text;
}
#custom-spotify {
color: @mauve;
background-color: @surface1;
padding: 2px 9px;
margin: 4px 2px;
}
#custom-power {
color: @red;
background-color: @surface1;
padding: 2px 9px;
margin: 4px 2px;
font-size: 15px;
}
/*
#idle_inhibitor {
color: @green;
background-color: @surface1;
padding: 2px 9px;
margin: 4px 2px;
font-size: 15px;
}*/
#custom-notification {
color: @teal;
background-color: @surface1;
padding: 2px 9px;
margin: 4px 2px;
font-size: 15px;
}
tooltip {
background: @base;
border: 1px solid @blue;
}
+1 -1
View File
@@ -3,7 +3,7 @@ local wezterm = require("wezterm")
-- This table will hold the configuration. -- This table will hold the configuration.
local config = {} local config = {}
config.enable_wayland = false
config.default_prog = { "usr/bin/zsh", "-l" } config.default_prog = { "usr/bin/zsh", "-l" }
-- In newer versions of wezterm, use the config_builder which will -- In newer versions of wezterm, use the config_builder which will
-- help provide clearer error messages -- help provide clearer error messages
+34
View File
@@ -0,0 +1,34 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
charset = utf-8
indent_size = 2
indent_style = space
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# go
[*.go]
indent_style = tab
indent_size = 4
# python
[*.{ini,py,py.tpl,rst}]
indent_size = 4
# rust
[*.rs]
indent_size = 4
# documentation, utils
[*.{md,mdx,diff}]
trim_trailing_whitespace = false
# windows shell scripts
[*.{cmd,bat,ps1}]
end_of_line = crlf
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Catppuccin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+87
View File
@@ -0,0 +1,87 @@
<h3 align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
Catppuccin for <a href="https://hg.sr.ht/~scoopta/wofi">Wofi</a>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
</h3>
<p align="center">
<a href="https://github.com/quantumfate/wofi/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/template?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
<a href="https://github.com/quantumfate/wofi/issues"><img src="https://img.shields.io/github/issues/catppuccin/template?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
<a href="https://github.com/quantumfate/wofi/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/template?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/quantumfate/wofi/main/assets/preview.webp"/>
</p>
## Previews
<details>
<summary>🌻 Latte</summary>
<img src="https://raw.githubusercontent.com/quantumfate/wofi/main/assets/latte.webp"/>
</details>
<details>
<summary>🪴 Frappé</summary>
<img src="https://raw.githubusercontent.com/quantumfate/wofi/main/assets/frappe.webp"/>
</details>
<details>
<summary>🌺 Macchiato</summary>
<img src="https://raw.githubusercontent.com/quantumfate/wofi/main/assets/macchiato.webp"/>
</details>
<details>
<summary>🌿 Mocha</summary>
<img src="https://raw.githubusercontent.com/quantumfate/wofi/main/assets/mocha.webp"/>
</details>
## Usage
1. Clone this repository locally to your desired location. Typically something like `~/.config/`
2. Launch Wofi with your desired flavor (e.g. `latte`, `frappe`, `macchiato` or `mocha`).
```bash
wofi --conf <your-path-to-wofi>/config --style <your-path-to-wofi>/<flavor>/style.css
```
I'm personally using a bash script:
```bash
#!/usr/bin/env bash
CONFIG="$HOME/.config/hypr/wofi/config/config"
STYLE="$HOME/.config/hypr/wofi/src/mocha/style.css"
if [[ ! $(pidof wofi) ]]; then
wofi --conf "${CONFIG}" --style "${STYLE}"
else
pkill wofi
fi
```
- Q: **_"Which flavor of CSS is supported."_**\
A: [GTK CSS](https://docs.gtk.org/gtk3/). Note that hsl-colors are not supported.
- Q: **_"Where can I find CSS targets for theme customization."_**\
A: On the [Wofi page](https://hg.sr.ht/~scoopta/wofi) and on the [man page](https://man.archlinux.org/man/wofi.7.en).
- Q: **_"My CSS imports are not working."_**\
A: Please read the [Wofi configuration](https://man.archlinux.org/man/wofi.5.en#CONFIG_OPTIONS) options. Especially in regards to `style` and `stylesheet`. We avoid import statements for simplicity.
## 💝 Thanks to
- [quantumfate](https://github.com/quantumfate)
&nbsp;
<p align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />
</p>
<p align="center">
Copyright &copy; 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
</p>
<p align="center">
<a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
</p>
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

+314
View File
@@ -0,0 +1,314 @@
:root {
--ctp-latte-rosewater: #dc8a78;
--ctp-latte-rosewater-rgb: rgb(220, 138, 120);
--ctp-latte-rosewater-hsl: hsl(11, 59%, 67%);
--ctp-frappe-rosewater: #f2d5cf;
--ctp-frappe-rosewater-rgb: rgb(242, 213, 207);
--ctp-frappe-rosewater-hsl: hsl(10, 57%, 88%);
--ctp-macchiato-rosewater: #f4dbd6;
--ctp-macchiato-rosewater-rgb: rgb(244, 219, 214);
--ctp-macchiato-rosewater-hsl: hsl(10, 58%, 90%);
--ctp-mocha-rosewater: #f5e0dc;
--ctp-mocha-rosewater-rgb: rgb(245, 224, 220);
--ctp-mocha-rosewater-hsl: hsl(10, 56%, 91%);
--ctp-latte-flamingo: #dd7878;
--ctp-latte-flamingo-rgb: rgb(221, 120, 120);
--ctp-latte-flamingo-hsl: hsl(0, 60%, 67%);
--ctp-frappe-flamingo: #eebebe;
--ctp-frappe-flamingo-rgb: rgb(238, 190, 190);
--ctp-frappe-flamingo-hsl: hsl(0, 59%, 84%);
--ctp-macchiato-flamingo: #f0c6c6;
--ctp-macchiato-flamingo-rgb: rgb(240, 198, 198);
--ctp-macchiato-flamingo-hsl: hsl(0, 58%, 86%);
--ctp-mocha-flamingo: #f2cdcd;
--ctp-mocha-flamingo-rgb: rgb(242, 205, 205);
--ctp-mocha-flamingo-hsl: hsl(0, 59%, 88%);
--ctp-latte-pink: #ea76cb;
--ctp-latte-pink-rgb: rgb(234, 118, 203);
--ctp-latte-pink-hsl: hsl(316, 73%, 69%);
--ctp-frappe-pink: #f4b8e4;
--ctp-frappe-pink-rgb: rgb(244, 184, 228);
--ctp-frappe-pink-hsl: hsl(316, 73%, 84%);
--ctp-macchiato-pink: #f5bde6;
--ctp-macchiato-pink-rgb: rgb(245, 189, 230);
--ctp-macchiato-pink-hsl: hsl(316, 74%, 85%);
--ctp-mocha-pink: #f5c2e7;
--ctp-mocha-pink-rgb: rgb(245, 194, 231);
--ctp-mocha-pink-hsl: hsl(316, 72%, 86%);
--ctp-latte-mauve: #8839ef;
--ctp-latte-mauve-rgb: rgb(136, 57, 239);
--ctp-latte-mauve-hsl: hsl(266, 85%, 58%);
--ctp-frappe-mauve: #ca9ee6;
--ctp-frappe-mauve-rgb: rgb(202, 158, 230);
--ctp-frappe-mauve-hsl: hsl(277, 59%, 76%);
--ctp-macchiato-mauve: #c6a0f6;
--ctp-macchiato-mauve-rgb: rgb(198, 160, 246);
--ctp-macchiato-mauve-hsl: hsl(267, 83%, 80%);
--ctp-mocha-mauve: #cba6f7;
--ctp-mocha-mauve-rgb: rgb(203, 166, 247);
--ctp-mocha-mauve-hsl: hsl(267, 84%, 81%);
--ctp-latte-red: #d20f39;
--ctp-latte-red-rgb: rgb(210, 15, 57);
--ctp-latte-red-hsl: hsl(347, 87%, 44%);
--ctp-frappe-red: #e78284;
--ctp-frappe-red-rgb: rgb(231, 130, 132);
--ctp-frappe-red-hsl: hsl(359, 68%, 71%);
--ctp-macchiato-red: #ed8796;
--ctp-macchiato-red-rgb: rgb(237, 135, 150);
--ctp-macchiato-red-hsl: hsl(351, 74%, 73%);
--ctp-mocha-red: #f38ba8;
--ctp-mocha-red-rgb: rgb(243, 139, 168);
--ctp-mocha-red-hsl: hsl(343, 81%, 75%);
--ctp-latte-maroon: #e64553;
--ctp-latte-maroon-rgb: rgb(230, 69, 83);
--ctp-latte-maroon-hsl: hsl(355, 76%, 59%);
--ctp-frappe-maroon: #ea999c;
--ctp-frappe-maroon-rgb: rgb(234, 153, 156);
--ctp-frappe-maroon-hsl: hsl(358, 66%, 76%);
--ctp-macchiato-maroon: #ee99a0;
--ctp-macchiato-maroon-rgb: rgb(238, 153, 160);
--ctp-macchiato-maroon-hsl: hsl(355, 71%, 77%);
--ctp-mocha-maroon: #eba0ac;
--ctp-mocha-maroon-rgb: rgb(235, 160, 172);
--ctp-mocha-maroon-hsl: hsl(350, 65%, 77%);
--ctp-latte-peach: #fe640b;
--ctp-latte-peach-rgb: rgb(254, 100, 11);
--ctp-latte-peach-hsl: hsl(22, 99%, 52%);
--ctp-frappe-peach: #ef9f76;
--ctp-frappe-peach-rgb: rgb(239, 159, 118);
--ctp-frappe-peach-hsl: hsl(20, 79%, 70%);
--ctp-macchiato-peach: #f5a97f;
--ctp-macchiato-peach-rgb: rgb(245, 169, 127);
--ctp-macchiato-peach-hsl: hsl(21, 86%, 73%);
--ctp-mocha-peach: #fab387;
--ctp-mocha-peach-rgb: rgb(250, 179, 135);
--ctp-mocha-peach-hsl: hsl(23, 92%, 75%);
--ctp-latte-yellow: #df8e1d;
--ctp-latte-yellow-rgb: rgb(223, 142, 29);
--ctp-latte-yellow-hsl: hsl(35, 77%, 49%);
--ctp-frappe-yellow: #e5c890;
--ctp-frappe-yellow-rgb: rgb(229, 200, 144);
--ctp-frappe-yellow-hsl: hsl(40, 62%, 73%);
--ctp-macchiato-yellow: #eed49f;
--ctp-macchiato-yellow-rgb: rgb(238, 212, 159);
--ctp-macchiato-yellow-hsl: hsl(40, 70%, 78%);
--ctp-mocha-yellow: #f9e2af;
--ctp-mocha-yellow-rgb: rgb(249, 226, 175);
--ctp-mocha-yellow-hsl: hsl(41, 86%, 83%);
--ctp-latte-green: #40a02b;
--ctp-latte-green-rgb: rgb(64, 160, 43);
--ctp-latte-green-hsl: hsl(109, 58%, 40%);
--ctp-frappe-green: #a6d189;
--ctp-frappe-green-rgb: rgb(166, 209, 137);
--ctp-frappe-green-hsl: hsl(96, 44%, 68%);
--ctp-macchiato-green: #a6da95;
--ctp-macchiato-green-rgb: rgb(166, 218, 149);
--ctp-macchiato-green-hsl: hsl(105, 48%, 72%);
--ctp-mocha-green: #a6e3a1;
--ctp-mocha-green-rgb: rgb(166, 227, 161);
--ctp-mocha-green-hsl: hsl(115, 54%, 76%);
--ctp-latte-teal: #179299;
--ctp-latte-teal-rgb: rgb(23, 146, 153);
--ctp-latte-teal-hsl: hsl(183, 74%, 35%);
--ctp-frappe-teal: #81c8be;
--ctp-frappe-teal-rgb: rgb(129, 200, 190);
--ctp-frappe-teal-hsl: hsl(172, 39%, 65%);
--ctp-macchiato-teal: #8bd5ca;
--ctp-macchiato-teal-rgb: rgb(139, 213, 202);
--ctp-macchiato-teal-hsl: hsl(171, 47%, 69%);
--ctp-mocha-teal: #94e2d5;
--ctp-mocha-teal-rgb: rgb(148, 226, 213);
--ctp-mocha-teal-hsl: hsl(170, 57%, 73%);
--ctp-latte-sky: #04a5e5;
--ctp-latte-sky-rgb: rgb(4, 165, 229);
--ctp-latte-sky-hsl: hsl(197, 97%, 46%);
--ctp-frappe-sky: #99d1db;
--ctp-frappe-sky-rgb: rgb(153, 209, 219);
--ctp-frappe-sky-hsl: hsl(189, 48%, 73%);
--ctp-macchiato-sky: #91d7e3;
--ctp-macchiato-sky-rgb: rgb(145, 215, 227);
--ctp-macchiato-sky-hsl: hsl(189, 59%, 73%);
--ctp-mocha-sky: #89dceb;
--ctp-mocha-sky-rgb: rgb(137, 220, 235);
--ctp-mocha-sky-hsl: hsl(189, 71%, 73%);
--ctp-latte-sapphire: #209fb5;
--ctp-latte-sapphire-rgb: rgb(32, 159, 181);
--ctp-latte-sapphire-hsl: hsl(189, 70%, 42%);
--ctp-frappe-sapphire: #85c1dc;
--ctp-frappe-sapphire-rgb: rgb(133, 193, 220);
--ctp-frappe-sapphire-hsl: hsl(199, 55%, 69%);
--ctp-macchiato-sapphire: #7dc4e4;
--ctp-macchiato-sapphire-rgb: rgb(125, 196, 228);
--ctp-macchiato-sapphire-hsl: hsl(199, 66%, 69%);
--ctp-mocha-sapphire: #74c7ec;
--ctp-mocha-sapphire-rgb: rgb(116, 199, 236);
--ctp-mocha-sapphire-hsl: hsl(199, 76%, 69%);
--ctp-latte-blue: #1e66f5;
--ctp-latte-blue-rgb: rgb(30, 102, 245);
--ctp-latte-blue-hsl: hsl(220, 91%, 54%);
--ctp-frappe-blue: #8caaee;
--ctp-frappe-blue-rgb: rgb(140, 170, 238);
--ctp-frappe-blue-hsl: hsl(222, 74%, 74%);
--ctp-macchiato-blue: #8aadf4;
--ctp-macchiato-blue-rgb: rgb(138, 173, 244);
--ctp-macchiato-blue-hsl: hsl(220, 83%, 75%);
--ctp-mocha-blue: #89b4fa;
--ctp-mocha-blue-rgb: rgb(137, 180, 250);
--ctp-mocha-blue-hsl: hsl(217, 92%, 76%);
--ctp-latte-lavender: #7287fd;
--ctp-latte-lavender-rgb: rgb(114, 135, 253);
--ctp-latte-lavender-hsl: hsl(231, 97%, 72%);
--ctp-frappe-lavender: #babbf1;
--ctp-frappe-lavender-rgb: rgb(186, 187, 241);
--ctp-frappe-lavender-hsl: hsl(239, 66%, 84%);
--ctp-macchiato-lavender: #b7bdf8;
--ctp-macchiato-lavender-rgb: rgb(183, 189, 248);
--ctp-macchiato-lavender-hsl: hsl(234, 82%, 85%);
--ctp-mocha-lavender: #b4befe;
--ctp-mocha-lavender-rgb: rgb(180, 190, 254);
--ctp-mocha-lavender-hsl: hsl(232, 97%, 85%);
--ctp-latte-text: #4c4f69;
--ctp-latte-text-rgb: rgb(76, 79, 105);
--ctp-latte-text-hsl: hsl(234, 16%, 35%);
--ctp-frappe-text: #c6d0f5;
--ctp-frappe-text-rgb: rgb(198, 208, 245);
--ctp-frappe-text-hsl: hsl(227, 70%, 87%);
--ctp-macchiato-text: #cad3f5;
--ctp-macchiato-text-rgb: rgb(202, 211, 245);
--ctp-macchiato-text-hsl: hsl(227, 68%, 88%);
--ctp-mocha-text: #cdd6f4;
--ctp-mocha-text-rgb: rgb(205, 214, 244);
--ctp-mocha-text-hsl: hsl(226, 64%, 88%);
--ctp-latte-subtext1: #5c5f77;
--ctp-latte-subtext1-rgb: rgb(92, 95, 119);
--ctp-latte-subtext1-hsl: hsl(233, 13%, 41%);
--ctp-frappe-subtext1: #b5bfe2;
--ctp-frappe-subtext1-rgb: rgb(181, 191, 226);
--ctp-frappe-subtext1-hsl: hsl(227, 44%, 80%);
--ctp-macchiato-subtext1: #b8c0e0;
--ctp-macchiato-subtext1-rgb: rgb(184, 192, 224);
--ctp-macchiato-subtext1-hsl: hsl(228, 39%, 80%);
--ctp-mocha-subtext1: #bac2de;
--ctp-mocha-subtext1-rgb: rgb(186, 194, 222);
--ctp-mocha-subtext1-hsl: hsl(227, 35%, 80%);
--ctp-latte-subtext0: #6c6f85;
--ctp-latte-subtext0-rgb: rgb(108, 111, 133);
--ctp-latte-subtext0-hsl: hsl(233, 10%, 47%);
--ctp-frappe-subtext0: #a5adce;
--ctp-frappe-subtext0-rgb: rgb(165, 173, 206);
--ctp-frappe-subtext0-hsl: hsl(228, 29%, 73%);
--ctp-macchiato-subtext0: #a5adcb;
--ctp-macchiato-subtext0-rgb: rgb(165, 173, 203);
--ctp-macchiato-subtext0-hsl: hsl(227, 27%, 72%);
--ctp-mocha-subtext0: #a6adc8;
--ctp-mocha-subtext0-rgb: rgb(166, 173, 200);
--ctp-mocha-subtext0-hsl: hsl(228, 24%, 72%);
--ctp-latte-overlay2: #7c7f93;
--ctp-latte-overlay2-rgb: rgb(124, 127, 147);
--ctp-latte-overlay2-hsl: hsl(232, 10%, 53%);
--ctp-frappe-overlay2: #949cbb;
--ctp-frappe-overlay2-rgb: rgb(148, 156, 187);
--ctp-frappe-overlay2-hsl: hsl(228, 22%, 66%);
--ctp-macchiato-overlay2: #939ab7;
--ctp-macchiato-overlay2-rgb: rgb(147, 154, 183);
--ctp-macchiato-overlay2-hsl: hsl(228, 20%, 65%);
--ctp-mocha-overlay2: #9399b2;
--ctp-mocha-overlay2-rgb: rgb(147, 153, 178);
--ctp-mocha-overlay2-hsl: hsl(228, 17%, 64%);
--ctp-latte-overlay1: #8c8fa1;
--ctp-latte-overlay1-rgb: rgb(140, 143, 161);
--ctp-latte-overlay1-hsl: hsl(231, 10%, 59%);
--ctp-frappe-overlay1: #838ba7;
--ctp-frappe-overlay1-rgb: rgb(131, 139, 167);
--ctp-frappe-overlay1-hsl: hsl(227, 17%, 58%);
--ctp-macchiato-overlay1: #8087a2;
--ctp-macchiato-overlay1-rgb: rgb(128, 135, 162);
--ctp-macchiato-overlay1-hsl: hsl(228, 15%, 57%);
--ctp-mocha-overlay1: #7f849c;
--ctp-mocha-overlay1-rgb: rgb(127, 132, 156);
--ctp-mocha-overlay1-hsl: hsl(230, 13%, 55%);
--ctp-latte-overlay0: #9ca0b0;
--ctp-latte-overlay0-rgb: rgb(156, 160, 176);
--ctp-latte-overlay0-hsl: hsl(228, 11%, 65%);
--ctp-frappe-overlay0: #737994;
--ctp-frappe-overlay0-rgb: rgb(115, 121, 148);
--ctp-frappe-overlay0-hsl: hsl(229, 13%, 52%);
--ctp-macchiato-overlay0: #6e738d;
--ctp-macchiato-overlay0-rgb: rgb(110, 115, 141);
--ctp-macchiato-overlay0-hsl: hsl(230, 12%, 49%);
--ctp-mocha-overlay0: #6c7086;
--ctp-mocha-overlay0-rgb: rgb(108, 112, 134);
--ctp-mocha-overlay0-hsl: hsl(231, 11%, 47%);
--ctp-latte-surface2: #acb0be;
--ctp-latte-surface2-rgb: rgb(172, 176, 190);
--ctp-latte-surface2-hsl: hsl(227, 12%, 71%);
--ctp-frappe-surface2: #626880;
--ctp-frappe-surface2-rgb: rgb(98, 104, 128);
--ctp-frappe-surface2-hsl: hsl(228, 13%, 44%);
--ctp-macchiato-surface2: #5b6078;
--ctp-macchiato-surface2-rgb: rgb(91, 96, 120);
--ctp-macchiato-surface2-hsl: hsl(230, 14%, 41%);
--ctp-mocha-surface2: #585b70;
--ctp-mocha-surface2-rgb: rgb(88, 91, 112);
--ctp-mocha-surface2-hsl: hsl(233, 12%, 39%);
--ctp-latte-surface1: #bcc0cc;
--ctp-latte-surface1-rgb: rgb(188, 192, 204);
--ctp-latte-surface1-hsl: hsl(225, 14%, 77%);
--ctp-frappe-surface1: #51576d;
--ctp-frappe-surface1-rgb: rgb(81, 87, 109);
--ctp-frappe-surface1-hsl: hsl(227, 15%, 37%);
--ctp-macchiato-surface1: #494d64;
--ctp-macchiato-surface1-rgb: rgb(73, 77, 100);
--ctp-macchiato-surface1-hsl: hsl(231, 16%, 34%);
--ctp-mocha-surface1: #45475a;
--ctp-mocha-surface1-rgb: rgb(69, 71, 90);
--ctp-mocha-surface1-hsl: hsl(234, 13%, 31%);
--ctp-latte-surface0: #ccd0da;
--ctp-latte-surface0-rgb: rgb(204, 208, 218);
--ctp-latte-surface0-hsl: hsl(223, 16%, 83%);
--ctp-frappe-surface0: #414559;
--ctp-frappe-surface0-rgb: rgb(65, 69, 89);
--ctp-frappe-surface0-hsl: hsl(230, 16%, 30%);
--ctp-macchiato-surface0: #363a4f;
--ctp-macchiato-surface0-rgb: rgb(54, 58, 79);
--ctp-macchiato-surface0-hsl: hsl(230, 19%, 26%);
--ctp-mocha-surface0: #313244;
--ctp-mocha-surface0-rgb: rgb(49, 50, 68);
--ctp-mocha-surface0-hsl: hsl(237, 16%, 23%);
--ctp-latte-base: #eff1f5;
--ctp-latte-base-rgb: rgb(239, 241, 245);
--ctp-latte-base-hsl: hsl(220, 23%, 95%);
--ctp-frappe-base: #303446;
--ctp-frappe-base-rgb: rgb(48, 52, 70);
--ctp-frappe-base-hsl: hsl(229, 19%, 23%);
--ctp-macchiato-base: #24273a;
--ctp-macchiato-base-rgb: rgb(36, 39, 58);
--ctp-macchiato-base-hsl: hsl(232, 23%, 18%);
--ctp-mocha-base: #1e1e2e;
--ctp-mocha-base-rgb: rgb(30, 30, 46);
--ctp-mocha-base-hsl: hsl(240, 21%, 15%);
--ctp-latte-mantle: #e6e9ef;
--ctp-latte-mantle-rgb: rgb(230, 233, 239);
--ctp-latte-mantle-hsl: hsl(220, 22%, 92%);
--ctp-frappe-mantle: #292c3c;
--ctp-frappe-mantle-rgb: rgb(41, 44, 60);
--ctp-frappe-mantle-hsl: hsl(231, 19%, 20%);
--ctp-macchiato-mantle: #1e2030;
--ctp-macchiato-mantle-rgb: rgb(30, 32, 48);
--ctp-macchiato-mantle-hsl: hsl(233, 23%, 15%);
--ctp-mocha-mantle: #181825;
--ctp-mocha-mantle-rgb: rgb(24, 24, 37);
--ctp-mocha-mantle-hsl: hsl(240, 21%, 12%);
--ctp-latte-crust: #dce0e8;
--ctp-latte-crust-rgb: rgb(220, 224, 232);
--ctp-latte-crust-hsl: hsl(220, 21%, 89%);
--ctp-frappe-crust: #232634;
--ctp-frappe-crust-rgb: rgb(35, 38, 52);
--ctp-frappe-crust-hsl: hsl(229, 20%, 17%);
--ctp-macchiato-crust: #181926;
--ctp-macchiato-crust-rgb: rgb(24, 25, 38);
--ctp-macchiato-crust-hsl: hsl(236, 23%, 12%);
--ctp-mocha-crust: #11111b;
--ctp-mocha-crust-rgb: rgb(17, 17, 27);
--ctp-mocha-crust-hsl: hsl(240, 23%, 9%);
}
+11
View File
@@ -0,0 +1,11 @@
show=drun
width=750
height=400
always_parse_args=true
show_all=false
term=kitty
hide_scroll=true
print_command=true
insensitive=true
prompt=
columns=2
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
CONFIG="$HOME/.config/wofi/config/config"
STYLE="$HOME/.config/wofi/src/mocha/style.css"
if [[ ! $(pidof wofi) ]]; then
wofi --conf "${CONFIG}" --style "${STYLE}"
else
pkill wofi
fi
+164
View File
@@ -0,0 +1,164 @@
@define-color rosewater #f2d5cf;
@define-color rosewater-rgb rgb(242, 213, 207);
@define-color flamingo #eebebe;
@define-color flamingo-rgb rgb(238, 190, 190);
@define-color pink #f4b8e4;
@define-color pink-rgb rgb(244, 184, 228);
@define-color mauve #ca9ee6;
@define-color mauve-rgb rgb(202, 158, 230);
@define-color red #e78284;
@define-color red-rgb rgb(231, 130, 132);
@define-color maroon #ea999c;
@define-color maroon-rgb rgb(234, 153, 156);
@define-color peach #ef9f76;
@define-color peach-rgb rgb(239, 159, 118);
@define-color yellow #e5c890;
@define-color yellow-rgb rgb(229, 200, 144);
@define-color green #a6d189;
@define-color green-rgb rgb(166, 209, 137);
@define-color teal #81c8be;
@define-color teal-rgb rgb(129, 200, 190);
@define-color sky #99d1db;
@define-color sky-rgb rgb(153, 209, 219);
@define-color sapphire #85c1dc;
@define-color sapphire-rgb rgb(133, 193, 220);
@define-color blue #8caaee;
@define-color blue-rgb rgb(140, 170, 238);
@define-color lavender #babbf1;
@define-color lavender-rgb rgb(186, 187, 241);
@define-color text #c6d0f5;
@define-color text-rgb rgb(198, 208, 245);
@define-color subtext1 #b5bfe2;
@define-color subtext1-rgb rgb(181, 191, 226);
@define-color subtext0 #a5adce;
@define-color subtext0-rgb rgb(165, 173, 206);
@define-color overlay2 #949cbb;
@define-color overlay2-rgb rgb(148, 156, 187);
@define-color overlay1 #838ba7;
@define-color overlay1-rgb rgb(131, 139, 167);
@define-color overlay0 #737994;
@define-color overlay0-rgb rgb(115, 121, 148);
@define-color surface2 #626880;
@define-color surface2-rgb rgb(98, 104, 128);
@define-color surface1 #51576d;
@define-color surface1-rgb rgb(81, 87, 109);
@define-color surface0 #414559;
@define-color surface0-rgb rgb(65, 69, 89);
@define-color base #303446;
@define-color base-rgb rgb(48, 52, 70);
@define-color mantle #292c3c;
@define-color mantle-rgb rgb(41, 44, 60);
@define-color crust #232634;
@define-color crust-rgb rgb(35, 38, 52);
* {
font-family: 'Inconsolata Nerd Font', monospace;
font-size: 14px;
}
/* Window */
window {
margin: 0px;
padding: 10px;
border: 0.16em solid @lavender;
border-radius: 0.1em;
background-color: @base;
animation: slideIn 0.5s ease-in-out both;
}
/* Slide In */
@keyframes slideIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Inner Box */
#inner-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
animation: fadeIn 0.5s ease-in-out both;
}
/* Fade In */
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Outer Box */
#outer-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
}
/* Scroll */
#scroll {
margin: 0px;
padding: 10px;
border: none;
background-color: @base;
}
/* Input */
#input {
margin: 5px 20px;
padding: 10px;
border: none;
border-radius: 0.1em;
color: @text;
background-color: @base;
animation: fadeIn 0.5s ease-in-out both;
}
#input image {
border: none;
color: @red;
}
#input * {
outline: 4px solid @red!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: @text;
animation: fadeIn 0.5s ease-in-out both;
}
#entry {
background-color: @base;
}
#entry arrow {
border: none;
color: @lavender;
}
/* Selected Entry */
#entry:selected {
border: 0.11em solid @lavender;
}
#entry:selected #text {
color: @mauve;
}
#entry:drop(active) {
background-color: @lavender!important;
}
+164
View File
@@ -0,0 +1,164 @@
@define-color rosewater #dc8a78;
@define-color rosewater-rgb rgb(220, 138, 120);
@define-color flamingo #dd7878;
@define-color flamingo-rgb rgb(221, 120, 120);
@define-color pink #ea76cb;
@define-color pink-rgb rgb(234, 118, 203);
@define-color mauve #8839ef;
@define-color mauve-rgb rgb(136, 57, 239);
@define-color red #d20f39;
@define-color red-rgb rgb(210, 15, 57);
@define-color maroon #e64553;
@define-color maroon-rgb rgb(230, 69, 83);
@define-color peach #fe640b;
@define-color peach-rgb rgb(254, 100, 11);
@define-color yellow #df8e1d;
@define-color yellow-rgb rgb(223, 142, 29);
@define-color green #40a02b;
@define-color green-rgb rgb(64, 160, 43);
@define-color teal #179299;
@define-color teal-rgb rgb(23, 146, 153);
@define-color sky #04a5e5;
@define-color sky-rgb rgb(4, 165, 229);
@define-color sapphire #209fb5;
@define-color sapphire-rgb rgb(32, 159, 181);
@define-color blue #1e66f5;
@define-color blue-rgb rgb(30, 102, 245);
@define-color lavender #7287fd;
@define-color lavender-rgb rgb(114, 135, 253);
@define-color text #4c4f69;
@define-color text-rgb rgb(76, 79, 105);
@define-color subtext1 #5c5f77;
@define-color subtext1-rgb rgb(92, 95, 119);
@define-color subtext0 #6c6f85;
@define-color subtext0-rgb rgb(108, 111, 133);
@define-color overlay2 #7c7f93;
@define-color overlay2-rgb rgb(124, 127, 147);
@define-color overlay1 #8c8fa1;
@define-color overlay1-rgb rgb(140, 143, 161);
@define-color overlay0 #9ca0b0;
@define-color overlay0-rgb rgb(156, 160, 176);
@define-color surface2 #acb0be;
@define-color surface2-rgb rgb(172, 176, 190);
@define-color surface1 #bcc0cc;
@define-color surface1-rgb rgb(188, 192, 204);
@define-color surface0 #ccd0da;
@define-color surface0-rgb rgb(204, 208, 218);
@define-color base #eff1f5;
@define-color base-rgb rgb(239, 241, 245);
@define-color mantle #e6e9ef;
@define-color mantle-rgb rgb(230, 233, 239);
@define-color crust #dce0e8;
@define-color crust-rgb rgb(220, 224, 232);
* {
font-family: 'Inconsolata Nerd Font', monospace;
font-size: 14px;
}
/* Window */
window {
margin: 0px;
padding: 10px;
border: 0.16em solid @lavender;
border-radius: 0.1em;
background-color: @base;
animation: slideIn 0.5s ease-in-out both;
}
/* Slide In */
@keyframes slideIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Inner Box */
#inner-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
animation: fadeIn 0.5s ease-in-out both;
}
/* Fade In */
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Outer Box */
#outer-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
}
/* Scroll */
#scroll {
margin: 0px;
padding: 10px;
border: none;
background-color: @base;
}
/* Input */
#input {
margin: 5px 20px;
padding: 10px;
border: none;
border-radius: 0.1em;
color: @text;
background-color: @base;
animation: fadeIn 0.5s ease-in-out both;
}
#input image {
border: none;
color: @red;
}
#input * {
outline: 4px solid @red!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: @text;
animation: fadeIn 0.5s ease-in-out both;
}
#entry {
background-color: @base;
}
#entry arrow {
border: none;
color: @lavender;
}
/* Selected Entry */
#entry:selected {
border: 0.11em solid @lavender;
}
#entry:selected #text {
color: @mauve;
}
#entry:drop(active) {
background-color: @lavender!important;
}
+164
View File
@@ -0,0 +1,164 @@
@define-color rosewater #f4dbd6;
@define-color rosewater-rgb rgb(244, 219, 214);
@define-color flamingo #f0c6c6;
@define-color flamingo-rgb rgb(240, 198, 198);
@define-color pink #f5bde6;
@define-color pink-rgb rgb(245, 189, 230);
@define-color mauve #c6a0f6;
@define-color mauve-rgb rgb(198, 160, 246);
@define-color red #ed8796;
@define-color red-rgb rgb(237, 135, 150);
@define-color maroon #ee99a0;
@define-color maroon-rgb rgb(238, 153, 160);
@define-color peach #f5a97f;
@define-color peach-rgb rgb(245, 169, 127);
@define-color yellow #eed49f;
@define-color yellow-rgb rgb(238, 212, 159);
@define-color green #a6da95;
@define-color green-rgb rgb(166, 218, 149);
@define-color teal #8bd5ca;
@define-color teal-rgb rgb(139, 213, 202);
@define-color sky #91d7e3;
@define-color sky-rgb rgb(145, 215, 227);
@define-color sapphire #7dc4e4;
@define-color sapphire-rgb rgb(125, 196, 228);
@define-color blue #8aadf4;
@define-color blue-rgb rgb(138, 173, 244);
@define-color lavender #b7bdf8;
@define-color lavender-rgb rgb(183, 189, 248);
@define-color text #cad3f5;
@define-color text-rgb rgb(202, 211, 245);
@define-color subtext1 #b8c0e0;
@define-color subtext1-rgb rgb(184, 192, 224);
@define-color subtext0 #a5adcb;
@define-color subtext0-rgb rgb(165, 173, 203);
@define-color overlay2 #939ab7;
@define-color overlay2-rgb rgb(147, 154, 183);
@define-color overlay1 #8087a2;
@define-color overlay1-rgb rgb(128, 135, 162);
@define-color overlay0 #6e738d;
@define-color overlay0-rgb rgb(110, 115, 141);
@define-color surface2 #5b6078;
@define-color surface2-rgb rgb(91, 96, 120);
@define-color surface1 #494d64;
@define-color surface1-rgb rgb(73, 77, 100);
@define-color surface0 #363a4f;
@define-color surface0-rgb rgb(54, 58, 79);
@define-color base #24273a;
@define-color base-rgb rgb(36, 39, 58);
@define-color mantle #1e2030;
@define-color mantle-rgb rgb(30, 32, 48);
@define-color crust #181926;
@define-color crust-rgb rgb(24, 25, 38);
* {
font-family: 'Inconsolata Nerd Font', monospace;
font-size: 14px;
}
/* Window */
window {
margin: 0px;
padding: 10px;
border: 0.16em solid @lavender;
border-radius: 0.1em;
background-color: @base;
animation: slideIn 0.5s ease-in-out both;
}
/* Slide In */
@keyframes slideIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Inner Box */
#inner-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
animation: fadeIn 0.5s ease-in-out both;
}
/* Fade In */
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Outer Box */
#outer-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
}
/* Scroll */
#scroll {
margin: 0px;
padding: 10px;
border: none;
background-color: @base;
}
/* Input */
#input {
margin: 5px 20px;
padding: 10px;
border: none;
border-radius: 0.1em;
color: @text;
background-color: @base;
animation: fadeIn 0.5s ease-in-out both;
}
#input image {
border: none;
color: @red;
}
#input * {
outline: 4px solid @red!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: @text;
animation: fadeIn 0.5s ease-in-out both;
}
#entry {
background-color: @base;
}
#entry arrow {
border: none;
color: @lavender;
}
/* Selected Entry */
#entry:selected {
border: 0.11em solid @lavender;
}
#entry:selected #text {
color: @mauve;
}
#entry:drop(active) {
background-color: @lavender!important;
}
+165
View File
@@ -0,0 +1,165 @@
@define-color rosewater #f5e0dc;
@define-color rosewater-rgb rgb(245, 224, 220);
@define-color flamingo #f2cdcd;
@define-color flamingo-rgb rgb(242, 205, 205);
@define-color pink #f5c2e7;
@define-color pink-rgb rgb(245, 194, 231);
@define-color mauve #cba6f7;
@define-color mauve-rgb rgb(203, 166, 247);
@define-color red #f38ba8;
@define-color red-rgb rgb(243, 139, 168);
@define-color maroon #eba0ac;
@define-color maroon-rgb rgb(235, 160, 172);
@define-color peach #fab387;
@define-color peach-rgb rgb(250, 179, 135);
@define-color yellow #f9e2af;
@define-color yellow-rgb rgb(249, 226, 175);
@define-color green #a6e3a1;
@define-color green-rgb rgb(166, 227, 161);
@define-color teal #94e2d5;
@define-color teal-rgb rgb(148, 226, 213);
@define-color sky #89dceb;
@define-color sky-rgb rgb(137, 220, 235);
@define-color sapphire #74c7ec;
@define-color sapphire-rgb rgb(116, 199, 236);
@define-color blue #89b4fa;
@define-color blue-rgb rgb(137, 180, 250);
@define-color lavender #b4befe;
@define-color lavender-rgb rgb(180, 190, 254);
@define-color text #cdd6f4;
@define-color text-rgb rgb(205, 214, 244);
@define-color subtext1 #bac2de;
@define-color subtext1-rgb rgb(186, 194, 222);
@define-color subtext0 #a6adc8;
@define-color subtext0-rgb rgb(166, 173, 200);
@define-color overlay2 #9399b2;
@define-color overlay2-rgb rgb(147, 153, 178);
@define-color overlay1 #7f849c;
@define-color overlay1-rgb rgb(127, 132, 156);
@define-color overlay0 #6c7086;
@define-color overlay0-rgb rgb(108, 112, 134);
@define-color surface2 #585b70;
@define-color surface2-rgb rgb(88, 91, 112);
@define-color surface1 #45475a;
@define-color surface1-rgb rgb(69, 71, 90);
@define-color surface0 #313244;
@define-color surface0-rgb rgb(49, 50, 68);
@define-color base #1e1e2e;
@define-color base-rgb rgb(30, 30, 46);
@define-color mantle #181825;
@define-color mantle-rgb rgb(24, 24, 37);
@define-color crust #11111b;
@define-color crust-rgb rgb(17, 17, 27);
* {
font-family: 'Inconsolata Nerd Font', monospace;
font-size: 14px;
}
/* Window */
window {
margin: 0px;
padding: 10px;
border: 0.16em solid @lavender;
border-radius: 1em;
background-color: @base;
animation: slideIn 0.1s ease-in-out both;
}
/* Slide In */
@keyframes slideIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Inner Box */
#inner-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
animation: fadeIn 0.1s ease-in-out both;
}
/* Fade In */
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Outer Box */
#outer-box {
margin: 5px;
padding: 10px;
border: none;
border-radius: 0.1em;
background-color: @base;
}
/* Scroll */
#scroll {
margin: 0px;
padding: 10px;
border: none;
background-color: @base;
}
/* Input */
#input {
margin: 5px 20px;
padding: 10px;
border: none;
border-radius: 0.1em;
color: @text;
background-color: @base;
animation: fadeIn 0.1s ease-in-out both;
}
#input image {
border: none;
color: @red;
}
#input * {
outline: 4px solid @red!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: @text;
animation: fadeIn 0.1s ease-in-out both;
}
#entry {
background-color: @base;
}
#entry arrow {
border: none;
color: @lavender;
}
/* Selected Entry */
#entry:selected {
border: 0.11em solid @lavender;
}
#entry:selected #text {
color: @mauve;
}
#entry:drop(active) {
background-color: @lavender!important;
}