diff --git a/awesome/.config/awesome/autorun.sh b/awesome/.config/awesome/autorun.sh new file mode 100755 index 0000000..8c7447e --- /dev/null +++ b/awesome/.config/awesome/autorun.sh @@ -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' '' + diff --git a/awesome/.config/awesome/calendar.lua b/awesome/.config/awesome/calendar.lua new file mode 100644 index 0000000..4900913 --- /dev/null +++ b/awesome/.config/awesome/calendar.lua @@ -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 '' .. t .. '' end, + shape = rounded_shape(4) + } + + styles.header = { + fg_color = calendar_themes[theme].header_fg, + bg_color = calendar_themes[theme].bg, + markup = function(t) return '' .. t .. '' end + } + + styles.weekday = { + fg_color = calendar_themes[theme].weekday_fg, + bg_color = calendar_themes[theme].bg, + markup = function(t) return '' .. t .. '' 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 }) + diff --git a/awesome/.config/awesome/kpolybar.sh b/awesome/.config/awesome/kpolybar.sh new file mode 100755 index 0000000..90aea8c --- /dev/null +++ b/awesome/.config/awesome/kpolybar.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +killall -q polybar diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua new file mode 100644 index 0000000..1e011c1 --- /dev/null +++ b/awesome/.config/awesome/rc.lua @@ -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, +}) diff --git a/awesome/.config/awesome/spolybar.sh b/awesome/.config/awesome/spolybar.sh new file mode 100755 index 0000000..e54246e --- /dev/null +++ b/awesome/.config/awesome/spolybar.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +polybar left & +polybar right & +polybar middle & +polybar tray & +polybar xwindow & diff --git a/awesome/.config/awesome/theme-def.lua b/awesome/.config/awesome/theme-def.lua new file mode 100644 index 0000000..cb930a0 --- /dev/null +++ b/awesome/.config/awesome/theme-def.lua @@ -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 diff --git a/hypr/.config/hypr/hyprland.conf b/hypr/.config/hypr/hyprland.conf new file mode 100644 index 0000000..c82d9b7 --- /dev/null +++ b/hypr/.config/hypr/hyprland.conf @@ -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 diff --git a/hypr/.config/hypr/hyprpaper.conf b/hypr/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..74256f0 --- /dev/null +++ b/hypr/.config/hypr/hyprpaper.conf @@ -0,0 +1,3 @@ +preload = /home/pjark/.wallpapers/catppuccin_waves.png +wallpaper = , /home/pjark/.wallpapers/catppuccin_waves.png +splash = false diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf new file mode 100644 index 0000000..25d25cb --- /dev/null +++ b/kitty/.config/kitty/kitty.conf @@ -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 diff --git a/polybar/.config/polybar/config.ini b/polybar/.config/polybar/config.ini new file mode 100644 index 0000000..734af34 --- /dev/null +++ b/polybar/.config/polybar/config.ini @@ -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 = +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 = +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 = +format-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 diff --git a/polybar/.config/polybar/weather.py b/polybar/.config/polybar/weather.py new file mode 100644 index 0000000..269bf14 --- /dev/null +++ b/polybar/.config/polybar/weather.py @@ -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¤t_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") + diff --git a/polybar/.config/polybar/weather.sh b/polybar/.config/polybar/weather.sh new file mode 100755 index 0000000..423a9b7 --- /dev/null +++ b/polybar/.config/polybar/weather.sh @@ -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 diff --git a/rofi/.config/rofi/colors/adapta.rasi b/rofi/.config/rofi/colors/adapta.rasi new file mode 100644 index 0000000..dcde9e5 --- /dev/null +++ b/rofi/.config/rofi/colors/adapta.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #222D32FF; + background-alt: #29353BFF; + foreground: #B8C2C6FF; + selected: #00BCD4FF; + active: #21FF90FF; + urgent: #FF4B60FF; +} diff --git a/rofi/.config/rofi/colors/arc.rasi b/rofi/.config/rofi/colors/arc.rasi new file mode 100644 index 0000000..0dfb773 --- /dev/null +++ b/rofi/.config/rofi/colors/arc.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #2F343FFF; + background-alt: #383C4AFF; + foreground: #BAC5D0FF; + selected: #5294E2FF; + active: #98C379FF; + urgent: #E06B74FF; +} diff --git a/rofi/.config/rofi/colors/black.rasi b/rofi/.config/rofi/colors/black.rasi new file mode 100644 index 0000000..fa7b76f --- /dev/null +++ b/rofi/.config/rofi/colors/black.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #000000FF; + background-alt: #101010FF; + foreground: #FFFFFFFF; + selected: #62AEEFFF; + active: #98C379FF; + urgent: #E06B74FF; +} diff --git a/rofi/.config/rofi/colors/catppuccin.rasi b/rofi/.config/rofi/colors/catppuccin.rasi new file mode 100644 index 0000000..62c5945 --- /dev/null +++ b/rofi/.config/rofi/colors/catppuccin.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1E1D2FFF; + background-alt: #282839FF; + foreground: #D9E0EEFF; + selected: #7AA2F7FF; + active: #ABE9B3FF; + urgent: #F28FADFF; +} diff --git a/rofi/.config/rofi/colors/cyberpunk.rasi b/rofi/.config/rofi/colors/cyberpunk.rasi new file mode 100644 index 0000000..f5fa0e7 --- /dev/null +++ b/rofi/.config/rofi/colors/cyberpunk.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #000B1EFF; + background-alt: #0A1528FF; + foreground: #0ABDC6FF; + selected: #0ABDC6FF; + active: #00FF00FF; + urgent: #FF0000FF; +} diff --git a/rofi/.config/rofi/colors/dracula.rasi b/rofi/.config/rofi/colors/dracula.rasi new file mode 100644 index 0000000..7ae606d --- /dev/null +++ b/rofi/.config/rofi/colors/dracula.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1E1F29FF; + background-alt: #282A36FF; + foreground: #FFFFFFFF; + selected: #BD93F9FF; + active: #50FA7BFF; + urgent: #FF5555FF; +} diff --git a/rofi/.config/rofi/colors/everforest.rasi b/rofi/.config/rofi/colors/everforest.rasi new file mode 100644 index 0000000..83d4f71 --- /dev/null +++ b/rofi/.config/rofi/colors/everforest.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #323D43FF; + background-alt: #3C474DFF; + foreground: #DAD1BEFF; + selected: #7FBBB3FF; + active: #A7C080FF; + urgent: #E67E80FF; +} diff --git a/rofi/.config/rofi/colors/gruvbox.rasi b/rofi/.config/rofi/colors/gruvbox.rasi new file mode 100644 index 0000000..2ee85d0 --- /dev/null +++ b/rofi/.config/rofi/colors/gruvbox.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #282828FF; + background-alt: #353535FF; + foreground: #EBDBB2FF; + selected: #83A598FF; + active: #B8BB26FF; + urgent: #FB4934FF; +} diff --git a/rofi/.config/rofi/colors/lovelace.rasi b/rofi/.config/rofi/colors/lovelace.rasi new file mode 100644 index 0000000..80140ee --- /dev/null +++ b/rofi/.config/rofi/colors/lovelace.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1D1F28FF; + background-alt: #282A36FF; + foreground: #FDFDFDFF; + selected: #79E6F3FF; + active: #5ADECDFF; + urgent: #F37F97FF; +} diff --git a/rofi/.config/rofi/colors/navy.rasi b/rofi/.config/rofi/colors/navy.rasi new file mode 100644 index 0000000..1289f53 --- /dev/null +++ b/rofi/.config/rofi/colors/navy.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #021B21FF; + background-alt: #0C252BFF; + foreground: #F2F1B9FF; + selected: #44B5B1FF; + active: #7CBF9EFF; + urgent: #C2454EFF; +} diff --git a/rofi/.config/rofi/colors/nord.rasi b/rofi/.config/rofi/colors/nord.rasi new file mode 100644 index 0000000..c6bc05d --- /dev/null +++ b/rofi/.config/rofi/colors/nord.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #2E3440FF; + background-alt: #383E4AFF; + foreground: #E5E9F0FF; + selected: #81A1C1FF; + active: #A3BE8CFF; + urgent: #BF616AFF; +} diff --git a/rofi/.config/rofi/colors/onedark.rasi b/rofi/.config/rofi/colors/onedark.rasi new file mode 100644 index 0000000..7c76108 --- /dev/null +++ b/rofi/.config/rofi/colors/onedark.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #1E2127FF; + background-alt: #282B31FF; + foreground: #FFFFFFFF; + selected: #61AFEFFF; + active: #98C379FF; + urgent: #E06C75FF; +} diff --git a/rofi/.config/rofi/colors/paper.rasi b/rofi/.config/rofi/colors/paper.rasi new file mode 100644 index 0000000..c3d76e8 --- /dev/null +++ b/rofi/.config/rofi/colors/paper.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #F1F1F1FF; + background-alt: #E0E0E0FF; + foreground: #252525FF; + selected: #008EC4FF; + active: #10A778FF; + urgent: #C30771FF; +} diff --git a/rofi/.config/rofi/colors/solarized.rasi b/rofi/.config/rofi/colors/solarized.rasi new file mode 100644 index 0000000..9051e13 --- /dev/null +++ b/rofi/.config/rofi/colors/solarized.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #002B36FF; + background-alt: #073642FF; + foreground: #EEE8D5FF; + selected: #268BD2FF; + active: #859900FF; + urgent: #DC322FFF; +} diff --git a/rofi/.config/rofi/colors/tokyonight.rasi b/rofi/.config/rofi/colors/tokyonight.rasi new file mode 100644 index 0000000..1145cbd --- /dev/null +++ b/rofi/.config/rofi/colors/tokyonight.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Levi Lacoss (fishyfishfish55) + * Github : @fishyfishfish55 + * + * Colors + **/ + +* { + background: #15161EFF; + background-alt: #1A1B26FF; + foreground: #C0CAF5FF; + selected: #33467CFF; + active: #414868FF; + urgent: #F7768EFF; +} diff --git a/rofi/.config/rofi/colors/yousai.rasi b/rofi/.config/rofi/colors/yousai.rasi new file mode 100644 index 0000000..757cab3 --- /dev/null +++ b/rofi/.config/rofi/colors/yousai.rasi @@ -0,0 +1,16 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Colors + **/ + +* { + background: #F5E7DEFF; + background-alt: #EBDCD2FF; + foreground: #34302DFF; + selected: #D97742FF; + active: #BF8F60FF; + urgent: #B23636FF; +} diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi index 2658c20..58a5e0d 100644 --- a/rofi/.config/rofi/config.rasi +++ b/rofi/.config/rofi/config.rasi @@ -1,2614 +1,181 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rofi/basic/.config/rofi/config.rasi at main · catppuccin/rofi · GitHub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content - - - - - - - - - - - - - - - - - - - - - - - - - - - Navigation Menu - - - Toggle navigation - - - - - - - - - - - - - - - - - - - - - - Sign in - - - - - - - - - - - - Product - - - - - - - - - - - - - - Actions - Automate any workflow - - - - - - - - - - - - Packages - Host and manage packages - - - - - - - - - - - - Security - Find and fix vulnerabilities - - - - - - - - - - - - Codespaces - Instant dev environments - - - - - - - - - - - - GitHub Copilot - Write better code with AI - - - - - - - - - - - - Code review - Manage code changes - - - - - - - - - - - - Issues - Plan and track work - - - - - - - - - - - - Discussions - Collaborate outside of code - - - - - - - - - Explore - - - - All features - - - - - - - Documentation - - - - - - - - - GitHub Skills - - - - - - - - - Blog - - - - - - - - - - - - - - Solutions - - - - - - - By size - - - - Enterprise - - - - - - - Teams - - - - - - - Startups - - - - - - - - By industry - - - - Healthcare - - - - - - - Financial services - - - - - - - Manufacturing - - - - - - - - By use case - - - - CI/CD & Automation - - - - - - - DevOps - - - - - - - DevSecOps - - - - - - - - - - - - Resources - - - - - - - Topics - - - - AI - - - - - - - DevOps - - - - - - - Security - - - - - - - Software Development - - - - - - - View all - - - - - - - - Explore - - - - Learning Pathways - - - - - - - - - White papers, Ebooks, Webinars - - - - - - - - - Customer Stories - - - - - - - Partners - - - - - - - - - - - - - - - Open Source - - - - - - - - - - - - GitHub Sponsors - Fund open source developers - - - - - - - - - - - - - - The ReadME Project - GitHub community articles - - - - - - - - - Repositories - - - - Topics - - - - - - - Trending - - - - - - - Collections - - - - - - - - - - - - - Enterprise - - - - - - - - - - - - - - Enterprise platform - AI-powered developer platform - - - - - - - - - Available add-ons - - - - - - - - Advanced Security - Enterprise-grade security features - - - - - - - - - - - - GitHub Copilot - Enterprise-grade AI features - - - - - - - - - - - - Premium Support - Enterprise-grade 24/7 support - - - - - - - - - - - - - Pricing - - - - - - - - - - - - - - - - - - Search or jump to... - - - - - - - - - - - - Search code, repositories, users, issues, pull requests... - - - - - - - - Search - - - - - - - - - - - - - - - Clear - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Search syntax tips - - - - - - - - - - - - - - - - - - Provide feedback - - - - - - - - - - - - - - We read every piece of feedback, and take your input very seriously. - - - Include my email address so I can be contacted - - - - - - - - - - - - - - Saved searches - - Use saved searches to filter your results more quickly - - - - - - - - - - - - - - - - - - - - Name - - - - - - - - Query - - - - - To see all available qualifiers, see our documentation. - - - - - - - - - - - - - - - - - - Sign in - - - - - Sign up - - Reseting focus - - - - - - - - - - - - You signed in with another tab or window. Reload to refresh your session. - You signed out in another tab or window. Reload to refresh your session. - You switched accounts on another tab or window. Reload to refresh your session. - - - - -Dismiss alert - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ message }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catppuccin - - / - - rofi - - - Public - - - - - - - - - - - - - - - - - -Notifications - You must be signed in to change notification settings - - - - - - -Fork - 27 - - - - - - - - - Star - 308 - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - Issues - 1 - - - - - - - - - - - Pull requests - 3 - - - - - - - - - - - Actions - - - - - - - - - - - - Projects - 0 - - - - - - - - - - - Security - - - - - - - - - - - Insights - - - - - - - - - - - -Additional navigation options - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - Issues - - - - - - - - - - - - - - - - Pull requests - - - - - - - - - - - - - - - - Actions - - - - - - - - - - - - - - - - Projects - - - - - - - - - - - - - - - - Security - - - - - - - - - - - - - - - - Insights - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Files mainBreadcrumbsrofi/basic/.config/rofi/config.rasi Blame Blame Latest commit HistoryHistory18 lines (16 loc) · 429 Bytes mainBreadcrumbsrofi/basic/.config/rofi/config.rasiTopFile metadata and controlsCodeBlame18 lines (16 loc) · 429 BytesRaw1234567891011121314151617configuration{ modi: "run,drun,window"; icon-theme: "Oranchelo"; show-icons: true; terminal: "alacritty"; drun-display-format: "{icon} {name}"; location: 0; disable-history: false; hide-scrollbar: true; display-drun: " Apps "; display-run: " Run "; display-window: " Window"; display-Network: " Network"; sidebar-mode: true;} -@theme "catppuccin-mocha" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You can’t perform that action at this time. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Configuration For Rofi Version: 1.7.3 + **/ + +configuration { + /*---------- General setting ----------*/ + modi: "drun,run,filebrowser,window"; + case-sensitive: false; + cycle: true; + filter: ""; + scroll-method: 0; + normalize-match: true; + show-icons: true; + icon-theme: "Papirus"; +/* cache-dir: ;*/ + steal-focus: false; +/* dpi: -1;*/ + + /*---------- Matching setting ----------*/ + matching: "normal"; + tokenize: true; + + /*---------- SSH settings ----------*/ + ssh-client: "ssh"; + ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]"; + parse-hosts: true; + parse-known-hosts: true; + + /*---------- Drun settings ----------*/ + drun-categories: ""; + drun-match-fields: "name,generic,exec,categories,keywords"; + drun-display-format: "{name} [({generic})]"; + drun-show-actions: false; + drun-url-launcher: "xdg-open"; + drun-use-desktop-cache: false; + drun-reload-desktop-cache: false; + drun { + /** Parse user desktop files. */ + parse-user: true; + /** Parse system desktop files. */ + parse-system: true; + } + + /*---------- Run settings ----------*/ + run-command: "{cmd}"; + run-list-command: ""; + run-shell-command: "{terminal} -e {cmd}"; + + /*---------- Fallback Icon ----------*/ + run,drun { + fallback-icon: "application-x-addon"; + } + + /*---------- Window switcher settings ----------*/ + window-match-fields: "title,class,role,name,desktop"; + window-command: "wmctrl -i -R {window}"; + window-format: "{w} - {c} - {t:0}"; + window-thumbnail: false; + + /*---------- Combi settings ----------*/ +/* combi-modi: "window,run";*/ +/* combi-hide-mode-prefix: false;*/ +/* combi-display-format: "{mode} {text}";*/ + + /*---------- History and Sorting ----------*/ + disable-history: false; + sorting-method: "normal"; + max-history-size: 25; + + /*---------- Display setting ----------*/ + display-window: "Windows"; + display-windowcd: "Window CD"; + display-run: "Run"; + display-ssh: "SSH"; + display-drun: "Apps"; + display-combi: "Combi"; + display-keys: "Keys"; + display-filebrowser: "Files"; + + /*---------- Misc setting ----------*/ + terminal: "rofi-sensible-terminal"; + font: "Mono 12"; + sort: false; + threads: 0; + click-to-exit: true; +/* ignored-prefixes: "";*/ +/* pid: "/run/user/1000/rofi.pid";*/ + + /*---------- File browser settings ----------*/ + filebrowser { +/* directory: "/home";*/ + directories-first: true; + sorting-method: "name"; + } + + /*---------- Other settings ----------*/ + timeout { + action: "kb-cancel"; + delay: 0; + } + + /*---------- Keybindings ----------*/ +/* + kb-primary-paste: "Control+V,Shift+Insert"; + kb-secondary-paste: "Control+v,Insert"; + kb-clear-line: "Control+w"; + kb-move-front: "Control+a"; + kb-move-end: "Control+e"; + kb-move-word-back: "Alt+b,Control+Left"; + kb-move-word-forward: "Alt+f,Control+Right"; + kb-move-char-back: "Left,Control+b"; + kb-move-char-forward: "Right,Control+f"; + kb-remove-word-back: "Control+Alt+h,Control+BackSpace"; + kb-remove-word-forward: "Control+Alt+d"; + kb-remove-char-forward: "Delete,Control+d"; + kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h"; + kb-remove-to-eol: "Control+k"; + kb-remove-to-sol: "Control+u"; + kb-accept-entry: "Control+j,Control+m,Return,KP_Enter"; + kb-accept-custom: "Control+Return"; + kb-accept-custom-alt: "Control+Shift+Return"; + kb-accept-alt: "Shift+Return"; + kb-delete-entry: "Shift+Delete"; + kb-mode-next: "Shift+Right,Control+Tab"; + kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; + kb-mode-complete: "Control+l"; + kb-row-left: "Control+Page_Up"; + kb-row-right: "Control+Page_Down"; + kb-row-down: "Down,Control+n"; + kb-page-prev: "Page_Up"; + kb-page-next: "Page_Down"; + kb-row-first: "Home,KP_Home"; + kb-row-last: "End,KP_End"; + kb-row-select: "Control+space"; + kb-screenshot: "Alt+S"; + kb-ellipsize: "Alt+period"; + kb-toggle-case-sensitivity: "grave,dead_grave"; + kb-toggle-sort: "Alt+grave"; + kb-cancel: "Escape,Control+g,Control+bracketleft"; + kb-custom-1: "Alt+1"; + kb-custom-2: "Alt+2"; + kb-custom-3: "Alt+3"; + kb-custom-4: "Alt+4"; + kb-custom-5: "Alt+5"; + kb-custom-6: "Alt+6"; + kb-custom-7: "Alt+7"; + kb-custom-8: "Alt+8"; + kb-custom-9: "Alt+9"; + kb-custom-10: "Alt+0"; + kb-custom-11: "Alt+exclam"; + kb-custom-12: "Alt+at"; + kb-custom-13: "Alt+numbersign"; + kb-custom-14: "Alt+dollar"; + kb-custom-15: "Alt+percent"; + kb-custom-16: "Alt+dead_circumflex"; + kb-custom-17: "Alt+ampersand"; + kb-custom-18: "Alt+asterisk"; + kb-custom-19: "Alt+parenleft"; + kb-select-1: "Super+1"; + kb-select-2: "Super+2"; + kb-select-3: "Super+3"; + kb-select-4: "Super+4"; + kb-select-5: "Super+5"; + kb-select-6: "Super+6"; + kb-select-7: "Super+7"; + kb-select-8: "Super+8"; + kb-select-9: "Super+9"; + kb-select-10: "Super+0"; + ml-row-left: "ScrollLeft"; + ml-row-right: "ScrollRight"; + ml-row-up: "ScrollUp"; + ml-row-down: "ScrollDown"; + me-select-entry: "MousePrimary"; + me-accept-entry: "MouseDPrimary"; + me-accept-custom: "Control+MouseDPrimary"; +*/ +} diff --git a/rofi/.config/rofi/images/a.png b/rofi/.config/rofi/images/a.png new file mode 100644 index 0000000..d70c5fb Binary files /dev/null and b/rofi/.config/rofi/images/a.png differ diff --git a/rofi/.config/rofi/images/alena-aenami-bluehour-1k-crop.png b/rofi/.config/rofi/images/alena-aenami-bluehour-1k-crop.png new file mode 100644 index 0000000..292c405 Binary files /dev/null and b/rofi/.config/rofi/images/alena-aenami-bluehour-1k-crop.png differ diff --git a/rofi/.config/rofi/images/alena-aenami-portal-crop.png b/rofi/.config/rofi/images/alena-aenami-portal-crop.png new file mode 100644 index 0000000..fda6a22 Binary files /dev/null and b/rofi/.config/rofi/images/alena-aenami-portal-crop.png differ diff --git a/rofi/.config/rofi/images/b.png b/rofi/.config/rofi/images/b.png new file mode 100644 index 0000000..34214a2 Binary files /dev/null and b/rofi/.config/rofi/images/b.png differ diff --git a/rofi/.config/rofi/images/c.png b/rofi/.config/rofi/images/c.png new file mode 100644 index 0000000..9e18e5f Binary files /dev/null and b/rofi/.config/rofi/images/c.png differ diff --git a/rofi/.config/rofi/images/d.png b/rofi/.config/rofi/images/d.png new file mode 100644 index 0000000..5f68a1b Binary files /dev/null and b/rofi/.config/rofi/images/d.png differ diff --git a/rofi/.config/rofi/images/e.jpg b/rofi/.config/rofi/images/e.jpg new file mode 100644 index 0000000..51995e4 Binary files /dev/null and b/rofi/.config/rofi/images/e.jpg differ diff --git a/rofi/.config/rofi/images/f.png b/rofi/.config/rofi/images/f.png new file mode 100644 index 0000000..fb69e73 Binary files /dev/null and b/rofi/.config/rofi/images/f.png differ diff --git a/rofi/.config/rofi/images/flowers-1.png b/rofi/.config/rofi/images/flowers-1.png new file mode 100644 index 0000000..155b593 Binary files /dev/null and b/rofi/.config/rofi/images/flowers-1.png differ diff --git a/rofi/.config/rofi/images/flowers-2.png b/rofi/.config/rofi/images/flowers-2.png new file mode 100644 index 0000000..e4bf205 Binary files /dev/null and b/rofi/.config/rofi/images/flowers-2.png differ diff --git a/rofi/.config/rofi/images/flowers-3.png b/rofi/.config/rofi/images/flowers-3.png new file mode 100644 index 0000000..2c6f3a6 Binary files /dev/null and b/rofi/.config/rofi/images/flowers-3.png differ diff --git a/rofi/.config/rofi/images/g.png b/rofi/.config/rofi/images/g.png new file mode 100644 index 0000000..d42e1f4 Binary files /dev/null and b/rofi/.config/rofi/images/g.png differ diff --git a/rofi/.config/rofi/images/gradient.png b/rofi/.config/rofi/images/gradient.png new file mode 100644 index 0000000..e51c308 Binary files /dev/null and b/rofi/.config/rofi/images/gradient.png differ diff --git a/rofi/.config/rofi/images/h.jpg b/rofi/.config/rofi/images/h.jpg new file mode 100644 index 0000000..7829121 Binary files /dev/null and b/rofi/.config/rofi/images/h.jpg differ diff --git a/rofi/.config/rofi/images/i.jpg b/rofi/.config/rofi/images/i.jpg new file mode 100644 index 0000000..f31ee84 Binary files /dev/null and b/rofi/.config/rofi/images/i.jpg differ diff --git a/rofi/.config/rofi/images/j.jpg b/rofi/.config/rofi/images/j.jpg new file mode 100644 index 0000000..e70a715 Binary files /dev/null and b/rofi/.config/rofi/images/j.jpg differ diff --git a/rofi/.config/rofi/images/paper.png b/rofi/.config/rofi/images/paper.png new file mode 100644 index 0000000..4e073fd Binary files /dev/null and b/rofi/.config/rofi/images/paper.png differ diff --git a/rofi/.config/rofi/images/user.jpeg b/rofi/.config/rofi/images/user.jpeg new file mode 100644 index 0000000..3490fed Binary files /dev/null and b/rofi/.config/rofi/images/user.jpeg differ diff --git a/rofi/.config/rofi/images/yoi1-crop.png b/rofi/.config/rofi/images/yoi1-crop.png new file mode 100644 index 0000000..e820162 Binary files /dev/null and b/rofi/.config/rofi/images/yoi1-crop.png differ diff --git a/rofi/.config/rofi/images/yoi2.jpg b/rofi/.config/rofi/images/yoi2.jpg new file mode 100644 index 0000000..78f88c1 Binary files /dev/null and b/rofi/.config/rofi/images/yoi2.jpg differ diff --git a/rofi/.config/rofi/launchers/type-6/launcher.sh b/rofi/.config/rofi/launchers/type-6/launcher.sh new file mode 100644 index 0000000..5f8e6c4 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/launcher.sh @@ -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 diff --git a/rofi/.config/rofi/launchers/type-6/launcher1.sh b/rofi/.config/rofi/launchers/type-6/launcher1.sh new file mode 100644 index 0000000..ba15d51 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/launcher1.sh @@ -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 diff --git a/rofi/.config/rofi/launchers/type-6/launcher2.sh b/rofi/.config/rofi/launchers/type-6/launcher2.sh new file mode 100644 index 0000000..b7eda29 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/launcher2.sh @@ -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 diff --git a/rofi/.config/rofi/launchers/type-6/style-10.rasi b/rofi/.config/rofi/launchers/type-6/style-10.rasi new file mode 100644 index 0000000..c0101d2 --- /dev/null +++ b/rofi/.config/rofi/launchers/type-6/style-10.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; +} diff --git a/rofi/.config/rofi/powermenu/type-6/powermenu.sh b/rofi/.config/rofi/powermenu/type-6/powermenu.sh new file mode 100644 index 0000000..fac9fb7 --- /dev/null +++ b/rofi/.config/rofi/powermenu/type-6/powermenu.sh @@ -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 diff --git a/rofi/.config/rofi/powermenu/type-6/style-1.rasi b/rofi/.config/rofi/powermenu/type-6/style-1.rasi new file mode 100644 index 0000000..ed82580 --- /dev/null +++ b/rofi/.config/rofi/powermenu/type-6/style-1.rasi @@ -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); +} diff --git a/wallpapers/.wallpapers/catppuccin_waves.png b/wallpapers/.wallpapers/catppuccin_waves.png new file mode 100644 index 0000000..65f9caf Binary files /dev/null and b/wallpapers/.wallpapers/catppuccin_waves.png differ diff --git "a/waybar/.config/waybar/\\" "b/waybar/.config/waybar/\\" new file mode 100644 index 0000000..2116a0d --- /dev/null +++ "b/waybar/.config/waybar/\\" @@ -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 diff --git a/waybar/.config/waybar/config b/waybar/.config/waybar/config new file mode 100644 index 0000000..846609d --- /dev/null +++ b/waybar/.config/waybar/config @@ -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": " {:%H:%M %d/%m} ", + //"format": "{:%a}", + "tooltip-format": "{calendar}", + "calendar": { + "mode" : "month", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + }, + + "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} {percent}%", + "format-icons": ["", "", ""], + "tooltip": false, + }, + + "pulseaudio": { + "format": "{icon} {volume}%", + "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, + }, + + "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 + }, + +} diff --git a/waybar/.config/waybar/config.save b/waybar/.config/waybar/config.save new file mode 100644 index 0000000..0c31c56 --- /dev/null +++ b/waybar/.config/waybar/config.save @@ -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} {percent}", + "format-icons": ["", ""], + "tooltip": false, + }, + + "pulseaudio": { + "format": "{icon} {volume}", + "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, + }, +} diff --git a/waybar/.config/waybar/config.save.1 b/waybar/.config/waybar/config.save.1 new file mode 100644 index 0000000..6d31d6e --- /dev/null +++ b/waybar/.config/waybar/config.save.1 @@ -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": "{calendar}", + "calendar": { + "mode" : "month", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + }, + + "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} {percent}", + "format-icons": ["", ""], + "tooltip": false, + }, + + "pulseaudio": { + "format": "{icon} {volume}", + "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, + }, +} diff --git a/waybar/.config/waybar/config.save.2 b/waybar/.config/waybar/config.save.2 new file mode 100644 index 0000000..effd104 --- /dev/null +++ b/waybar/.config/waybar/config.save.2 @@ -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": " {:%H:%M %d/%m} ", + //"format": "{:%a}", + "tooltip-format": "{calendar}", + "calendar": { + "mode" : "month", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + }, + + "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} {percent}", + "format-icons": ["", "", ""], + "tooltip": false, + }, + + "pulseaudio": { + "format": "{icon} {volume}", + "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 + }, +} diff --git a/waybar/.config/waybar/custom-scripts/mediaplayer.py b/waybar/.config/waybar/custom-scripts/mediaplayer.py new file mode 100644 index 0000000..3da53e9 --- /dev/null +++ b/waybar/.config/waybar/custom-scripts/mediaplayer.py @@ -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() diff --git a/waybar/.config/waybar/custom-scripts/update b/waybar/.config/waybar/custom-scripts/update new file mode 100755 index 0000000..61a35dc --- /dev/null +++ b/waybar/.config/waybar/custom-scripts/update @@ -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 diff --git a/waybar/.config/waybar/custom-scripts/updates b/waybar/.config/waybar/custom-scripts/updates new file mode 100755 index 0000000..b6b0be5 --- /dev/null +++ b/waybar/.config/waybar/custom-scripts/updates @@ -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 diff --git a/waybar/.config/waybar/mocha.css b/waybar/.config/waybar/mocha.css new file mode 100644 index 0000000..98e218a --- /dev/null +++ b/waybar/.config/waybar/mocha.css @@ -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; diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css new file mode 100644 index 0000000..00c4f66 --- /dev/null +++ b/waybar/.config/waybar/style.css @@ -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; +} diff --git a/wezterm/.wezterm.lua b/wezterm/.wezterm.lua index 65213d1..75bdd94 100644 --- a/wezterm/.wezterm.lua +++ b/wezterm/.wezterm.lua @@ -3,7 +3,7 @@ local wezterm = require("wezterm") -- This table will hold the configuration. local config = {} - +config.enable_wayland = false config.default_prog = { "usr/bin/zsh", "-l" } -- In newer versions of wezterm, use the config_builder which will -- help provide clearer error messages diff --git a/wofi/.config/wofi/.editorconfig b/wofi/.config/wofi/.editorconfig new file mode 100644 index 0000000..d86ac02 --- /dev/null +++ b/wofi/.config/wofi/.editorconfig @@ -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 diff --git a/wofi/.config/wofi/LICENSE b/wofi/.config/wofi/LICENSE new file mode 100644 index 0000000..006383b --- /dev/null +++ b/wofi/.config/wofi/LICENSE @@ -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. diff --git a/wofi/.config/wofi/README.md b/wofi/.config/wofi/README.md new file mode 100644 index 0000000..f6786d8 --- /dev/null +++ b/wofi/.config/wofi/README.md @@ -0,0 +1,87 @@ + + + + Catppuccin for Wofi + + + + + + + + + + + + + +## Previews + + +🌻 Latte + + + +🪴 Frappé + + + +🌺 Macchiato + + + +🌿 Mocha + + + +## 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 /config --style //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) + + + + + + + + + Copyright © 2021-present Catppuccin Org + + + + + diff --git a/wofi/.config/wofi/assets/frappe.webp b/wofi/.config/wofi/assets/frappe.webp new file mode 100644 index 0000000..9de6678 Binary files /dev/null and b/wofi/.config/wofi/assets/frappe.webp differ diff --git a/wofi/.config/wofi/assets/latte.webp b/wofi/.config/wofi/assets/latte.webp new file mode 100644 index 0000000..50990c6 Binary files /dev/null and b/wofi/.config/wofi/assets/latte.webp differ diff --git a/wofi/.config/wofi/assets/macchiato.webp b/wofi/.config/wofi/assets/macchiato.webp new file mode 100644 index 0000000..279c04d Binary files /dev/null and b/wofi/.config/wofi/assets/macchiato.webp differ diff --git a/wofi/.config/wofi/assets/mocha.webp b/wofi/.config/wofi/assets/mocha.webp new file mode 100644 index 0000000..482b71f Binary files /dev/null and b/wofi/.config/wofi/assets/mocha.webp differ diff --git a/wofi/.config/wofi/assets/preview.webp b/wofi/.config/wofi/assets/preview.webp new file mode 100644 index 0000000..ef75cd7 Binary files /dev/null and b/wofi/.config/wofi/assets/preview.webp differ diff --git a/wofi/.config/wofi/colors.css b/wofi/.config/wofi/colors.css new file mode 100644 index 0000000..0e914e2 --- /dev/null +++ b/wofi/.config/wofi/colors.css @@ -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%); +} diff --git a/wofi/.config/wofi/config/config b/wofi/.config/wofi/config/config new file mode 100644 index 0000000..eb34489 --- /dev/null +++ b/wofi/.config/wofi/config/config @@ -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 diff --git a/wofi/.config/wofi/run.sh b/wofi/.config/wofi/run.sh new file mode 100644 index 0000000..16eb81c --- /dev/null +++ b/wofi/.config/wofi/run.sh @@ -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 diff --git a/wofi/.config/wofi/src/frappe/style.css b/wofi/.config/wofi/src/frappe/style.css new file mode 100644 index 0000000..85742ae --- /dev/null +++ b/wofi/.config/wofi/src/frappe/style.css @@ -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; +} diff --git a/wofi/.config/wofi/src/latte/style.css b/wofi/.config/wofi/src/latte/style.css new file mode 100644 index 0000000..dc37414 --- /dev/null +++ b/wofi/.config/wofi/src/latte/style.css @@ -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; +} diff --git a/wofi/.config/wofi/src/macchiato/style.css b/wofi/.config/wofi/src/macchiato/style.css new file mode 100644 index 0000000..3aa9a07 --- /dev/null +++ b/wofi/.config/wofi/src/macchiato/style.css @@ -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; +} diff --git a/wofi/.config/wofi/src/mocha/style.css b/wofi/.config/wofi/src/mocha/style.css new file mode 100644 index 0000000..34847f2 --- /dev/null +++ b/wofi/.config/wofi/src/mocha/style.css @@ -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; +}
We read every piece of feedback, and take your input very seriously.
- To see all available qualifiers, see our documentation. -
+ + + +
+ +
+ Copyright © 2021-present Catppuccin Org +