create a separate module for waybar
This commit is contained in:
parent
7edc18094d
commit
18e527080a
254
user/home.nix
254
user/home.nix
|
@ -1,71 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
key = {
|
inherit (import ./variables.nix) key theme color accent font;
|
||||||
layout = "colemak";
|
|
||||||
hints = "arstwfuyneio";
|
|
||||||
left = "n";
|
|
||||||
down = "e";
|
|
||||||
up = "i";
|
|
||||||
right = "o";
|
|
||||||
next = "l";
|
|
||||||
tabL = "u";
|
|
||||||
tabR = "Y";
|
|
||||||
insertMode = "s";
|
|
||||||
insertQuit = "kk";
|
|
||||||
menu = "s";
|
|
||||||
};
|
|
||||||
font = {
|
|
||||||
mono = "Hack Nerd Font";
|
|
||||||
interface = "Liberation Sans";
|
|
||||||
size = {
|
|
||||||
small = 12;
|
|
||||||
medium = 14;
|
|
||||||
big = 16;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
accents = {
|
|
||||||
red = {
|
|
||||||
color = "#F44336";
|
|
||||||
fg = "#ffffff";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
themes = {
|
|
||||||
dark = {
|
|
||||||
background = "~/.local/share/backgrounds/assembly_dark.png";
|
|
||||||
opacity = 98;
|
|
||||||
opacityHex = "ee";
|
|
||||||
color = {
|
|
||||||
type = "dark";
|
|
||||||
bg = "#202020";
|
|
||||||
bg_light = "#404040";
|
|
||||||
bg_dark = "#191919";
|
|
||||||
txt = "#FFFFFF";
|
|
||||||
nontxt = "#252525";
|
|
||||||
random_range = "[a-f]";
|
|
||||||
normal = {
|
|
||||||
black = "#404040";
|
|
||||||
red = "#AB4642";
|
|
||||||
green = "#A1B56C";
|
|
||||||
yellow = "#E6C547";
|
|
||||||
blue = "#6C99DA";
|
|
||||||
magenta = "#C397D8";
|
|
||||||
cyan = "#70C0BA";
|
|
||||||
white = "#EAEAEA";
|
|
||||||
#non standard
|
|
||||||
orange = "#FF7500";
|
|
||||||
brown = "#A07040";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
papirus_red = (pkgs.unstable.papirus-icon-theme.override { color = "red"; });
|
papirus_red = (pkgs.unstable.papirus-icon-theme.override { color = "red"; });
|
||||||
orchis_theme_compact =
|
orchis_theme_compact =
|
||||||
(pkgs.orchis-theme.override { tweaks = [ "compact" "solid" ]; });
|
(pkgs.orchis-theme.override { tweaks = [ "compact" "solid" ]; });
|
||||||
nerdfonts_fira_hack =
|
nerdfonts_fira_hack =
|
||||||
(pkgs.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; });
|
(pkgs.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; });
|
||||||
accent = accents.red;
|
|
||||||
theme = themes.dark;
|
|
||||||
color = theme.color;
|
|
||||||
pulse_sink = pkgs.writeShellScriptBin "pulse_sink" ''
|
pulse_sink = pkgs.writeShellScriptBin "pulse_sink" ''
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
output=$(printf "HDMI\nHeadphones" | ${bmenu}/bin/bmenu -b)
|
output=$(printf "HDMI\nHeadphones" | ${bmenu}/bin/bmenu -b)
|
||||||
|
@ -179,6 +120,9 @@ let
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
imports = [
|
||||||
|
./waybar.nix
|
||||||
|
];
|
||||||
# Home Manager needs a bit of information about you and the
|
# Home Manager needs a bit of information about you and the
|
||||||
# paths it should manage.
|
# paths it should manage.
|
||||||
home.username = "lelgenio";
|
home.username = "lelgenio";
|
||||||
|
@ -627,194 +571,6 @@ in {
|
||||||
# home.file = {
|
# home.file = {
|
||||||
# ".config/sway/config".source = ./sway;
|
# ".config/sway/config".source = ./sway;
|
||||||
# };
|
# };
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
systemd.target = "sway-session.target";
|
|
||||||
settings = [{
|
|
||||||
layer = "top";
|
|
||||||
modules-left = [ "sway/workspaces" "sway/mode" ];
|
|
||||||
modules-center = [ "clock" ];
|
|
||||||
modules-right = [ "custom/caffeine" "pulseaudio" "network" ];
|
|
||||||
network = {
|
|
||||||
interval = 5;
|
|
||||||
tooltip = false;
|
|
||||||
on-click = "terminal iwd";
|
|
||||||
format-wifi = "{icon}";
|
|
||||||
format-icons = [ "" "" "" "" "" ];
|
|
||||||
format-ethernet = "";
|
|
||||||
format-linked = "";
|
|
||||||
format-disconnected = "";
|
|
||||||
};
|
|
||||||
"sway/workspaces" = {
|
|
||||||
enable-bar-scroll = true;
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
"1" = "";
|
|
||||||
"2" = "";
|
|
||||||
"3" = "";
|
|
||||||
"4" = "";
|
|
||||||
"5" = "";
|
|
||||||
"6" = "";
|
|
||||||
"7" = "";
|
|
||||||
"8" = "";
|
|
||||||
"9" = "";
|
|
||||||
"10" = "";
|
|
||||||
urgent = "";
|
|
||||||
focused = "";
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
clock = {
|
|
||||||
interval = 60;
|
|
||||||
format = "<b>{:%H:%M %a %d/%m}</b>";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
"custom/caffeine" = {
|
|
||||||
format = "{}";
|
|
||||||
exec = "pidof swayidle > /dev/null && echo 鈴 || echo ";
|
|
||||||
on-click = "_sway_idle_toggle";
|
|
||||||
interval = 1;
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
pulseaudio = {
|
|
||||||
interval = 5;
|
|
||||||
tooltip = false;
|
|
||||||
scroll-step = 10;
|
|
||||||
format = "{icon}";
|
|
||||||
format-bluetooth = "";
|
|
||||||
format-bluetooth-muted = "";
|
|
||||||
format-muted = "ﱝ";
|
|
||||||
format-icons = {
|
|
||||||
headphone = [ " 奄" " 奔" " 墳" ];
|
|
||||||
handsfree = "";
|
|
||||||
headset = "";
|
|
||||||
phone = "";
|
|
||||||
portable = "";
|
|
||||||
car = "";
|
|
||||||
default = [ "奄" "奔" "墳" ];
|
|
||||||
};
|
|
||||||
on-click = "pavucontrol";
|
|
||||||
on-click-right = "pulse-sink";
|
|
||||||
};
|
|
||||||
}];
|
|
||||||
style = ''
|
|
||||||
/* {%@@ set bg_rgb = hex2rgb(color.bg) @@%} */
|
|
||||||
* {
|
|
||||||
font: ${
|
|
||||||
toString font.size.medium
|
|
||||||
}px "${font.interface}", Font Awesome, Fira Code Nerd Font;
|
|
||||||
border-radius:0;
|
|
||||||
margin:0;
|
|
||||||
padding: 0;
|
|
||||||
transition-duration:0;
|
|
||||||
}
|
|
||||||
window#waybar {
|
|
||||||
/* background-color: rgba(30,30,30,.9); */
|
|
||||||
transition-duration: .5s;
|
|
||||||
/* TODO: background opacity */
|
|
||||||
background-color: ${color.bg};
|
|
||||||
/*{%@@ if bar_pos == "top" @@%}
|
|
||||||
border-bottom:
|
|
||||||
{%@@ else @@%}
|
|
||||||
border-top:
|
|
||||||
{%@@ endif @@%}*/
|
|
||||||
border-bottom:
|
|
||||||
2px solid ${color.bg_dark};
|
|
||||||
}
|
|
||||||
window#waybar.solo {
|
|
||||||
background-color: ${color.bg};
|
|
||||||
}
|
|
||||||
#workspaces button {
|
|
||||||
color: ${color.bg_light};
|
|
||||||
min-width:50px;
|
|
||||||
background-color: transparent;
|
|
||||||
border: 3px solid transparent;
|
|
||||||
}
|
|
||||||
#workspaces button.focused {
|
|
||||||
color: ${color.txt};
|
|
||||||
/*{%@@ if bar_pos == "top" @@%}
|
|
||||||
border-top:
|
|
||||||
{%@@ else @@%}
|
|
||||||
border-bottom:
|
|
||||||
{%@@ endif @@%}*/
|
|
||||||
border-top:
|
|
||||||
3px solid ${accent.color};
|
|
||||||
/* border-bottom: 3px solid transparent; */
|
|
||||||
}
|
|
||||||
/*Window Title*/
|
|
||||||
#window {
|
|
||||||
color: ${color.txt};
|
|
||||||
margin:0 4px;
|
|
||||||
}
|
|
||||||
#mode {
|
|
||||||
color: ${accent.color};
|
|
||||||
}
|
|
||||||
#mpd,
|
|
||||||
#custom-mpd,
|
|
||||||
#tray,
|
|
||||||
#clock,
|
|
||||||
#network,
|
|
||||||
#battery,
|
|
||||||
#backlight,
|
|
||||||
#bluetooth,
|
|
||||||
#pulseaudio,
|
|
||||||
#custom-mail,
|
|
||||||
#custom-spigot,
|
|
||||||
#custom-updates,
|
|
||||||
#custom-weather,
|
|
||||||
#custom-unpushed,
|
|
||||||
#custom-transmissionD,
|
|
||||||
#custom-transmissionS,
|
|
||||||
#custom-delugeD,
|
|
||||||
#custom-delugeS,
|
|
||||||
#custom-caffeine
|
|
||||||
{
|
|
||||||
margin: 0 7px;
|
|
||||||
color: ${color.txt};
|
|
||||||
opacity:.7;
|
|
||||||
}
|
|
||||||
#battery{
|
|
||||||
margin-right:15px;
|
|
||||||
}
|
|
||||||
#clock,
|
|
||||||
#custom-weather
|
|
||||||
{
|
|
||||||
font-size: ${toString font.size.big}px;
|
|
||||||
}
|
|
||||||
#network,
|
|
||||||
#pulseaudio,
|
|
||||||
#custom-caffeine
|
|
||||||
{
|
|
||||||
margin-top:-1px;
|
|
||||||
font-size:16px;
|
|
||||||
}
|
|
||||||
#mpd,
|
|
||||||
#window,
|
|
||||||
#workspaces
|
|
||||||
{
|
|
||||||
font-weight:normal;
|
|
||||||
}
|
|
||||||
#custom-unpushed,
|
|
||||||
#custom-recording {
|
|
||||||
min-width:15px;
|
|
||||||
color: #ee4040;
|
|
||||||
}
|
|
||||||
#tray {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
#language {
|
|
||||||
font-size: ${toString font.size.medium}px;
|
|
||||||
color: ${color.bg_light};
|
|
||||||
}
|
|
||||||
#custom-sleep {
|
|
||||||
color: ${accent.color};
|
|
||||||
font-size: ${toString font.size.big}px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
69
user/variables.nix
Normal file
69
user/variables.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
let
|
||||||
|
keys = {
|
||||||
|
colemak = {
|
||||||
|
layout = "colemak";
|
||||||
|
hints = "arstwfuyneio";
|
||||||
|
left = "n";
|
||||||
|
down = "e";
|
||||||
|
up = "i";
|
||||||
|
right = "o";
|
||||||
|
next = "l";
|
||||||
|
tabL = "u";
|
||||||
|
tabR = "Y";
|
||||||
|
insertMode = "s";
|
||||||
|
insertQuit = "kk";
|
||||||
|
menu = "s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
accents = {
|
||||||
|
red = {
|
||||||
|
color = "#F44336";
|
||||||
|
fg = "#ffffff";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
themes = {
|
||||||
|
dark = {
|
||||||
|
background = "~/.local/share/backgrounds/assembly_dark.png";
|
||||||
|
opacity = 98;
|
||||||
|
opacityHex = "ee";
|
||||||
|
color = {
|
||||||
|
type = "dark";
|
||||||
|
bg = "#202020";
|
||||||
|
bg_light = "#404040";
|
||||||
|
bg_dark = "#191919";
|
||||||
|
txt = "#FFFFFF";
|
||||||
|
nontxt = "#252525";
|
||||||
|
random_range = "[a-f]";
|
||||||
|
normal = {
|
||||||
|
black = "#404040";
|
||||||
|
red = "#AB4642";
|
||||||
|
green = "#A1B56C";
|
||||||
|
yellow = "#E6C547";
|
||||||
|
blue = "#6C99DA";
|
||||||
|
magenta = "#C397D8";
|
||||||
|
cyan = "#70C0BA";
|
||||||
|
white = "#EAEAEA";
|
||||||
|
#non standard
|
||||||
|
orange = "#FF7500";
|
||||||
|
brown = "#A07040";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in rec {
|
||||||
|
key = keys.colemak;
|
||||||
|
|
||||||
|
theme = themes.dark;
|
||||||
|
color = theme.color;
|
||||||
|
accent = accents.red;
|
||||||
|
|
||||||
|
font = {
|
||||||
|
mono = "Hack Nerd Font";
|
||||||
|
interface = "Liberation Sans";
|
||||||
|
size = {
|
||||||
|
small = 12;
|
||||||
|
medium = 14;
|
||||||
|
big = 16;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
194
user/waybar.nix
Normal file
194
user/waybar.nix
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
{ config, pkgs, lib, font, ... }: let
|
||||||
|
inherit (import ./variables.nix) key theme color accent font;
|
||||||
|
in {
|
||||||
|
config = {
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
systemd.target = "sway-session.target";
|
||||||
|
settings = [{
|
||||||
|
layer = "top";
|
||||||
|
modules-left = [ "sway/workspaces" "sway/mode" ];
|
||||||
|
modules-center = [ "clock" ];
|
||||||
|
modules-right = [ "custom/caffeine" "pulseaudio" "network" ];
|
||||||
|
network = {
|
||||||
|
interval = 5;
|
||||||
|
tooltip = false;
|
||||||
|
on-click = "terminal iwd";
|
||||||
|
format-wifi = "{icon}";
|
||||||
|
format-icons = [ "" "" "" "" "" ];
|
||||||
|
format-ethernet = "";
|
||||||
|
format-linked = "";
|
||||||
|
format-disconnected = "";
|
||||||
|
};
|
||||||
|
"sway/workspaces" = {
|
||||||
|
enable-bar-scroll = true;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = "";
|
||||||
|
"2" = "";
|
||||||
|
"3" = "";
|
||||||
|
"4" = "";
|
||||||
|
"5" = "";
|
||||||
|
"6" = "";
|
||||||
|
"7" = "";
|
||||||
|
"8" = "";
|
||||||
|
"9" = "";
|
||||||
|
"10" = "";
|
||||||
|
urgent = "";
|
||||||
|
focused = "";
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
interval = 60;
|
||||||
|
format = "<b>{:%H:%M %a %d/%m}</b>";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"custom/caffeine" = {
|
||||||
|
format = "{}";
|
||||||
|
exec = "pidof swayidle > /dev/null && echo 鈴 || echo ";
|
||||||
|
on-click = "_sway_idle_toggle";
|
||||||
|
interval = 1;
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
interval = 5;
|
||||||
|
tooltip = false;
|
||||||
|
scroll-step = 10;
|
||||||
|
format = "{icon}";
|
||||||
|
format-bluetooth = "";
|
||||||
|
format-bluetooth-muted = "";
|
||||||
|
format-muted = "ﱝ";
|
||||||
|
format-icons = {
|
||||||
|
headphone = [ " 奄" " 奔" " 墳" ];
|
||||||
|
handsfree = "";
|
||||||
|
headset = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
car = "";
|
||||||
|
default = [ "奄" "奔" "墳" ];
|
||||||
|
};
|
||||||
|
on-click = "pavucontrol";
|
||||||
|
on-click-right = "pulse-sink";
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
style = ''
|
||||||
|
/* {%@@ set bg_rgb = hex2rgb(color.bg) @@%} */
|
||||||
|
* {
|
||||||
|
font: ${
|
||||||
|
toString font.size.medium
|
||||||
|
}px "${font.interface}", Font Awesome, Fira Code Nerd Font;
|
||||||
|
border-radius:0;
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
transition-duration:0;
|
||||||
|
}
|
||||||
|
window#waybar {
|
||||||
|
/* background-color: rgba(30,30,30,.9); */
|
||||||
|
transition-duration: .5s;
|
||||||
|
/* TODO: background opacity */
|
||||||
|
background-color: ${color.bg};
|
||||||
|
/*{%@@ if bar_pos == "top" @@%}
|
||||||
|
border-bottom:
|
||||||
|
{%@@ else @@%}
|
||||||
|
border-top:
|
||||||
|
{%@@ endif @@%}*/
|
||||||
|
border-bottom:
|
||||||
|
2px solid ${color.bg_dark};
|
||||||
|
}
|
||||||
|
window#waybar.solo {
|
||||||
|
background-color: ${color.bg};
|
||||||
|
}
|
||||||
|
#workspaces button {
|
||||||
|
color: ${color.bg_light};
|
||||||
|
min-width:50px;
|
||||||
|
background-color: transparent;
|
||||||
|
border: 3px solid transparent;
|
||||||
|
}
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: ${color.txt};
|
||||||
|
/*{%@@ if bar_pos == "top" @@%}
|
||||||
|
border-top:
|
||||||
|
{%@@ else @@%}
|
||||||
|
border-bottom:
|
||||||
|
{%@@ endif @@%}*/
|
||||||
|
border-top:
|
||||||
|
3px solid ${accent.color};
|
||||||
|
/* border-bottom: 3px solid transparent; */
|
||||||
|
}
|
||||||
|
/*Window Title*/
|
||||||
|
#window {
|
||||||
|
color: ${color.txt};
|
||||||
|
margin:0 4px;
|
||||||
|
}
|
||||||
|
#mode {
|
||||||
|
color: ${accent.color};
|
||||||
|
}
|
||||||
|
#mpd,
|
||||||
|
#custom-mpd,
|
||||||
|
#tray,
|
||||||
|
#clock,
|
||||||
|
#network,
|
||||||
|
#battery,
|
||||||
|
#backlight,
|
||||||
|
#bluetooth,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-mail,
|
||||||
|
#custom-spigot,
|
||||||
|
#custom-updates,
|
||||||
|
#custom-weather,
|
||||||
|
#custom-unpushed,
|
||||||
|
#custom-transmissionD,
|
||||||
|
#custom-transmissionS,
|
||||||
|
#custom-delugeD,
|
||||||
|
#custom-delugeS,
|
||||||
|
#custom-caffeine
|
||||||
|
{
|
||||||
|
margin: 0 7px;
|
||||||
|
color: ${color.txt};
|
||||||
|
opacity:.7;
|
||||||
|
}
|
||||||
|
#battery{
|
||||||
|
margin-right:15px;
|
||||||
|
}
|
||||||
|
#clock,
|
||||||
|
#custom-weather
|
||||||
|
{
|
||||||
|
font-size: ${toString font.size.big}px;
|
||||||
|
}
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-caffeine
|
||||||
|
{
|
||||||
|
margin-top:-1px;
|
||||||
|
font-size:16px;
|
||||||
|
}
|
||||||
|
#mpd,
|
||||||
|
#window,
|
||||||
|
#workspaces
|
||||||
|
{
|
||||||
|
font-weight:normal;
|
||||||
|
}
|
||||||
|
#custom-unpushed,
|
||||||
|
#custom-recording {
|
||||||
|
min-width:15px;
|
||||||
|
color: #ee4040;
|
||||||
|
}
|
||||||
|
#tray {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
#language {
|
||||||
|
font-size: ${toString font.size.medium}px;
|
||||||
|
color: ${color.bg_light};
|
||||||
|
}
|
||||||
|
#custom-sleep {
|
||||||
|
color: ${accent.color};
|
||||||
|
font-size: ${toString font.size.big}px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue