added bar bar

This commit is contained in:
2026-09-14 17:51:18 +01:00
parent bc9794ff00
commit f491665a54
6 changed files with 496 additions and 175 deletions
+61
View File
@@ -0,0 +1,61 @@
{ modules, inputs, ... }: {
flake-file.inputs = {
barbar.url = "git+https://git.scug.io/doloro/barbar?ref=master";
};
modules.barbar = {
homeManager = { pkgs, ... }: {
imports = [ inputs.barbar.homeManagerModules.default ];
programs.barbar = {
enable = true;
settings = {
display = {
monitor = "DP-2";
height = 20;
antialiasing = true;
default_text_size = 14.0;
padding = 4.0;
spacing = 8.0;
# Absolute store path: barbar resolves `[display].theme` against
# its cwd, which is not the home dir under systemd.
theme = "${pkgs.writeText "barbar-base16.yaml" ''
scheme: "Gruvbox dark, medium"
author: "https://github.com/morhetz/gruvbox"
base00: "282828" # bg
base01: "3c3836" # bg1
base02: "504945" # bg2
base03: "665c54" # bg3
base04: "bdae93" # fg4
base05: "d5c4a1" # fg
base06: "ebdbb2" # fg2
base07: "fbf1c7" # fg0
base08: "fb4934" # red
base09: "fe8019" # orange
base0A: "fabd2f" # yellow
base0B: "b8bb26" # green
base0C: "8ec07c" # aqua
base0D: "83a598" # blue
base0E: "d3869b" # purple
base0F: "d65d0e" # brown
''}";
};
order = {
left = [ "workspaces" "weather" ];
middle = [ ];
right = [ "audio" "clock" ];
};
modules.clock.show_seconds = false;
modules.workspaces = {
count = 10;
gap = 3.0;
slot_w = 10.0;
slot_h = 17.0;
radius = 2.5;
scale_active = 1.0;
scale_exists = 0.85;
scale_absent = 0.65;
};
};
};
};
};
}
+189 -39
View File
@@ -41,7 +41,12 @@
# `_args` renders a multi-argument call instead of one Lua table,
# and mkLuaInline passes raw Lua through for dispatchers.
dsp = lib.generators.mkLuaInline;
bind = key: dispatcher: { _args = [ key dispatcher ]; };
bind = key: dispatcher: {
_args = [
key
dispatcher
];
};
bezier = name: points: {
_args = [
name
@@ -58,8 +63,8 @@
ws = toString (i + 1);
in
[
(bind "${mainMod} + ${ws}" (dsp ''hl.dsp.focus({ workspace = ${ws} })''))
(bind "${mainMod} + SHIFT + ${ws}" (dsp ''hl.dsp.window.move({ workspace = ${ws} })''))
(bind "${mainMod} + ${ws}" (dsp "hl.dsp.focus({ workspace = ${ws} })"))
(bind "${mainMod} + SHIFT + ${ws}" (dsp "hl.dsp.window.move({ workspace = ${ws} })"))
]
) 9
);
@@ -113,7 +118,7 @@
}
{
label = "reboot";
action = "systemctl reboot";
action = "hyprshutdown --post-cmd 'systemctl reboot'";
text = "Reboot";
keybind = "r";
}
@@ -173,6 +178,7 @@
ignore_opacity = false;
};
};
cursor.default_monitor = "DP-2";
cursor.no_hardware_cursors = false;
dwindle.preserve_split = true;
misc = {
@@ -197,6 +203,23 @@
}
];
# DP-2 is the main monitor: every workspace (1-10, matching the
# binds above and the window rules below) is bound to it, so
# new workspaces are never created on HDMI-A-1. Workspace 1 is
# DP-2's default, i.e. what it shows on startup.
workspace_rule =
[
{
workspace = "1";
monitor = "DP-2";
default = true;
}
]
++ builtins.genList (i: {
workspace = toString (i + 2);
monitor = "DP-2";
}) 9;
device = {
name = "default";
kb_layout = "gb";
@@ -207,51 +230,178 @@
# `importantPrefixes` default, so the beziers exist by name.
curve = [
(bezier "easeOutQuint" [
[ 0.23 1 ]
[ 0.32 1 ]
[
0.23
1
]
[
0.32
1
]
])
(bezier "easeInOutCubic" [
[ 0.65 0.05 ]
[ 0.36 1 ]
[
0.65
0.05
]
[
0.36
1
]
])
(bezier "linear" [
[ 0 0 ]
[ 1 1 ]
[
0
0
]
[
1
1
]
])
(bezier "almostLinear" [
[ 0.5 0.5 ]
[ 0.75 1 ]
[
0.5
0.5
]
[
0.75
1
]
])
(bezier "quick" [
[ 0.15 0 ]
[ 0.1 1 ]
[
0.15
0
]
[
0.1
1
]
])
];
animation = [
{ leaf = "global"; enabled = true; speed = 10; bezier = "default"; }
{ leaf = "border"; enabled = true; speed = 5.39; bezier = "easeOutQuint"; }
{ leaf = "windows"; enabled = true; speed = 2.79; bezier = "easeOutQuint"; }
{ leaf = "windowsIn"; enabled = true; speed = 1; bezier = "easeOutQuint"; style = "popin 87%"; }
{ leaf = "windowsOut"; enabled = true; speed = 1; bezier = "linear"; style = "popin 87%"; }
{ leaf = "windowsMove"; enabled = true; speed = 1; bezier = "easeInOutCubic"; }
{ leaf = "fadeIn"; enabled = true; speed = 0.5; bezier = "almostLinear"; }
{ leaf = "fadeOut"; enabled = true; speed = 0.5; bezier = "almostLinear"; }
{ leaf = "fade"; enabled = true; speed = 1; bezier = "quick"; }
{ leaf = "layers"; enabled = true; speed = 3.81; bezier = "easeOutQuint"; }
{ leaf = "layersIn"; enabled = true; speed = 4; bezier = "easeOutQuint"; style = "fade"; }
{ leaf = "layersOut"; enabled = true; speed = 1.5; bezier = "linear"; style = "fade"; }
{ leaf = "fadeLayersIn"; enabled = true; speed = 1.79; bezier = "almostLinear"; }
{ leaf = "fadeLayersOut"; enabled = true; speed = 1.39; bezier = "almostLinear"; }
{ leaf = "workspaces"; enabled = true; speed = 1; bezier = "almostLinear"; style = "slide"; }
{ leaf = "workspacesIn"; enabled = true; speed = 1; bezier = "easeInOutCubic"; style = "slide"; }
{ leaf = "workspacesOut"; enabled = true; speed = 1; bezier = "easeInOutCubic"; style = "slide"; }
{ leaf = "zoomFactor"; enabled = true; speed = 7; bezier = "quick"; }
{
leaf = "global";
enabled = true;
speed = 10;
bezier = "default";
}
{
leaf = "border";
enabled = true;
speed = 5.39;
bezier = "easeOutQuint";
}
{
leaf = "windows";
enabled = true;
speed = 2.79;
bezier = "easeOutQuint";
}
{
leaf = "windowsIn";
enabled = true;
speed = 1;
bezier = "easeOutQuint";
style = "popin 87%";
}
{
leaf = "windowsOut";
enabled = true;
speed = 1;
bezier = "linear";
style = "popin 87%";
}
{
leaf = "windowsMove";
enabled = true;
speed = 1;
bezier = "easeInOutCubic";
}
{
leaf = "fadeIn";
enabled = true;
speed = 0.5;
bezier = "almostLinear";
}
{
leaf = "fadeOut";
enabled = true;
speed = 0.5;
bezier = "almostLinear";
}
{
leaf = "fade";
enabled = true;
speed = 1;
bezier = "quick";
}
{
leaf = "layers";
enabled = true;
speed = 3.81;
bezier = "easeOutQuint";
}
{
leaf = "layersIn";
enabled = true;
speed = 4;
bezier = "easeOutQuint";
style = "fade";
}
{
leaf = "layersOut";
enabled = true;
speed = 1.5;
bezier = "linear";
style = "fade";
}
{
leaf = "fadeLayersIn";
enabled = true;
speed = 1.79;
bezier = "almostLinear";
}
{
leaf = "fadeLayersOut";
enabled = true;
speed = 1.39;
bezier = "almostLinear";
}
{
leaf = "workspaces";
enabled = true;
speed = 1;
bezier = "almostLinear";
style = "slide";
}
{
leaf = "workspacesIn";
enabled = true;
speed = 1;
bezier = "easeInOutCubic";
style = "slide";
}
{
leaf = "workspacesOut";
enabled = true;
speed = 1;
bezier = "easeInOutCubic";
style = "slide";
}
{
leaf = "zoomFactor";
enabled = true;
speed = 7;
bezier = "quick";
}
];
bind = [
(bind "${mainMod} + R" (dsp ''hl.dsp.exec_cmd("${mreowScript}")''))
(bind "${mainMod} + C" (dsp ''hl.dsp.window.close()''))
(bind "${mainMod} + C" (dsp "hl.dsp.window.close()"))
(bind "${mainMod} + M" (dsp ''hl.dsp.exec_cmd("uwsm stop")''))
(bind "${mainMod} + Q" (dsp ''hl.dsp.exec_cmd("kitty")''))
(bind "${mainMod} + V" (dsp ''hl.dsp.window.float({ action = "toggle" })''))
@@ -262,13 +412,13 @@
(bind "${mainMod} + L" (dsp ''hl.dsp.exec_cmd("wlogout")''))
(bind "${mainMod} + S" (dsp ''hl.dsp.exec_cmd("wayfreeze --after-freeze-cmd '${meowScript}'")''))
(bind "${mainMod} + F" (dsp ''hl.dsp.window.fullscreen({ action = "toggle" })''))
(bind "${mainMod} + SHIFT + Q" (dsp ''hl.dsp.window.close()''))
(bind "${mainMod} + SHIFT + Q" (dsp "hl.dsp.window.close()"))
(bind "${mainMod} + mouse_down" (dsp ''hl.dsp.focus({ workspace = "e+1" })''))
(bind "${mainMod} + mouse_up" (dsp ''hl.dsp.focus({ workspace = "e-1" })''))
# Mouse binds
(bind "${mainMod} + mouse:272" (dsp ''hl.dsp.window.drag()''))
(bind "${mainMod} + mouse:273" (dsp ''hl.dsp.window.resize()''))
(bind "${mainMod} + mouse:272" (dsp "hl.dsp.window.drag()"))
(bind "${mainMod} + mouse:273" (dsp "hl.dsp.window.resize()"))
# Media keys
(bind "XF86AudioLowerVolume" (dsp ''hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-")''))
@@ -280,11 +430,11 @@
(bind "XF86AudioMicMute" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle")''))
(bind "home" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle")''))
(bind "end" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle")''))
(bind "F8" (dsp ''hl.dsp.pass({ window = [[match:class:^(com.obsproject.Studio)$]] })''))
(bind "F8" (dsp "hl.dsp.pass({ window = [[match:class:^(com.obsproject.Studio)$]] })"))
# Workspaces
(bind "${mainMod} + 0" (dsp ''hl.dsp.focus({ workspace = 10 })''))
(bind "${mainMod} + SHIFT + 0" (dsp ''hl.dsp.window.move({ workspace = 10 })''))
(bind "${mainMod} + 0" (dsp "hl.dsp.focus({ workspace = 10 })"))
(bind "${mainMod} + SHIFT + 0" (dsp "hl.dsp.window.move({ workspace = 10 })"))
]
++ wsBinds;
+2 -2
View File
@@ -17,8 +17,8 @@
background_opacity = 0.6;
cursor_trail = 1;
auto_reload_config = -1;
input_delay = 1;
repaint_delay = 2;
# input_delay = 1;
# repaint_delay = 2;
wayland_enable_ime = "no";
};
};