flake lock

This commit is contained in:
cnst
2024-11-25 17:24:33 +01:00
parent 25cad3cbf1
commit a651ca013d
6 changed files with 329 additions and 324 deletions

View File

@@ -37,6 +37,10 @@ in {
"center, class:^(nwg-look)$"
"float, class:^(nwg-look)$"
# === OCULANTE SETTINGS ===
"center, class:^(oculante)$"
"float, class:^(oculante)$"
# === PAVUCONTROL SETTINGS ===
"move 100%-w-20 40, class:^(pavucontrol)$"
"size 741 585, class:^(pavucontrol)$"
@@ -54,7 +58,6 @@ in {
"float, class:^(polkit-gnome-authentication-agent-1)$"
"float, class:^(org.gnome.Calculator)$"
"float, class:^(Lxappearance)$"
"float, class:^(imv)$"
"float, class:^(com.github.hluk.copyq)$"
"float, class:^(blueman-manager)$"
"float, class:^(floatranger)$"

View File

@@ -17,278 +17,278 @@ in {
config = mkIf cfg.enable {
programs.ironbar = {
enable = true;
config = let
workspaces = {
type = "workspaces";
all_monitors = false;
favorites = map (n: builtins.toString n) [1 2 3 4 5 6 7 8 9 10];
hidden = ["special"];
name_map = let
workspaces = lib.genAttrs (map (n: builtins.toString n) [1 2 3 4 5 6 7 8 9 10]);
mkColorfull = text: color: "${text}"; # "<span foreground=\"${color}\">${text}</span>";
dotify = _: mkColorfull "";
c = builtins.mapAttrs dotify (import ./colors.nix).base;
in
workspaces (
i:
if i == "1"
then c.red
else if i == "2"
then c.maroon
else if i == "3"
then c.peach
else if i == "4"
then c.yellow
else if i == "5"
then c.green
else if i == "6"
then c.teal
else if i == "7"
then c.sky
else if i == "8"
then c.sapphire
else if i == "9"
then c.blue
else if i == "10"
then c.lavender
else c.mauve
);
};
# config = let
# workspaces = {
# type = "workspaces";
# all_monitors = false;
# favorites = map (n: builtins.toString n) [1 2 3 4 5 6 7 8 9 10];
# hidden = ["special"];
# name_map = let
# workspaces = lib.genAttrs (map (n: builtins.toString n) [1 2 3 4 5 6 7 8 9 10]);
# mkColorfull = text: color: "${text}"; # "<span foreground=\"${color}\">${text}</span>";
# dotify = _: mkColorfull "●";
# c = builtins.mapAttrs dotify (import ./colors.nix).base;
# in
# workspaces (
# i:
# if i == "1"
# then c.red
# else if i == "2"
# then c.maroon
# else if i == "3"
# then c.peach
# else if i == "4"
# then c.yellow
# else if i == "5"
# then c.green
# else if i == "6"
# then c.teal
# else if i == "7"
# then c.sky
# else if i == "8"
# then c.sapphire
# else if i == "9"
# then c.blue
# else if i == "10"
# then c.lavender
# else c.mauve
# );
# };
music = let
state_path = "${config.xdg.stateHome}/music-ctrls-state";
show-script = pkgs.writeShellApplication {
name = "mctrls-shower";
runtimeInputs = with pkgs; [coreutils];
text = ''
${pkgs.coreutils}/bin/touch ${state_path}
out=$(< ${state_path})
if [[ $out != "show" ]]; then
echo -ne "show" > ${state_path}
fi
'';
};
hide-script = pkgs.writeShellApplication {
name = "mctrls-hider";
runtimeInputs = with pkgs; [coreutils];
text = ''
${pkgs.coreutils}/bin/touch ${state_path}
out=$(< ${state_path})
if [[ $out == "show" ]]; then
echo -ne "" >${state_path}
fi
'';
};
in {
type = "music";
player_type = "mpris";
format = "{title}";
truncate = "end";
#icons.play = "icon:media-playback-start";
#icons.pause = "icon:media-playback-pause";
music_dir = config.xdg.userDirs.music;
show_status_icon = false;
on_mouse_enter.cmd = "${show-script}/bin/mctrls-shower";
on_mouse_exit.cmd = "${hide-script}/bin/mctrls-hider";
#icon_size = 64;
#cover_image_size = 256;
};
music_img = rec {
type = "custom";
name = "music-img";
class = name;
on_mouse_enter = music.on_mouse_enter;
on_mouse_exit = music.on_mouse_exit;
bar = [
{
type = "image";
class = name + "-img";
#src = ''{{poll:5000:${pkgs.playerctl}/bin/playerctl metadata mpris:artUrl}}'';
src = ''{{watch:${pkgs.playerctl}/bin/playerctl -F metadata mpris:artUrl}}'';
}
];
};
music_inline_controls = let
check-script = pkgs.writeShellApplication {
name = "mctrls-checker";
runtimeInputs = with pkgs; [coreutils];
text = let
state_path = "${config.xdg.stateHome}/music-ctrls-state";
in ''
${pkgs.coreutils}/bin/touch ${state_path}
if [[ $(< ${state_path}) == "show" ]]; then
exit 0
else
exit 1
fi
'';
};
play-icon-script = pkgs.writeShellApplication {
name = "pp-icon";
runtimeInputs = [pkgs.playerctl];
text = ''
if [[ $(${pkgs.playerctl}/bin/playerctl status) == "Playing" ]]; then
echo ""
else
echo ""
fi
'';
};
in rec {
type = "custom";
name = "music-ctrls";
class = name;
show_if = {
mode = "poll";
interval = 1000;
cmd = "${check-script}/bin/mctrls-checker";
};
on_mouse_enter = music.on_mouse_enter;
on_mouse_exit = music.on_mouse_exit;
transition_type = "slide_start";
bar = let
pctl = cmd:
"!"
+ (pkgs.writeShellApplication {
name = "iron-${cmd}";
runtimeInputs = [pkgs.playerctl];
text = "${pkgs.playerctl}/bin/playerctl ${cmd}";
})
+ "/bin/iron-${cmd}";
in [
{
type = "button";
class = name + "-prev";
label = "󰒮";
on_click = pctl "previous";
}
{
type = "button";
class = name + "-pp";
label = "{{poll:100:${play-icon-script}/bin/pp-icon}}";
on_click = pctl "play-pause";
}
{
type = "button";
class = name + "-next";
label = "󰒭";
on_click = pctl "next";
}
];
};
sys_info = {
type = "sys_info";
format = [" {cpu_percent}%" " {memory_percent}%"];
};
battery = {
type = "upower";
format = "{percentage}%";
};
# music = let
# state_path = "${config.xdg.stateHome}/music-ctrls-state";
# show-script = pkgs.writeShellApplication {
# name = "mctrls-shower";
# runtimeInputs = with pkgs; [coreutils];
# text = ''
# ${pkgs.coreutils}/bin/touch ${state_path}
# out=$(< ${state_path})
# if [[ $out != "show" ]]; then
# echo -ne "show" > ${state_path}
# fi
# '';
# };
# hide-script = pkgs.writeShellApplication {
# name = "mctrls-hider";
# runtimeInputs = with pkgs; [coreutils];
# text = ''
# ${pkgs.coreutils}/bin/touch ${state_path}
# out=$(< ${state_path})
# if [[ $out == "show" ]]; then
# echo -ne "" >${state_path}
# fi
# '';
# };
# in {
# type = "music";
# player_type = "mpris";
# format = "{title}";
# truncate = "end";
# #icons.play = "icon:media-playback-start";
# #icons.pause = "icon:media-playback-pause";
# music_dir = config.xdg.userDirs.music;
# show_status_icon = false;
# on_mouse_enter.cmd = "${show-script}/bin/mctrls-shower";
# on_mouse_exit.cmd = "${hide-script}/bin/mctrls-hider";
# #icon_size = 64;
# #cover_image_size = 256;
# };
# music_img = rec {
# type = "custom";
# name = "music-img";
# class = name;
# on_mouse_enter = music.on_mouse_enter;
# on_mouse_exit = music.on_mouse_exit;
# bar = [
# {
# type = "image";
# class = name + "-img";
# #src = ''{{poll:5000:${pkgs.playerctl}/bin/playerctl metadata mpris:artUrl}}'';
# src = ''{{watch:${pkgs.playerctl}/bin/playerctl -F metadata mpris:artUrl}}'';
# }
# ];
# };
# music_inline_controls = let
# check-script = pkgs.writeShellApplication {
# name = "mctrls-checker";
# runtimeInputs = with pkgs; [coreutils];
# text = let
# state_path = "${config.xdg.stateHome}/music-ctrls-state";
# in ''
# ${pkgs.coreutils}/bin/touch ${state_path}
# if [[ $(< ${state_path}) == "show" ]]; then
# exit 0
# else
# exit 1
# fi
# '';
# };
# play-icon-script = pkgs.writeShellApplication {
# name = "pp-icon";
# runtimeInputs = [pkgs.playerctl];
# text = ''
# if [[ $(${pkgs.playerctl}/bin/playerctl status) == "Playing" ]]; then
# echo ""
# else
# echo ""
# fi
# '';
# };
# in rec {
# type = "custom";
# name = "music-ctrls";
# class = name;
# show_if = {
# mode = "poll";
# interval = 1000;
# cmd = "${check-script}/bin/mctrls-checker";
# };
# on_mouse_enter = music.on_mouse_enter;
# on_mouse_exit = music.on_mouse_exit;
# transition_type = "slide_start";
# bar = let
# pctl = cmd:
# "!"
# + (pkgs.writeShellApplication {
# name = "iron-${cmd}";
# runtimeInputs = [pkgs.playerctl];
# text = "${pkgs.playerctl}/bin/playerctl ${cmd}";
# })
# + "/bin/iron-${cmd}";
# in [
# {
# type = "button";
# class = name + "-prev";
# label = "󰒮";
# on_click = pctl "previous";
# }
# {
# type = "button";
# class = name + "-pp";
# label = "{{poll:100:${play-icon-script}/bin/pp-icon}}";
# on_click = pctl "play-pause";
# }
# {
# type = "button";
# class = name + "-next";
# label = "󰒭";
# on_click = pctl "next";
# }
# ];
# };
# sys_info = {
# type = "sys_info";
# format = [" {cpu_percent}%" " {memory_percent}%"];
# };
# battery = {
# type = "upower";
# format = "{percentage}%";
# };
tray = {type = "tray";};
clock = {
type = "clock";
format = "%l:%M %P";
};
# tray = {type = "tray";};
# clock = {
# type = "clock";
# format = "%l:%M %P";
# };
cava = {
type = "script";
mode = "watch";
cmd =
(pkgs.writeShellApplication {
name = "cava";
runtimeInputs = [pkgs.cava pkgs.gnused];
text = ''
printf "[general]\nframerate=160\nbars = 7\n[output]\nmethod = raw\nraw_target = /dev/stdout\ndata_format = ascii\nascii_max_range = 7\n" | cava -p /dev/stdin | sed -u 's/;//g;s/0//g;s/1//g;s/2//g;s/3//g;s/4//g;s/5//g;s/6//g;s/7//g; '
'';
})
+ "/bin/cava";
};
dash = rec {
type = "custom";
name = "nix-launcher";
class = name;
bar = [
{
type = "button";
label = "󰇙 ";
on_click = "popup:toggle";
}
];
popup = [
{
type = "box";
orientation = "v";
widgets = [
#{
# type = "label";
# label = "{{${pkgs.macchina}/bin/macchina}}";
#}
{
type = "box";
widgets = [
{
type = "button";
label = "󱗼 Applications";
on_click = "!tuirun-toggle";
}
{
type = "button";
label = "󰕾 Sound";
on_click = "!${pkgs.pavucontrol}/bin/pavucontrol";
}
{
type = "button";
label = "󰐥 Power";
on_click = "!${pkgs.nwg-bar}/bin/nwg-bar";
}
];
}
];
}
];
};
# cava = {
# type = "script";
# mode = "watch";
# cmd =
# (pkgs.writeShellApplication {
# name = "cava";
# runtimeInputs = [pkgs.cava pkgs.gnused];
# text = ''
# printf "[general]\nframerate=160\nbars = 7\n[output]\nmethod = raw\nraw_target = /dev/stdout\ndata_format = ascii\nascii_max_range = 7\n" | cava -p /dev/stdin | sed -u 's/;//g;s/0/▁/g;s/1/▂/g;s/2/▃/g;s/3/▄/g;s/4/▅/g;s/5/▆/g;s/6/▇/g;s/7/█/g; '
# '';
# })
# + "/bin/cava";
# };
# dash = rec {
# type = "custom";
# name = "nix-launcher";
# class = name;
# bar = [
# {
# type = "button";
# label = "󰇙 ";
# on_click = "popup:toggle";
# }
# ];
# popup = [
# {
# type = "box";
# orientation = "v";
# widgets = [
# #{
# # type = "label";
# # label = "{{${pkgs.macchina}/bin/macchina}}";
# #}
# {
# type = "box";
# widgets = [
# {
# type = "button";
# label = "󱗼 Applications";
# on_click = "!tuirun-toggle";
# }
# {
# type = "button";
# label = "󰕾 Sound";
# on_click = "!${pkgs.pavucontrol}/bin/pavucontrol";
# }
# {
# type = "button";
# label = "󰐥 Power";
# on_click = "!${pkgs.nwg-bar}/bin/nwg-bar";
# }
# ];
# }
# ];
# }
# ];
# };
left = [
#focused
dash
workspaces
];
right = [
tray
sys_info
cava
battery
clock
];
center = [
music_img
music
music_inline_controls
];
in {
anchor_to_edges = true;
position = "top";
start = left;
end = right;
center = center;
#center = [
# {
# type = "label";
# label = "random num: {{500:playerctl metadata mpris:artUrl}}";
# }
#];
height = 32;
icon_theme = config.gtk.iconTheme.name;
};
style = let
built = pkgs.callPackage ./scss-pkg.nix {
src = ./styles;
entry = "main";
};
in ''
@import url("${built}/out.css");
'';
# left = [
# #focused
# dash
# workspaces
# ];
# right = [
# tray
# sys_info
# cava
# battery
# clock
# ];
# center = [
# music_img
# music
# music_inline_controls
# ];
# in {
# anchor_to_edges = true;
# position = "top";
# start = left;
# end = right;
# center = center;
# #center = [
# # {
# # type = "label";
# # label = "random num: {{500:playerctl metadata mpris:artUrl}}";
# # }
# #];
# height = 32;
# icon_theme = config.gtk.iconTheme.name;
# };
# style = let
# built = pkgs.callPackage ./scss-pkg.nix {
# src = ./styles;
# entry = "main";
# };
# in ''
# @import url("${built}/out.css");
# '';
};
};
}

View File

@@ -50,6 +50,7 @@ in {
libnotify
pamixer # TUI sound control
ripgrep
oculante
file
fd
gnused