This commit is contained in:
2026-07-24 11:51:58 -03:00
parent 57f2689be5
commit fedb2b87df
17 changed files with 492 additions and 463 deletions
@@ -38,6 +38,12 @@ return {
desc = "[O]bsidian [T]emplate",
mode = "n",
},
{
"<leader>ow",
":ObsidianWorkspace<CR>",
desc = "[O]bsidian [W]orkspace",
mode = "n",
},
},
opts = {
@@ -122,12 +128,16 @@ return {
name = "personal",
path = "~/docs/personal",
},
{
name = "hermes",
path = "/mnt/obsidian",
},
},
daily_notes = {
folder = "journal",
folder = "Journal",
date_format = "%Y-%m-%d",
default_tags = { "journal" },
template = "journal"
template = "Daily Note",
},
completion = {
nvim_cmp = true,
@@ -135,7 +145,7 @@ return {
},
templates = {
subdir = "templates",
subdir = "Templates",
date_format = "%Y-%m-%d",
time_format = "%H:%M",
},
@@ -24,7 +24,16 @@ return {
return one.row
end
require("nvim-silicon").setup({
font = "JetBrainsMono Nerd Font=24",
font = "Berkeley Mono Nerd Font Mono=24",
theme = "gruvbox-dark",
background = "#bdae93",
pad_horiz = 100,
pad_vert = 80,
line_pad = 2,
shadow_blur_radius = 24,
shadow_offset_x = 10,
shadow_offset_y = 10,
shadow_color = "#1d2021",
no_window_controls = true,
no_line_number = false,
line_offset = get_visual() + 1,
+6 -1
View File
@@ -7,7 +7,12 @@
let
pinentry-wrapper = pkgs.writeShellScriptBin "pinentry-wrapper" ''
if [ -n "''${SSH_CONNECTION:-}" ] || [ -n "''${SSH_TTY:-}" ]; then
# ponytail: gpg-agent's env is captured at boot (often on tty1), so SSH_* checks
# from the agent miss SSH sessions. Fall back to curses when no usable display
# is available, since rofi needs WAYLAND_DISPLAY/DISPLAY the agent may not have.
if [ -n "''${SSH_CONNECTION:-}" ] \
|| [ -n "''${SSH_TTY:-}" ] \
|| [ -z "''${WAYLAND_DISPLAY:-}" ] && [ -z "''${DISPLAY:-}" ]; then
exec ${pkgs.pinentry-curses}/bin/pinentry-curses "$@"
else
exec ${pkgs.pinentry-rofi}/bin/pinentry-rofi "$@"
+18 -438
View File
@@ -1,23 +1,18 @@
{ lib, config, ... }:
let
background = "#282828"; # bg0 — main dark background
background-alt = "#3c3836"; # bg1 — slightly lighter panels/buttons
background-sec = "#1d2021"; # bg0_h — darker, for mpris/volume contrast
text = "#ebdbb2"; # fg1 — main foreground
selected = "#83a598"; # blue — accent for borders/active states
urgent = "#fb4934"; # bright red — critical notifications
hover = "#504945"; # bg2 — hover highlight
in
{
options.custom = {
swaync.enable = lib.mkEnableOption "enable swaync - color cat alternative";
swaync.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "enable swaync - notification";
};
};
config = lib.mkIf config.custom.swaync.enable {
services.swaync = {
enable = true;
settings = {
positionX = "right";
positionX = "left";
positionY = "top";
cssPriority = "user";
@@ -28,28 +23,22 @@ in
control-center-margin-right = 1;
control-center-margin-left = 0;
notification-window-width = 360;
notification-window-width = 380;
notification-icon-size = 40;
notification-body-image-height = 120;
notification-body-image-width = 160;
timeout = 4;
timeout-low = 2;
timeout-critical = 6;
timeout = 6;
timeout-low = 4;
timeout-critical = 8;
fit-to-screen = false;
keyboard-shortcuts = true;
image-visibility = "when-available";
transition-time = 200;
transition-time = 250;
hide-on-clear = true;
hide-on-action = false;
script-fail-notify = true;
scripts = {
example-script = {
exec = "echo 'Do something...'";
urgency = "Normal";
};
};
notification-visibility = {
example-name = {
state = "muted";
@@ -112,422 +101,13 @@ in
};
};
};
style = ''
* {
color: ${text};
background-color: ${background};
all: unset;
font-size: 12px;
font-family: "BerkeleyMono Nerd Font Propo";
transition: 200ms;
}
.notification-row {
outline: none;
margin: 0;
padding: 0px;
}
.floating-notifications.background .notification-row .notification-background {
background: alpha(${background}, 0.9);
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.6);
border: 1px solid ${selected};
border-radius: 14px;
margin: 10px;
padding: 0;
}
.floating-notifications.background
.notification-row
.notification-background
.notification {
padding: 6px;
border-radius: 12px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification.critical {
border: 2px solid ${urgent};
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content {
margin: 14px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3.4em;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 8px;
background-color: ${background-alt};
margin: 6px;
border: 1px solid transparent;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background-color: ${hover};
border: 1px solid ${selected};
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: ${selected};
color: ${background};
}
.image {
margin: 10px 20px 10px 0px;
}
.summary {
font-weight: 800;
font-size: 1rem;
}
.body {
font-size: 0.8rem;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button {
margin: 6px;
padding: 2px;
border-radius: 6px;
background-color: ${background};
border: 1px solid transparent;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:hover {
background-color: ${selected};
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:active {
background-color: ${selected};
color: ${background};
}
.notification.critical progress {
background-color: ${selected};
}
.notification.low progress,
.notification.normal progress {
background-color: ${selected};
}
/* Avoid 'annoying' backgroud */
.blank-window {
background: transparent;
}
/* CONTROL CENTER ------------------------------------------------------------------------ */
.control-center {
background: alpha(${background}, 0.85);
border-radius: 16px;
border: 1px solid ${selected};
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.6);
margin: 10px;
padding: 10px;
}
/* Notifications */
.control-center .notification-row .notification-background,
.control-center
.notification-row
.notification-background
.notification.critical {
background-color: ${background-alt};
border-radius: 16px;
margin: 4px 0px;
padding: 4px;
}
.control-center
.notification-row
.notification-background
.notification.critical {
color: ${urgent};
}
.control-center
.notification-row
.notification-background
.notification
.notification-content {
margin: 6px;
padding: 8px 6px 2px 2px;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3.4em;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
background: alpha(${selected}, 0.6);
color: ${text};
border-radius: 12px;
margin: 6px;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background: ${selected};
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: ${selected};
}
/* Buttons */
.control-center .notification-row .notification-background .close-button {
background: transparent;
border-radius: 6px;
color: ${text};
margin: 0px;
padding: 4px;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: ${selected};
}
.control-center
.notification-row
.notification-background
.close-button:active {
background-color: ${selected};
}
progressbar,
progress,
trough {
border-radius: 12px;
}
progressbar {
background-color: rgba(255, 255, 255, 0.1);
}
/* Notifications expanded-group */
.notification-group {
margin: 2px 8px 2px 8px;
}
.notification-group-headers {
font-weight: bold;
font-size: 1.25rem;
color: ${text};
letter-spacing: 2px;
}
.notification-group-icon {
color: ${text};
}
.notification-group-collapse-button,
.notification-group-close-all-button {
background: transparent;
color: ${text};
margin: 4px;
border-radius: 6px;
padding: 4px;
}
.notification-group-collapse-button:hover,
.notification-group-close-all-button:hover {
background: ${hover};
}
/* WIDGETS --------------------------------------------------------------------------- */
/* Notification clear button */
.widget-title {
font-size: 1.2em;
margin: 6px;
}
.widget-title button {
background: ${background-alt};
border-radius: 6px;
padding: 4px 16px;
}
.widget-title button:hover {
background-color: ${hover};
}
.widget-title button:active {
background-color: ${selected};
}
/* Do not disturb */
.widget-dnd {
margin: 6px;
font-size: 1.2rem;
}
.widget-dnd > switch {
background: ${background-alt};
font-size: initial;
border-radius: 8px;
box-shadow: none;
padding: 2px;
}
.widget-dnd > switch:hover {
background: ${hover};
}
.widget-dnd > switch:checked {
background: ${selected};
}
.widget-dnd > switch:checked:hover {
background: ${hover};
}
.widget-dnd > switch slider {
background: ${text};
border-radius: 6px;
}
/* Buttons menu */
.widget-buttons-grid {
font-size: x-large;
padding: 6px 2px;
margin: 6px;
border-radius: 12px;
background: ${background-alt};
}
.widget-buttons-grid > flowbox > flowboxchild > button {
margin: 4px 10px;
padding: 6px 12px;
background: transparent;
border-radius: 8px;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: ${hover};
}
/* Music player */
.widget-mpris {
background: ${background-alt};
border-radius: 16px;
color: ${text};
margin: 20px 6px;
}
/* NOTE: Background need *opacity 1* otherwise will turn into the album art blurred */
.widget-mpris-player {
background-color: ${background-sec};
border-radius: 22px;
padding: 6px 14px;
margin: 6px;
}
.widget-mpris > box > button {
color: ${text};
border-radius: 20px;
}
.widget-mpris button {
color: alpha(${text}, 0.6);
}
.widget-mpris button:hover {
color: ${text};
}
.widget-mpris-album-art {
border-radius: 16px;
}
.widget-mpris-title {
font-weight: 700;
font-size: 1rem;
}
.widget-mpris-subtitle {
font-weight: 500;
font-size: 0.8rem;
}
picture.mpris-background {
opacity: 0;
}
/* Volume */
.widget-volume {
background: ${background-sec};
color: ${background};
padding: 4px;
margin: 6px;
border-radius: 6px;
}
'';
};
xdg.configFile."swaync/style.css".source =
config.lib.file.mkOutOfStoreSymlink
"${config.home.homeDirectory}/.config/colorschemes/.active/swaync/style.css";
xdg.configFile."swaync/colors.css".source =
config.lib.file.mkOutOfStoreSymlink
"${config.home.homeDirectory}/.config/colorschemes/.active/swaync/colors.css";
};
}
+46
View File
@@ -0,0 +1,46 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.custom.keyd;
defaultRemap = {
main = {
capslock = "overload(control, esc)";
};
};
defaultNoop = {
main = { };
};
in
{
options.custom.keyd = {
enable = lib.mkEnableOption "keyd (system-wide key remapping daemon)";
# Vendor:product IDs that get the capslock overload. See `keyd monitor`.
internalIds = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ "1ea7:0907" ];
example = [ "1ea7:0907" ];
description = "Device IDs to apply the capslock overload to (matched against keyd's id list).";
};
};
config = lib.mkIf cfg.enable {
services.keyd = {
enable = true;
keyboards = {
internal = {
ids = cfg.internalIds;
settings = defaultRemap;
};
default = {
ids = [ "*" ];
settings = defaultNoop;
};
};
};
};
}