nwg-bar, ironbar and some minor things
This commit is contained in:
106
flake.lock
generated
106
flake.lock
generated
@@ -110,6 +110,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crane_2": {
|
"crane_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730060262,
|
||||||
|
"narHash": "sha256-RMgSVkZ9H03sxC+Vh4jxtLTCzSjPq18UWpiM0gq6shQ=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "498d9f122c413ee1154e8131ace5a35a80d8fa76",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crane_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730652660,
|
"lastModified": 1730652660,
|
||||||
"narHash": "sha256-+XVYfmVXAiYA0FZT7ijHf555dxCe+AoAT5A6RU+6vSo=",
|
"narHash": "sha256-+XVYfmVXAiYA0FZT7ijHf555dxCe+AoAT5A6RU+6vSo=",
|
||||||
@@ -791,6 +806,29 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ironbar": {
|
||||||
|
"inputs": {
|
||||||
|
"crane": "crane_2",
|
||||||
|
"naersk": "naersk",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731364081,
|
||||||
|
"narHash": "sha256-7E1dh2H+36AJBO7PCHhLLEuxr2HDaEa6nif14pOoJXY=",
|
||||||
|
"owner": "JakeStanger",
|
||||||
|
"repo": "ironbar",
|
||||||
|
"rev": "a76957216b27f7d23128a02740cad2d78d9e4de6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "JakeStanger",
|
||||||
|
"repo": "ironbar",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"jovian": {
|
"jovian": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix-github-actions": "nix-github-actions",
|
"nix-github-actions": "nix-github-actions",
|
||||||
@@ -815,12 +853,12 @@
|
|||||||
},
|
},
|
||||||
"lanzaboote": {
|
"lanzaboote": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane_2",
|
"crane": "crane_3",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_7",
|
||||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730739295,
|
"lastModified": 1730739295,
|
||||||
@@ -838,7 +876,7 @@
|
|||||||
},
|
},
|
||||||
"microfetch": {
|
"microfetch": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730220355,
|
"lastModified": 1730220355,
|
||||||
@@ -854,6 +892,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"naersk": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721727458,
|
||||||
|
"narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-gaming": {
|
"nix-gaming": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
@@ -1014,6 +1070,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730272153,
|
||||||
|
"narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730642263,
|
"lastModified": 1730642263,
|
||||||
"narHash": "sha256-UXqvGZOHUDeAo8Sv5A5oObiQgBPELVgHQi130TU0jMU=",
|
"narHash": "sha256-UXqvGZOHUDeAo8Sv5A5oObiQgBPELVgHQi130TU0jMU=",
|
||||||
@@ -1029,7 +1099,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722719969,
|
"lastModified": 1722719969,
|
||||||
"narHash": "sha256-E47qbT/mRtBCSZra+9S9208sp/QnNeOAq7EhHX+eMNE=",
|
"narHash": "sha256-E47qbT/mRtBCSZra+9S9208sp/QnNeOAq7EhHX+eMNE=",
|
||||||
@@ -1044,7 +1114,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731319897,
|
"lastModified": 1731319897,
|
||||||
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
|
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
|
||||||
@@ -1127,10 +1197,11 @@
|
|||||||
"hyprlock": "hyprlock",
|
"hyprlock": "hyprlock",
|
||||||
"hyprpaper": "hyprpaper",
|
"hyprpaper": "hyprpaper",
|
||||||
"hyprsysteminfo": "hyprsysteminfo",
|
"hyprsysteminfo": "hyprsysteminfo",
|
||||||
|
"ironbar": "ironbar",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"microfetch": "microfetch",
|
"microfetch": "microfetch",
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
"nixpkgs": "nixpkgs_8",
|
"nixpkgs": "nixpkgs_9",
|
||||||
"systems": "systems_5",
|
"systems": "systems_5",
|
||||||
"tuirun": "tuirun",
|
"tuirun": "tuirun",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
@@ -1175,6 +1246,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay_2": {
|
"rust-overlay_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"ironbar",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730341826,
|
||||||
|
"narHash": "sha256-RFaeY7EWzXOmAL2IQEACbnrEza3TgD5UQApHR4hGHhY=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "815d1b3ee71716fc91a7bd149801e1f04d45fbc5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
|
|||||||
@@ -95,6 +95,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ironbar = {
|
||||||
|
url = "github:JakeStanger/ironbar";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
anyrun.url = "github:anyrun-org/anyrun";
|
anyrun.url = "github:anyrun-org/anyrun";
|
||||||
microfetch.url = "github:NotAShelf/microfetch";
|
microfetch.url = "github:NotAShelf/microfetch";
|
||||||
agenix.url = "github:ryantm/agenix";
|
agenix.url = "github:ryantm/agenix";
|
||||||
|
|||||||
@@ -13,11 +13,13 @@
|
|||||||
./home/programs/helix
|
./home/programs/helix
|
||||||
./home/programs/hyprland
|
./home/programs/hyprland
|
||||||
./home/programs/hyprlock
|
./home/programs/hyprlock
|
||||||
|
./home/programs/ironbar
|
||||||
./home/programs/jujutsu
|
./home/programs/jujutsu
|
||||||
./home/programs/kitty
|
./home/programs/kitty
|
||||||
./home/programs/misc
|
./home/programs/misc
|
||||||
./home/programs/mpv
|
./home/programs/mpv
|
||||||
./home/programs/neovim
|
./home/programs/neovim
|
||||||
|
./home/programs/nwg-bar
|
||||||
./home/programs/rofi
|
./home/programs/rofi
|
||||||
./home/programs/ssh
|
./home/programs/ssh
|
||||||
./home/programs/tuirun
|
./home/programs/tuirun
|
||||||
|
|||||||
43
modules/home/programs/ironbar/colors.nix
Normal file
43
modules/home/programs/ironbar/colors.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
rec {
|
||||||
|
base = {
|
||||||
|
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";
|
||||||
|
|
||||||
|
text = "#cdd6f4";
|
||||||
|
subtext1 = "#bac2de";
|
||||||
|
subtext0 = "#a6adc8";
|
||||||
|
overlay2 = "#9399b2";
|
||||||
|
overlay1 = "#7f849c";
|
||||||
|
overlay0 = "#6c7086";
|
||||||
|
|
||||||
|
surface2 = "#585b70";
|
||||||
|
surface1 = "#45475a";
|
||||||
|
surface0 = "#313244";
|
||||||
|
|
||||||
|
base = "#1e1e2e";
|
||||||
|
mantle = "#181825";
|
||||||
|
crust = "#11111b";
|
||||||
|
|
||||||
|
border = "#28283d";
|
||||||
|
};
|
||||||
|
extra =
|
||||||
|
{
|
||||||
|
fg = base.text;
|
||||||
|
bg = base.base;
|
||||||
|
bg1 = base.surface0;
|
||||||
|
shadow = base.crust;
|
||||||
|
}
|
||||||
|
// base;
|
||||||
|
}
|
||||||
294
modules/home/programs/ironbar/default.nix
Normal file
294
modules/home/programs/ironbar/default.nix
Normal file
@@ -0,0 +1,294 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
cfg = config.home.programs.ironbar;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
home.programs.ironbar.enable = mkEnableOption "Enables ironbar";
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
inputs.ironbar.homeManagerModules.default
|
||||||
|
];
|
||||||
|
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
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
|
||||||
|
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");
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
modules/home/programs/ironbar/scss-pkg.nix
Normal file
19
modules/home/programs/ironbar/scss-pkg.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
dart-sass,
|
||||||
|
stdenvNoCC,
|
||||||
|
src ? ./styles,
|
||||||
|
entry ? "main",
|
||||||
|
}:
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "built-scss";
|
||||||
|
version = "1.0";
|
||||||
|
inherit src;
|
||||||
|
nativeBuildInputs = [dart-sass];
|
||||||
|
buildPhase = ''
|
||||||
|
dart-sass ${entry}.scss > __nix_out__.css.out
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/
|
||||||
|
cp __nix_out__.css.out $out/out.css
|
||||||
|
'';
|
||||||
|
}
|
||||||
35
modules/home/programs/ironbar/styles/_colors.scss
Normal file
35
modules/home/programs/ironbar/styles/_colors.scss
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
$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;
|
||||||
|
|
||||||
|
$text: #cdd6f4;
|
||||||
|
$subtext1: #bac2de;
|
||||||
|
$subtext0: #a6adc8;
|
||||||
|
$overlay2: #9399b2;
|
||||||
|
$overlay1: #7f849c;
|
||||||
|
$overlay0: #6c7086;
|
||||||
|
|
||||||
|
$surface2: #585b70;
|
||||||
|
$surface1: #45475a;
|
||||||
|
$surface0: #313244;
|
||||||
|
|
||||||
|
$base: #1e1e2e;
|
||||||
|
$mantle: #181825;
|
||||||
|
$crust: #11111b;
|
||||||
|
|
||||||
|
$fg: $text;
|
||||||
|
$bg: $base;
|
||||||
|
$bg1: $surface0;
|
||||||
|
$border: #28283d;
|
||||||
|
$shadow: $crust;
|
||||||
221
modules/home/programs/ironbar/styles/main.scss
Normal file
221
modules/home/programs/ironbar/styles/main.scss
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
@use "colors" as *;
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family:
|
||||||
|
Product Sans,
|
||||||
|
Roboto,
|
||||||
|
sans-serif,
|
||||||
|
monospace;
|
||||||
|
font-size: 13px;
|
||||||
|
transition: 200ms ease;
|
||||||
|
|
||||||
|
color: $fg;
|
||||||
|
/*background-color: #2d2d2d;*/
|
||||||
|
/*background-color: $bg;*/
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
/*opacity: 0.4;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#bar {
|
||||||
|
background-color: $bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
background-color: $bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#right > * + * {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#left > * + * {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.nix-launcher button {
|
||||||
|
all: unset;
|
||||||
|
background-color: $bg;
|
||||||
|
}
|
||||||
|
.popup-nix-launcher label {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nix-launcher label {
|
||||||
|
background-color: transparent;
|
||||||
|
color: $bg;
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
padding: 0 1.1rem 0 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces {
|
||||||
|
all: unset;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
.workspaces label {
|
||||||
|
font-family: Material Symbols Outlined;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.workspaces .item {
|
||||||
|
all: unset;
|
||||||
|
color: $pink;
|
||||||
|
margin-right: 5px;
|
||||||
|
padding: 0px;
|
||||||
|
font-family: Material Symbols Outlined;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces .item.focused {
|
||||||
|
color: $red;
|
||||||
|
}
|
||||||
|
.workspaces .item.focused label {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
.workspaces .item.inactive {
|
||||||
|
color: $maroon;
|
||||||
|
}
|
||||||
|
.workspaces .item.inactive label {
|
||||||
|
font-size: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock {
|
||||||
|
color: $fg;
|
||||||
|
background-color: $bg;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sysinfo {
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tray {
|
||||||
|
background-color: $bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tray .item {
|
||||||
|
background-color: $bg;
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upower,
|
||||||
|
.upower * {
|
||||||
|
all: unset;
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
.music-img {
|
||||||
|
border-radius: 8px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
.music-ctrls * {
|
||||||
|
all: unset;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
.music label {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup {
|
||||||
|
background-color: $bg;
|
||||||
|
border: 1px solid $subtext0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-clock {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-clock {
|
||||||
|
color: $fg;
|
||||||
|
font-size: 2.5em;
|
||||||
|
padding-bottom: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar {
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar .header {
|
||||||
|
padding-top: 1em;
|
||||||
|
border-top: 1px solid $subtext0;
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar:selected {
|
||||||
|
background-color: $blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.power-menu {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.power-menu .power-btn {
|
||||||
|
color: $fg;
|
||||||
|
background-color: $bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.power-menu .power-btn:hover {
|
||||||
|
background-color: $mantle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-power-menu {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-power-menu #header {
|
||||||
|
color: $fg;
|
||||||
|
font-size: 1.4em;
|
||||||
|
border-bottom: 1px solid $overlay1;
|
||||||
|
padding-bottom: 0.4em;
|
||||||
|
margin-bottom: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-power-menu .power-btn {
|
||||||
|
color: $fg;
|
||||||
|
background-color: $bg;
|
||||||
|
border: 1px solid $overlay1;
|
||||||
|
padding: 0.6em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-power-menu .power-btn + .power-btn {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-power-menu .power-btn:hover {
|
||||||
|
background-color: $mantle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
all: unset;
|
||||||
|
color: $fg;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-music .album-art {
|
||||||
|
margin-right: 1em;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-music .title .icon-box,
|
||||||
|
.popup-mpd .title .icon-icon {
|
||||||
|
font-size: 1.7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-music .controls * {
|
||||||
|
border-radius: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-music .controls *:disabled {
|
||||||
|
color: $overlay1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.focused {
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
77
modules/home/programs/nwg-bar/default.nix
Normal file
77
modules/home/programs/nwg-bar/default.nix
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
cfg = config.home.programs.nwg-bar;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
home.programs.nwg-bar.enable = mkEnableOption "Enables nwg-bar";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
nwg-bar
|
||||||
|
];
|
||||||
|
xdg.configFile."nwg-bar/bar.json".text = builtins.toJSON [
|
||||||
|
{
|
||||||
|
label = "Lock";
|
||||||
|
exec = "hyprlock";
|
||||||
|
icon = "${config.gtk.iconTheme.package}/share/icons/Adwaita/symbolic/status/system-lock-screen-symbolic.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Logout";
|
||||||
|
exec = "hyprctl dispatch exit";
|
||||||
|
icon = "${config.gtk.iconTheme.package}/share/icons/Adwaita/symbolic/actions/system-log-out-symbolic.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Reboot";
|
||||||
|
exec = "systemctl reboot";
|
||||||
|
icon = "${config.gtk.iconTheme.package}/share/icons/Adwaita/symbolic/actions/system-reboot-symbolic.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Shutdown";
|
||||||
|
exec = "systemctl -i poweroff";
|
||||||
|
icon = "${config.gtk.iconTheme.package}/share/icons/Adwaita/symbolic/actions/system-shutdown-symbolic.svg";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
xdg.configFile."nwg-bar/style.css".text = ''
|
||||||
|
window {
|
||||||
|
background-color: rgba (0, 0, 0, 0.6)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Outer bar container, takes all the window width/height */
|
||||||
|
#outer-box {
|
||||||
|
margin: 0px
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inner bar container, surrounds buttons */
|
||||||
|
#inner-box {
|
||||||
|
background-color: rgba (0, 0, 0, 0.85);
|
||||||
|
border-radius: 0px;
|
||||||
|
border-style: none;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: rgba (156, 142, 122, 0.7);
|
||||||
|
padding: 5px;
|
||||||
|
margin: 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
button, image {
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin: 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: rgba (255, 255, 255, 0.1)
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
"https://nix-gaming.cachix.org"
|
"https://nix-gaming.cachix.org"
|
||||||
"https://yazi.cachix.org"
|
"https://yazi.cachix.org"
|
||||||
"https://chaotic-nyx.cachix.org"
|
"https://chaotic-nyx.cachix.org"
|
||||||
|
"https://cache.garnix.io"
|
||||||
];
|
];
|
||||||
|
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
@@ -20,6 +21,7 @@
|
|||||||
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||||
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
|
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
|
||||||
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8"
|
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8"
|
||||||
|
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,9 @@
|
|||||||
hyprlock = {
|
hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
ironbar = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
jujutsu = {
|
jujutsu = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
@@ -68,6 +71,9 @@
|
|||||||
neovim = {
|
neovim = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
|
nwg-bar = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
rofi = {
|
rofi = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user