Modified polybar
This commit is contained in:
@@ -4,6 +4,11 @@
|
||||
home.stateVersion = "22.05";
|
||||
|
||||
samfelag = {
|
||||
modules = {
|
||||
app = {
|
||||
spotify.enable = true;
|
||||
};
|
||||
};
|
||||
profiles = {
|
||||
desktop.enable = true;
|
||||
gaming.enable = true;
|
||||
|
||||
@@ -3,5 +3,6 @@
|
||||
{
|
||||
imports = [
|
||||
./alacritty.nix
|
||||
./spotify.nix
|
||||
];
|
||||
}
|
||||
|
||||
17
home/modules/app/spotify.nix
Normal file
17
home/modules/app/spotify.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.samfelag.modules.app.spotify;
|
||||
in
|
||||
{
|
||||
options.samfelag.modules.app.spotify = {
|
||||
enable = mkEnableOption "spotify";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
spotify
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -17,6 +17,8 @@ let
|
||||
};
|
||||
});
|
||||
|
||||
system_mode = "System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown";
|
||||
|
||||
in {
|
||||
|
||||
options.samfelag.modules.desktop.i3 = {
|
||||
@@ -44,6 +46,8 @@ in {
|
||||
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3-gaps;
|
||||
|
||||
config = {
|
||||
modifier = mod;
|
||||
|
||||
@@ -57,11 +61,43 @@ in {
|
||||
|
||||
bars = [ ];
|
||||
|
||||
window = {
|
||||
border = 1;
|
||||
titlebar = false;
|
||||
};
|
||||
|
||||
# gaps = {
|
||||
# inner = 10;
|
||||
# outer = 5;
|
||||
# };
|
||||
|
||||
startup = [
|
||||
{ command = "i3-msg workspace 1"; }
|
||||
{ command = "systemctl --user restart polybar"; always = true; notification = false; }
|
||||
];
|
||||
|
||||
modes = {
|
||||
"resize" = {
|
||||
"h" = "resize shrink width 10 px or 10 ppt";
|
||||
"j" = "resize grow height 10 px or 10 ppt";
|
||||
"k" = "resize shrink height 10 px or 10 ppt";
|
||||
"l" = "resize grow width 10 px or 10 ppt";
|
||||
|
||||
"Left" = "resize shrink width 10 px or 10 ppt";
|
||||
"Down" = "resize grow height 10 px or 10 ppt";
|
||||
"Up" = "resize shrink height 10 px or 10 ppt";
|
||||
"Right" = "resize grow width 10 px or 10 ppt";
|
||||
|
||||
"Return" = "mode \"default\"";
|
||||
"Escape" = "mode \"default\"";
|
||||
};
|
||||
|
||||
"${system_mode}" = {
|
||||
"Return" = "mode \"default\"";
|
||||
"Escape" = "mode \"default\"";
|
||||
};
|
||||
};
|
||||
|
||||
keybindings = {
|
||||
"${mod}+q" = "kill";
|
||||
|
||||
@@ -107,6 +143,26 @@ in {
|
||||
"${mod}+Shift+c" = "reload";
|
||||
"${mod}+Shift+r" = "restart";
|
||||
|
||||
# - Modes ------------------------------
|
||||
"${mod}+r" = "mode \"resize\"";
|
||||
"${mod}+End" = "mode \"${system_mode}\"";
|
||||
|
||||
# - Media ------------------------------
|
||||
|
||||
# Pulse Audio controls
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
||||
"Shift+XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1%";
|
||||
"Shift+XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1%";
|
||||
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
|
||||
# Media player controls
|
||||
"XF86AudioPlay" = "exec playerctl play-pause";
|
||||
"XF86AudioPause" = "exec playerctl play-pause";
|
||||
"XF86AudioNext" = "exec playerctl next";
|
||||
"XF86AudioPrev" = "exec playerctl previous";
|
||||
"XF86AudioStop" = "exec playerctl stop";
|
||||
|
||||
# - Workspaces -------------------------
|
||||
"${mod}+1" = "workspace 1";
|
||||
"${mod}+2" = "workspace 2";
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
let
|
||||
cfg = config.samfelag.modules.desktop.polybar;
|
||||
polybar_pkg = pkgs.polybar.override {
|
||||
i3Support = true;
|
||||
pulseSupport = true;
|
||||
};
|
||||
script = ''
|
||||
polybar top &
|
||||
polybar bottom &
|
||||
'';
|
||||
in {
|
||||
|
||||
options.samfelag.modules.desktop.polybar = {
|
||||
@@ -12,211 +20,30 @@ in {
|
||||
|
||||
# - Configuration ----------------------------
|
||||
|
||||
services.polybar = {
|
||||
enable = true;
|
||||
home.packages = [
|
||||
polybar_pkg
|
||||
];
|
||||
|
||||
package = pkgs.polybar.override {
|
||||
i3Support = true;
|
||||
pulseSupport = true;
|
||||
xdg.configFile."polybar/config.ini".source = ../../../config/.config/polybar/config.ini;
|
||||
xdg.configFile."polybar/bars".source = ../../../config/.config/polybar/bars;
|
||||
|
||||
systemd.user.services.polybar = {
|
||||
Unit = {
|
||||
Description = "Polybar status bar";
|
||||
PartOf = [ "tray.target" ];
|
||||
X-Restart-Triggers = [ "${config.xdg.configFile."polybar/config.ini".source}" ];
|
||||
};
|
||||
|
||||
config = {
|
||||
|
||||
# - Colors -------------------------------
|
||||
|
||||
"colors" = {
|
||||
"background" = "#222";
|
||||
"background-alt" = "#444";
|
||||
"foreground" = "#dfdfdf";
|
||||
"foreground-alt" = "#555";
|
||||
"primary" = "#ffb52a";
|
||||
"secondary" = "#e60053";
|
||||
"alert" = "#bd2c40";
|
||||
};
|
||||
|
||||
# - Mainbar ------------------------------
|
||||
|
||||
"bar/mainbar-i3" = {
|
||||
"monitor" = "\${env:MONITOR}";
|
||||
"monitor-strict" = "false";
|
||||
"bottom" = "false";
|
||||
"fixed-center" = "true";
|
||||
"width" = "100%";
|
||||
"height" = "30";
|
||||
|
||||
"background" = "\${colors.background}";
|
||||
"foreground" = "\${colors.foreground}";
|
||||
|
||||
"radius" = "0.0";
|
||||
"line-size" = "2";
|
||||
"line-color" = "#000000";
|
||||
"border-color" = "#000000";
|
||||
|
||||
"padding-left" = "1";
|
||||
"padding-right" = "1";
|
||||
|
||||
"module-margin-left" = "0";
|
||||
"module-margin-right" = "0";
|
||||
|
||||
"font-0" = "\"Iosevka:style=Regular:size=15;2\"";
|
||||
"font-1" = "\"Iosevka:size=16;3\"";
|
||||
"font-2" = "\"Iosevka:style=Regular:pixelsize=10;1\"";
|
||||
"font-3" = "\"Iosevka:style=Solid:pixelsize=10;1\"";
|
||||
"font-4" = "\"Iosevka:pixelsize=10;1\"";
|
||||
|
||||
"modules-left" = "i3";
|
||||
"modules-center" = "date";
|
||||
"modules-right" = "wifi pulseaudio battery";
|
||||
|
||||
"separator" = "\" : \"";
|
||||
|
||||
"tray-position" = "left";
|
||||
"tray-detached" = "false";
|
||||
"tray-maxsize" = "20";
|
||||
"tray-background" = "\${colors.background}";
|
||||
"tray-offset-x" = "0";
|
||||
"tray-offset-y" = "0";
|
||||
"tray-padding" = "4";
|
||||
"tray-scale" = "1.0";
|
||||
|
||||
"enable-ipc" = "true";
|
||||
|
||||
"click-left" = "";
|
||||
"click-middle" = "";
|
||||
"click-right" = "";
|
||||
"scroll-up" = "i3wm-wsnext";
|
||||
"scroll-down" = "i3wm-wsprev";
|
||||
"double-click-left" = "";
|
||||
"double-click-middle" = "";
|
||||
"double-click-right" = "";
|
||||
|
||||
"cursor-click" = "";
|
||||
"cursor-scroll" = "";
|
||||
};
|
||||
|
||||
# - Module: i3 ---------------------------
|
||||
|
||||
"module/i3" = {
|
||||
"type" = "internal/i3";
|
||||
"format" = "<label-state> <label-mode>";
|
||||
"index-sort" = "true";
|
||||
"wrapping-scroll" = "false";
|
||||
|
||||
"label-mode-padding" = "2";
|
||||
"label-mode-foreground" = "#000";
|
||||
"label-mode-background" = "\${colors.primary}";
|
||||
|
||||
"label-focused" = "%index%";
|
||||
"label-focused-background" = "\${colors.background-alt}";
|
||||
"label-focused-underline" = "\${colors.secondary}";
|
||||
"label-focused-padding" = "2";
|
||||
|
||||
"label-unfocused" = "%index%";
|
||||
"label-unfocused-padding" = "2";
|
||||
|
||||
"label-visible" = "%index%";
|
||||
"label-visible-background" = "\${self.label-focused-background}";
|
||||
"label-visible-underline" = "\${colors.primary}";
|
||||
"label-visible-padding" = "\${self.label-focused-padding}";
|
||||
|
||||
"label-urgent" = "%index%";
|
||||
"label-urgent-background" = "\${colors.alert}";
|
||||
"label-urgent-padding" = "2";
|
||||
};
|
||||
|
||||
# - Module: date -------------------------
|
||||
|
||||
"module/date" = {
|
||||
"type" = "internal/date";
|
||||
"interval" = "1";
|
||||
|
||||
"date" = "%A, %d %B %Y";
|
||||
"time" = "%H:%M:%S";
|
||||
|
||||
"time-alt" = "%H:%M:%S %Z (%z)";
|
||||
"date-alt" = "%Y-%m-%d";
|
||||
|
||||
"format-prefix" = "";
|
||||
"format-prefix-foreground" = "\${colors.foreground-alt}";
|
||||
"format-underline" = "";
|
||||
|
||||
"label" = "%date% · %time%";
|
||||
};
|
||||
|
||||
# - Module: pulseaudio -------------------
|
||||
|
||||
"module/pulseaudio" = {
|
||||
"type" = "internal/pulseaudio";
|
||||
|
||||
"format-volume" = "<label-volume> <bar-volume>";
|
||||
"label-volume" = "VOL %percentage%%";
|
||||
"label-volume-foreground" = "\${colors.foreground-alt}";
|
||||
|
||||
"label-muted" = "muted";
|
||||
"label-muted-foreground" = "#666";
|
||||
|
||||
"bar-volume-width" = "10";
|
||||
"bar-volume-foreground-0" = "#55aa55";
|
||||
"bar-volume-foreground-1" = "#55aa55";
|
||||
"bar-volume-foreground-2" = "#55aa55";
|
||||
"bar-volume-foreground-3" = "#55aa55";
|
||||
"bar-volume-foreground-4" = "#55aa55";
|
||||
"bar-volume-foreground-5" = "#f5a70a";
|
||||
"bar-volume-foreground-6" = "#ff5555";
|
||||
"bar-volume-gradient" = "false";
|
||||
"bar-volume-indicator" = "|";
|
||||
"bar-volume-indicator-font" = "0";
|
||||
"bar-volume-fill" = "-";
|
||||
"bar-volume-fill-font" = "0";
|
||||
"bar-volume-empty" = "-";
|
||||
"bar-volume-empty-font" = "0";
|
||||
"bar-volume-empty-foreground" = "\${colors.foreground-alt}";
|
||||
};
|
||||
|
||||
# - Module: battery ----------------------
|
||||
|
||||
"module/battery" = {
|
||||
"type" = "internal/battery";
|
||||
"battery" = "BAT0";
|
||||
"adapter" = "AC";
|
||||
"full-at" = "98";
|
||||
|
||||
"format-charging-prefix" = "\"▴\"";
|
||||
"format-charging" = "<label-charging>";
|
||||
"format-charging-foreground" = "#55aa55";
|
||||
"format-charging-underline" = "";
|
||||
|
||||
"format-discharging-prefix" = "\"▾\"";
|
||||
"format-discharging" = "<label-discharging>";
|
||||
"format-discharging-foreground" = "#f5a70a";
|
||||
"format-discharging-underline" = "";
|
||||
|
||||
"format-full" = "FULL BATTERY";
|
||||
"format-full-foreground" = "#55aa55";
|
||||
"format-full-underline" = "\${self.format-charging-underline}";
|
||||
|
||||
"ramp-capacity-0" = "";
|
||||
"ramp-capacity-1" = "";
|
||||
"ramp-capacity-2" = "";
|
||||
"ramp-capacity-foreground" = "\${colors.foreground-alt}";
|
||||
};
|
||||
Service = {
|
||||
Type = "forking";
|
||||
Environment = "PATH=${polybar_pkg}/bin:/run/wrappers/bin";
|
||||
ExecStart =
|
||||
let scriptPkg = pkgs.writeShellScriptBin "polybar-start" script;
|
||||
in "${scriptPkg}/bin/polybar-start";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
|
||||
script = "polybar --reload mainbar-i3 &";
|
||||
# #!/usr/bin/env bash
|
||||
|
||||
# # Terminate already running bar instances
|
||||
# killall -q polybar
|
||||
#
|
||||
# # Wait until the processes have been shut down
|
||||
# while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
#
|
||||
# for m in $(polybar --list-monitors | cut -d":" -f1); do
|
||||
# WIRELESS=$(ls /sys/class/net/ | grep ^wl | awk 'NR==1{print $1}') MONITOR=$m polybar --reload mainbar-i3 &
|
||||
# done
|
||||
#
|
||||
# echo "Bars launched..."
|
||||
# '';
|
||||
Install = { WantedBy = [ "tray.target" ]; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ in
|
||||
app.alacritty.enable = true;
|
||||
};
|
||||
|
||||
services.picom.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
rofi
|
||||
firefox
|
||||
|
||||
Reference in New Issue
Block a user