mirror of
https://github.com/Nickiel12/nicks-nix-config.git
synced 2024-11-22 20:59:32 -08:00
updates to workspaces; updated eww bar
This commit is contained in:
parent
7447cdd889
commit
364e69481d
6 changed files with 212 additions and 122 deletions
|
@ -6,6 +6,11 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
# max cores used per derivation
|
||||||
|
nix.settings.cores = 8;
|
||||||
|
# max derivations that can be built at once
|
||||||
|
# nix.settings.max-jobs = 2;
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
security.pam.services.kwallet = {
|
security.pam.services.kwallet = {
|
||||||
|
|
|
@ -5,7 +5,6 @@ let
|
||||||
hostname = osConfig.networking.hostName;
|
hostname = osConfig.networking.hostName;
|
||||||
|
|
||||||
monitor_config = import ./monitors.nix { hostname = hostname; };
|
monitor_config = import ./monitors.nix { hostname = hostname; };
|
||||||
workspace_config = import ./workspaces.nix { hostname = hostname; };
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -13,6 +12,7 @@ in
|
||||||
imports = [
|
imports = [
|
||||||
./ewwbar.nix
|
./ewwbar.nix
|
||||||
./keybinds.nix
|
./keybinds.nix
|
||||||
|
./displays.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
@ -33,7 +33,6 @@ in
|
||||||
|
|
||||||
extraConfig = lib.strings.concatStrings [
|
extraConfig = lib.strings.concatStrings [
|
||||||
monitor_config
|
monitor_config
|
||||||
# workspace_config
|
|
||||||
''
|
''
|
||||||
|
|
||||||
''
|
''
|
||||||
|
@ -41,20 +40,6 @@ in
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|
||||||
workspace = [
|
|
||||||
"1,monitor:DP-2"
|
|
||||||
"3,monitor:DP-2"
|
|
||||||
"5,monitor:DP-2"
|
|
||||||
"7,monitor:DP-2"
|
|
||||||
"9,monitor:DP-2"
|
|
||||||
|
|
||||||
"2,monitor:DP-3"
|
|
||||||
"4,monitor:DP-3"
|
|
||||||
"6,monitor:DP-3"
|
|
||||||
"8,monitor:DP-3"
|
|
||||||
"10,monitor:DP-3"
|
|
||||||
];
|
|
||||||
|
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
exec-once = [
|
exec-once = [
|
||||||
|
|
|
@ -1,23 +1,26 @@
|
||||||
{ hostname ? "undefined" }:
|
{ osConfig, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
monitor_config = if (hostname == "NicksNixDesktop") then
|
|
||||||
''
|
|
||||||
monitor=DP-2, 2560x1440@144, 1920x0, 1
|
|
||||||
monitor=DP-3, 1920x1080@60, 0x360,1
|
|
||||||
|
|
||||||
env = LIBVA_DRIVER_NAME,nvidia
|
hostname = osConfig.networking.hostName;
|
||||||
env = XDG_SESSION_TYPE,wayland
|
|
||||||
env = GBM_BACKEND,nvidia-drm
|
|
||||||
env = WLR_NO_HARDWARE_CURSORS,1
|
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
workspace = if (hostname == "NicksNixDesktop") then [
|
||||||
|
"1,monitor:DP-2"
|
||||||
|
"3,monitor:DP-2"
|
||||||
|
"5,monitor:DP-2"
|
||||||
|
"7,monitor:DP-2"
|
||||||
|
"9,monitor:DP-2"
|
||||||
|
|
||||||
''
|
"2,monitor:DP-3"
|
||||||
else if (hostname == "NicksNixLaptop") then ''
|
"4,monitor:DP-3"
|
||||||
|
"6,monitor:DP-3"
|
||||||
'' else ''
|
"8,monitor:DP-3"
|
||||||
|
"10,monitor:DP-3"
|
||||||
'';
|
] else [
|
||||||
|
|
||||||
in monitor_config
|
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -3,52 +3,41 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
//Global Styles
|
//Global Styles
|
||||||
.bar {
|
.bar-main {
|
||||||
background-color: #3a3a3a;
|
|
||||||
color: #b0b4bc;
|
color: #b0b4bc;
|
||||||
|
margin: 15px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Styles on classes (see eww.yuck for more information)
|
.bar-section {
|
||||||
|
background-color: rgba(200, 200, 200, 0.5);
|
||||||
.sidestuff slider {
|
border-radius: 15;
|
||||||
all: unset;
|
|
||||||
color: #ffd5cd;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.metric scale trough highlight {
|
.sep {
|
||||||
all: unset;
|
color: rgba(200, 200, 200, 0.5);
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
}
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
.time {
|
||||||
background-color: #4e4e4e;
|
font-weight: bold;
|
||||||
border-radius: 50px;
|
padding-right: 20px;
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
}
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
.alert {
|
||||||
background-color: #D35D6E;
|
color: #aa5555;
|
||||||
color: #000000;
|
padding: 5px;
|
||||||
border-radius: 10px;
|
|
||||||
}
|
}
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
.regular {
|
||||||
background-color: #4e4e4e;
|
color: #b0b4bc;
|
||||||
border-radius: 50px;
|
padding: 5px;
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
}
|
||||||
.label-ram {
|
|
||||||
font-size: large;
|
.active-workspace {
|
||||||
}
|
background-color: rgba(150, 150, 150, 0.4);
|
||||||
.workspaces button:hover {
|
border-radius: 10;
|
||||||
color: #D35D6E;
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +1,140 @@
|
||||||
(defwidget bar []
|
(defwidget bar []
|
||||||
(centerbox :orientation "h"
|
(centerbox :orientation "h"
|
||||||
(workspaces)
|
(workspaces :names active-workspaces :current-idx current-workspace)
|
||||||
(music)
|
(music)
|
||||||
(sidestuff)))
|
(info)))
|
||||||
|
|
||||||
(defwidget sidestuff []
|
(deflisten active-workspaces :initial "[]" "bash ./scripts/get-workspaces")
|
||||||
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
|
(deflisten current-workspace :initial "1" "bash ./scripts/get-active-workspace")
|
||||||
(metric :label "🔊"
|
(defwidget workspaces [names current-idx]
|
||||||
:value volume
|
(box
|
||||||
:onchange "amixer -D pulse sset Master {}%")
|
:halign "start"
|
||||||
(metric :label ""
|
:hexpand false
|
||||||
:value {EWW_RAM.used_mem_perc}
|
:space-evenly true
|
||||||
:onchange "")
|
:spacing "12"
|
||||||
(metric :label "💾"
|
:css "* {margin-left: 20px; margin-right: 20px;}"
|
||||||
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
(box
|
||||||
:onchange "")
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "1" ? "active-workspace" : "regular"}
|
||||||
time))
|
(label :text {names =~ `"1"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "2" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"2"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "3" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"3"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "4" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"4"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "5" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"5"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "6" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"6"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "7" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"7"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "8" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"8"` ? "" : ""}))
|
||||||
|
(box
|
||||||
|
:class {replace(captures(names, "\"[0-9]\"")[captures(current-idx, "[0-9]")[0][0]][0], "\"", "") == "9" ? "active-workspace" : "regular"}
|
||||||
|
(label :text {names =~ `"9"` ? "" : ""}))))
|
||||||
|
|
||||||
(deflisten workspaces :initial "[]" "bash ./scripts/get-workspaces")
|
(defwidget info []
|
||||||
(deflisten current_workspace :initial "1" "bash ./scripts/get-active-workspace")
|
(box
|
||||||
(defwidget workspaces []
|
:class "side-stuff"
|
||||||
(eventbox :onscroll "bash ./scripts/change-active-workspace {} ${current_workspace}" :class "workspaces-widget"
|
:halign "end"
|
||||||
(box :space-evenly true
|
:space-evenly false
|
||||||
(label :text "${workspaces}${current_workspace}" :visible false)
|
:spacing "25"
|
||||||
(for workspace in workspaces
|
(box
|
||||||
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
|
:space-evenly false
|
||||||
(box :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
|
:spacing "10"
|
||||||
(label :text "${workspace.id}")
|
(_volume :volume volume)
|
||||||
)
|
(_battery :status {EWW_BATTERY.BAT0.status} :battery {EWW_BATTERY.BAT0.capacity}))
|
||||||
)
|
(_network :strength net-strength :name net-name)
|
||||||
)
|
(sep)
|
||||||
)
|
(buttons)))
|
||||||
)
|
|
||||||
)
|
(defvar eww "eww -c $HOME/.config/eww")
|
||||||
|
|
||||||
|
(defwidget revealer-on-hover [toggle togglename ?transition ?duration]
|
||||||
|
(eventbox
|
||||||
|
:onhover "${eww} update ${togglename}=true"
|
||||||
|
:onhoverlost "${eww} update ${togglename}=false"
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
(children :nth 0)
|
||||||
|
(revealer
|
||||||
|
:reveal toggle
|
||||||
|
:transition {transition ?: "slideright"}
|
||||||
|
:duration {duration ?: "300ms"}
|
||||||
|
(children :nth 1)))))
|
||||||
|
|
||||||
|
(defvar volume-visible false)
|
||||||
|
(defwidget _volume [volume]
|
||||||
|
(box
|
||||||
|
:hexpand false
|
||||||
|
:class {volume > 100 ? "alert" : "regular"}
|
||||||
|
(revealer-on-hover
|
||||||
|
:toggle volume-visible
|
||||||
|
:togglename "volume-visible"
|
||||||
|
(label :text {volume <= 0 ? " " :
|
||||||
|
volume < 33 ? " " :
|
||||||
|
volume < 66 ? " " :
|
||||||
|
volume < 99 ? " " : " "})
|
||||||
|
(label :text "${volume}%"))))
|
||||||
|
|
||||||
|
|
||||||
|
(defvar battery-visible false)
|
||||||
|
(defwidget _battery [status battery]
|
||||||
|
(box
|
||||||
|
:hexpand false
|
||||||
|
:class {battery < 20 ? "alert" : "regular"}
|
||||||
|
(revealer-on-hover
|
||||||
|
:toggle battery-visible
|
||||||
|
:togglename "battery-visible"
|
||||||
|
(label :text {status == 'Charging' ? "" :
|
||||||
|
battery < 20 ? "" :
|
||||||
|
battery < 40 ? "" :
|
||||||
|
battery < 60 ? "" :
|
||||||
|
battery < 80 ? "" : ""})
|
||||||
|
(label :text "${battery}%"))))
|
||||||
|
|
||||||
|
(defvar network-visible false)
|
||||||
|
(defwidget _network [strength name]
|
||||||
|
(box
|
||||||
|
:hexpand false
|
||||||
|
:vexpand true
|
||||||
|
:class "regular"
|
||||||
|
(revealer-on-hover
|
||||||
|
:toggle network-visible
|
||||||
|
:togglename "network-visible"
|
||||||
|
:ransition "slidedown"
|
||||||
|
(label :text {strength == "" ? " " :
|
||||||
|
strength < 26 ? " " :
|
||||||
|
strength < 51 ? " " :
|
||||||
|
strength < 76 ? " " : " "})
|
||||||
|
(label :text "${name} (${strength})"))))
|
||||||
|
|
||||||
|
(defwidget buttons []
|
||||||
|
(box
|
||||||
|
:halign "end"
|
||||||
|
:hexpand false
|
||||||
|
:space-evenly true
|
||||||
|
:spacing "15"
|
||||||
|
(box (button :onclick `hyprctl dispatch exit` " "))
|
||||||
|
(box (button :onclick `reboot` " "))
|
||||||
|
(box (button :onclick `shutdown now` " "))))
|
||||||
|
|
||||||
|
(defwidget sep [] (box :hexpand false (label :class "sep" :text "|")))
|
||||||
|
|
||||||
|
(defpoll net-strength :interval "5s" :initial `N/A`
|
||||||
|
`nmcli -t -f SIGNAL,ACTIVE device wifi | awk -F':' '{if($2=="yes")print$1}'`)
|
||||||
|
(defpoll net-name :interval "60s" :initial "N/A" "nmcli -t -f NAME c show --active | head -n 1")
|
||||||
|
|
||||||
|
(deflisten music :initial ""
|
||||||
|
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
||||||
|
|
||||||
(defwidget music []
|
(defwidget music []
|
||||||
(box :class "music"
|
(box :class "music"
|
||||||
|
@ -41,23 +143,6 @@
|
||||||
:halign "center"
|
:halign "center"
|
||||||
{music != "" ? "🎵${music}" : ""}))
|
{music != "" ? "🎵${music}" : ""}))
|
||||||
|
|
||||||
|
|
||||||
(defwidget metric [label value onchange]
|
|
||||||
(box :orientation "h"
|
|
||||||
:class "metric"
|
|
||||||
:space-evenly false
|
|
||||||
(box :class "label" label)
|
|
||||||
(scale :min 0
|
|
||||||
:max 101
|
|
||||||
:active {onchange != ""}
|
|
||||||
:value value
|
|
||||||
:onchange onchange)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(deflisten music :initial ""
|
|
||||||
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
|
||||||
|
|
||||||
(defpoll volume :interval "1s"
|
(defpoll volume :interval "1s"
|
||||||
"scripts/getvol")
|
"scripts/getvol")
|
||||||
|
|
||||||
|
@ -66,6 +151,7 @@
|
||||||
|
|
||||||
(defwindow bar
|
(defwindow bar
|
||||||
:monitor 0
|
:monitor 0
|
||||||
|
:exclusive true
|
||||||
:windowtype "dock"
|
:windowtype "dock"
|
||||||
:geometry (geometry :x "0%"
|
:geometry (geometry :x "0%"
|
||||||
:y "0%"
|
:y "0%"
|
||||||
|
|
22
modules/hyprland/monitors.nix
Normal file
22
modules/hyprland/monitors.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ hostname ? "undefined" }:
|
||||||
|
|
||||||
|
# Yes, this is less efficient, but I wanted to save this solution to the issue for future reference
|
||||||
|
let
|
||||||
|
monitor_config = if (hostname == "NicksNixDesktop") then
|
||||||
|
''
|
||||||
|
monitor=DP-2, 2560x1440@144, 1920x0, 1
|
||||||
|
monitor=DP-3, 1920x1080@60, 0x360,1
|
||||||
|
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
''
|
||||||
|
else if (hostname == "NicksNixLaptop") then ''
|
||||||
|
|
||||||
|
'' else ''
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
in monitor_config
|
||||||
|
|
Loading…
Reference in a new issue