Updated NIX file to nix formatting standard

On branch main
 Your branch is up to date with 'origin/main'.

 Changes to be committed:
	modified:   CHANGELOG.md
	modified:   flake.nix
	modified:   hosts/default/default.nix
	modified:   hosts/default/hardware.nix
	modified:   hosts/default/host-packages.nix
	modified:   hosts/nixstation/default.nix
	modified:   hosts/nixstation/hardware.nix
	modified:   hosts/nixstation/host-packages.nix
	modified:   hosts/zaneyos-oem/default.nix
	modified:   hosts/zaneyos-oem/hardware.nix
	modified:   hosts/zaneyos-oem/host-packages.nix
	modified:   modules/core/default.nix
	modified:   modules/core/flatpak.nix
	modified:   modules/core/greetd.nix
	modified:   modules/core/network.nix
	modified:   modules/core/nfs.nix
	modified:   modules/core/nh.nix
	modified:   modules/core/packages.nix
	modified:   modules/core/printing.nix
	modified:   modules/core/quickshell.nix
	modified:   modules/core/sddm.nix
	modified:   modules/core/services.nix
	modified:   modules/core/starfish.nix
	modified:   modules/core/steam.nix
	modified:   modules/core/stylix.nix
	modified:   modules/core/syncthing.nix
	modified:   modules/core/system.nix
	modified:   modules/core/thunar.nix
	modified:   modules/core/user.nix
	modified:   modules/core/virtualisation.nix
	modified:   modules/core/xserver.nix
	modified:   modules/drivers/amd-drivers.nix
	modified:   modules/drivers/default.nix
	modified:   modules/drivers/intel-drivers.nix
	modified:   modules/drivers/local-hardware-clock.nix
	modified:   modules/drivers/nvidia-drivers.nix
	modified:   modules/drivers/nvidia-prime-drivers.nix
	modified:   modules/drivers/vm-guest-services.nix
	modified:   modules/home/alacritty.nix
	modified:   modules/home/bash.nix
	modified:   modules/home/bashrc-personal.nix
	modified:   modules/home/bat.nix
	modified:   modules/home/bottom.nix
	modified:   modules/home/btop.nix
	modified:   modules/home/cava.nix
	modified:   modules/home/default.nix
	modified:   modules/home/emoji.nix
	modified:   modules/home/evil-helix.nix
	modified:   modules/home/fzf.nix
	modified:   modules/home/ghostty.nix
	modified:   modules/home/git.nix
	modified:   modules/home/htop.nix
	modified:   modules/home/hyprland/animations-def.nix
	modified:   modules/home/hyprland/animations-dynamic.nix
	modified:   modules/home/hyprland/animations-end4.nix
	modified:   modules/home/hyprland/animations-moving.nix
	modified:   modules/home/hyprland/binds.nix
	modified:   modules/home/hyprland/default.nix
	modified:   modules/home/hyprland/env.nix
	modified:   modules/home/hyprland/exec-once.nix
	modified:   modules/home/hyprland/hypridle.nix
	modified:   modules/home/hyprland/hyprland.nix
	modified:   modules/home/hyprland/hyprlock.nix
	modified:   modules/home/hyprland/pyprland.nix
	modified:   modules/home/hyprland/windowrules.nix
	modified:   modules/home/kitty.nix
	modified:   modules/home/lazygit.nix
	modified:   modules/home/nvf.nix
	modified:   modules/home/obs-studio.nix
	modified:   modules/home/qt.nix
	modified:   modules/home/rofi/config-long.nix
	modified:   modules/home/rofi/default.nix
	modified:   modules/home/rofi/rofi.nix
	modified:   modules/home/scripts/default.nix
	modified:   modules/home/scripts/emopicker9000.nix
	modified:   modules/home/scripts/gemini-cli.nix
	modified:   modules/home/scripts/hm-find.nix
	modified:   modules/home/scripts/keybinds.nix
	modified:   modules/home/scripts/rofi-launcher.nix
	modified:   modules/home/scripts/web-search.nix
	modified:   modules/home/scripts/zcli.nix
	modified:   modules/home/starship-ddubs-1.nix
	modified:   modules/home/starship.nix
	modified:   modules/home/swappy.nix
	modified:   modules/home/swaync.nix
	modified:   modules/home/tealdeer.nix
	modified:   modules/home/tmux.nix
	modified:   modules/home/vscode.nix
	modified:   modules/home/waybar/Jerry-waybar.nix
	modified:   modules/home/waybar/waybar-curved.nix
	modified:   modules/home/waybar/waybar-ddubs-2.nix
	modified:   modules/home/waybar/waybar-ddubs.nix
	modified:   modules/home/waybar/waybar-nekodyke.nix
	modified:   modules/home/waybar/waybar-simple.nix
	modified:   modules/home/wezterm.nix
	modified:   modules/home/xdg.nix
	modified:   modules/home/yazi/default.nix
	modified:   modules/home/yazi/keymap.nix
	modified:   modules/home/yazi/theme.nix
	modified:   modules/home/zsh/default.nix
	modified:   modules/home/zsh/zshrc-personal.nix
	modified:   profiles/amd/default.nix
	modified:   profiles/intel/default.nix
	modified:   profiles/nvidia-laptop/default.nix
	modified:   profiles/nvidia/default.nix
	modified:   profiles/vm/default.nix
This commit is contained in:
Don Williams
2025-08-02 11:40:41 -04:00
parent 9b848e5cea
commit 1d1ea88eba
106 changed files with 2704 additions and 2681 deletions

View File

@ -2,8 +2,9 @@
## ZaneyOS v2.3.3 -- Post GA Release Notes
** Updated: July 24th, 2025 **
** Updated: Aug 1st, 2025 **
- Reformatted NIX to NIX formatting standard
- Added `hostID` to `variables.nix` and `network.nix`
- This is needed by ZFS
- Thanks to Daniel Emeery for the patch

148
flake.nix
View File

@ -21,84 +21,86 @@
};
};
outputs = {
nixpkgs,
home-manager,
nix-flatpak,
quickshell,
...
} @ inputs: let
system = "x86_64-linux";
host = "zaneyos-oem";
profile = "vm";
username = "dwilliams";
in {
nixosConfigurations = {
amd = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
outputs =
{ nixpkgs
, home-manager
, nix-flatpak
, quickshell
, ...
} @ inputs:
let
system = "x86_64-linux";
host = "zaneyos-oem";
profile = "vm";
username = "dwilliams";
in
{
nixosConfigurations = {
amd = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
};
modules = [
./profiles/amd
nix-flatpak.nixosModules.nix-flatpak
];
};
modules = [
./profiles/amd
nix-flatpak.nixosModules.nix-flatpak
];
};
nvidia = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
nvidia = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
};
modules = [
./profiles/nvidia
nix-flatpak.nixosModules.nix-flatpak
];
};
modules = [
./profiles/nvidia
nix-flatpak.nixosModules.nix-flatpak
];
};
nvidia-laptop = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
nvidia-laptop = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
};
modules = [
./profiles/nvidia-laptop
nix-flatpak.nixosModules.nix-flatpak
];
};
modules = [
./profiles/nvidia-laptop
nix-flatpak.nixosModules.nix-flatpak
];
};
intel = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
intel = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
};
modules = [
./profiles/intel
nix-flatpak.nixosModules.nix-flatpak
];
};
modules = [
./profiles/intel
nix-flatpak.nixosModules.nix-flatpak
];
};
vm = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
vm = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username;
inherit host;
inherit profile;
};
modules = [
./profiles/vm
nix-flatpak.nixosModules.nix-flatpak
];
};
modules = [
./profiles/vm
nix-flatpak.nixosModules.nix-flatpak
];
};
};
};
}

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
imports = [
./hardware.nix
./host-packages.nix

View File

@ -5,7 +5,8 @@
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
[
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" ];
@ -14,14 +15,16 @@
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
{
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/C2A6-DF56";
{
device = "/dev/disk/by-uuid/C2A6-DF56";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};

View File

@ -3,6 +3,5 @@
audacity
discord
nodejs
obs-studio
];
}

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
imports = [
./hardware.nix
./host-packages.nix

View File

@ -1,8 +1,7 @@
{
config,
lib,
modulesPath,
...
{ config
, lib
, modulesPath
, ...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
@ -17,13 +16,13 @@
"usbhid"
"sd_mod"
];
kernelModules = [];
kernelModules = [ ];
luks.devices = {
"luks-8941ac93-f043-46d1-b128-37d5e846303f".device = "/dev/disk/by-uuid/8941ac93-f043-46d1-b128-37d5e846303f";
};
};
kernelModules = ["kvm-intel"];
extraModulePackages = [];
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
fileSystems = {
"/" = {
@ -52,7 +51,7 @@
];
};
};
swapDevices = [];
swapDevices = [ ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
audacity
discord

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
imports = [
./hardware.nix
./host-packages.nix

View File

@ -1,21 +1,20 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
{ config
, lib
, pkgs
, modulesPath
, ...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/e5fc1006-4d0b-41db-8c43-22b3cb8110c6";
@ -25,7 +24,7 @@
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/9287-3738";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/mnt/nas" = {
@ -34,7 +33,7 @@
};
swapDevices = [
{device = "/dev/disk/by-uuid/a6e9dd8b-6767-44f4-84fa-30d02d90d087";}
{ device = "/dev/disk/by-uuid/a6e9dd8b-6767-44f4-84fa-30d02d90d087"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@ -8,13 +8,11 @@
gping
lunarvim
luarocks
mc
mission-center
resources
ncdu
gdu
ugrep
waypaper
dysk
];
}

View File

@ -1,11 +1,12 @@
{
inputs,
host,
...
}: let
{ inputs
, host
, ...
}:
let
# Import the host-specific variables.nix
vars = import ../../hosts/${host}/variables.nix;
in {
in
{
imports = [
./boot.nix
./flatpak.nix

View File

@ -1,8 +1,8 @@
{pkgs, ...}: {
{ pkgs, ... }: {
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-hyprland];
configPackages = [pkgs.hyprland];
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
configPackages = [ pkgs.hyprland ];
};
services = {
flatpak = {

View File

@ -1,7 +1,6 @@
{
pkgs,
username,
...
{ pkgs
, username
, ...
}: {
services.greetd = {
enable = true;

View File

@ -1,16 +1,17 @@
{
pkgs,
host,
options,
...
}: let
{ pkgs
, host
, options
, ...
}:
let
inherit (import ../../hosts/${host}/variables.nix) hostId;
in {
in
{
networking = {
hostName = "${host}";
hostId = hostId;
networkmanager.enable = true;
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
firewall = {
enable = true;
allowedTCPPorts = [
@ -28,5 +29,5 @@ in {
};
};
environment.systemPackages = with pkgs; [networkmanagerapplet];
environment.systemPackages = with pkgs; [ networkmanagerapplet ];
}

View File

@ -1,6 +1,8 @@
{host, ...}: let
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
in {
in
{
services = {
rpcbind.enable = enableNFS;
nfs.server.enable = enableNFS;

View File

@ -1,7 +1,6 @@
{
pkgs,
username,
...
{ pkgs
, username
, ...
}: {
programs.nh = {
enable = true;

View File

@ -40,6 +40,7 @@
cowsay # Great Fun Terminal Program
docker-compose # Allows Controlling Docker From A Single File
duf # Utility For Viewing Disk Usage In Terminal
dysk # Disk space util nice formattting
eza # Beautiful ls Replacement
ffmpeg # Terminal Video / Audio Editing
file-roller # Archive Manager

View File

@ -1,6 +1,8 @@
{host, ...}: let
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) printEnable;
in {
in
{
services = {
printing = {
enable = printEnable;

View File

@ -2,7 +2,7 @@
{
environment.systemPackages = with pkgs; [
inputs.quickshell.packages.${pkgs.system}.default
# Qt6 related kitsfor slove Qt5Compat problem
qt6.qt5compat
qt6.qtbase
@ -10,19 +10,19 @@
qt6.qtwayland
qt6.qtdeclarative
qt6.qtsvg
# alternate options
# libsForQt5.qt5compat
kdePackages.qt5compat
libsForQt5.qt5.qtgraphicaleffects
# libsForQt5.qt5compat
kdePackages.qt5compat
libsForQt5.qt5.qtgraphicaleffects
];
# necessary environment variables
environment.variables = {
QML_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
QML2_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
};
# make sure the Qt application is working properly
environment.sessionVariables = {
QT_QPA_PLATFORM = "wayland;xcb";

View File

@ -63,7 +63,4 @@ in {
};
environment.systemPackages = [sddm-astronaut];
# To prevent getting stuck at shutdown
systemd.extraConfig = "DefaultTimeoutStopSec=10s";
}

View File

@ -1,4 +1,4 @@
{profile, ...}: {
{ profile, ... }: {
# Services to start
services = {
libinput.enable = true; # Input Handling
@ -11,7 +11,7 @@
PasswordAuthentication = true; #Users can SSH using kb and password
KbdInteractiveAuthentication = true;
};
ports = [22];
ports = [ 22 ];
};
blueman.enable = true; # Bluetooth Support
tumbler.enable = true; # Image/video preview

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
programs = {
starship = {
enable = false;

View File

@ -1,11 +1,11 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = false;
gamescopeSession.enable = true;
extraCompatPackages = [pkgs.proton-ge-bin];
extraCompatPackages = [ pkgs.proton-ge-bin ];
};
gamescope = {

View File

@ -1,10 +1,11 @@
{
pkgs,
host,
...
}: let
{ pkgs
, host
, ...
}:
let
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
in {
in
{
# Styling Options
stylix = {
enable = true;

View File

@ -1,4 +1,4 @@
{username, ...}: {
{ username, ... }: {
services.syncthing = {
enable = false;
user = "${username}";

View File

@ -1,6 +1,8 @@
{host, ...}: let
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
in {
in
{
nix = {
settings = {
download-buffer-size = 250000000;
@ -9,8 +11,8 @@ in {
"nix-command"
"flakes"
];
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
};
time.timeZone = "America/Chicago";

View File

@ -1,10 +1,11 @@
{
host,
pkgs,
...
}: let
{ host
, pkgs
, ...
}:
let
inherit (import ../../hosts/${host}/variables.nix) thunarEnable;
in {
in
{
programs = {
thunar = {
enable = thunarEnable;

View File

@ -1,21 +1,22 @@
{
pkgs,
inputs,
username,
host,
profile,
...
}: let
{ pkgs
, inputs
, username
, host
, profile
, ...
}:
let
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
in {
imports = [inputs.home-manager.nixosModules.home-manager];
in
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useUserPackages = true;
useGlobalPkgs = false;
backupFileExtension = "backup";
extraSpecialArgs = {inherit inputs username host profile;};
extraSpecialArgs = { inherit inputs username host profile; };
users.${username} = {
imports = [./../home];
imports = [ ./../home ];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
@ -40,5 +41,5 @@ in {
shell = pkgs.zsh;
ignoreShellProgramCheck = true;
};
nix.settings.allowed-users = ["${username}"];
nix.settings.allowed-users = [ "${username}" ];
}

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
# Only enable either docker or podman -- Not both
virtualisation = {
docker = {

View File

@ -1,6 +1,8 @@
{host, ...}: let
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
in {
in
{
services.xserver = {
enable = false;
xkb = {

View File

@ -1,8 +1,7 @@
{
lib,
pkgs,
config,
...
{ lib
, pkgs
, config
, ...
}:
with lib;
let

View File

@ -1,5 +1,4 @@
{
...
{ ...
}:
{
imports = [

View File

@ -1,12 +1,12 @@
{
lib,
pkgs,
config,
...
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.drivers.intel;
in {
in
{
options.drivers.intel = {
enable = mkEnableOption "Enable Intel Graphics Drivers";
};

View File

@ -1,8 +1,7 @@
{
lib,
pkgs,
config,
...
{ lib
, pkgs
, config
, ...
}:
with lib;
let

View File

@ -1,8 +1,7 @@
{
lib,
pkgs,
config,
...
{ lib
, pkgs
, config
, ...
}:
with lib;
let

View File

@ -1,8 +1,7 @@
{
lib,
pkgs,
config,
...
{ lib
, pkgs
, config
, ...
}:
with lib;
let

View File

@ -1,8 +1,7 @@
{
lib,
pkgs,
config,
...
{ lib
, pkgs
, config
, ...
}:
with lib;
let

View File

@ -1,28 +1,30 @@
{lib, ...}: {
programs.alacritty = let
font_family = lib.mkForce "Maple Mono NF";
in {
enable = true;
settings = {
font = {
normal = {
family = font_family;
style = "Regular";
{ lib, ... }: {
programs.alacritty =
let
font_family = lib.mkForce "Maple Mono NF";
in
{
enable = true;
settings = {
font = {
normal = {
family = font_family;
style = "Regular";
};
bold = {
family = font_family;
style = "Bold";
};
italic = {
family = font_family;
style = "Italic";
};
bold_italic = {
family = font_family;
style = "Bold Italic";
};
size = 15;
};
bold = {
family = font_family;
style = "Bold";
};
italic = {
family = font_family;
style = "Italic";
};
bold_italic = {
family = font_family;
style = "Bold Italic";
};
size = 15;
};
};
};
}

View File

@ -1,4 +1,4 @@
{profile, ...}: {
{ profile, ... }: {
programs.bash = {
enable = false;
enableCompletion = true;

View File

@ -1,6 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [bash];
{ pkgs, ... }: {
home.packages = with pkgs; [ bash ];
home.file."./.bashrc-personal".text = ''

View File

@ -1,7 +1,6 @@
{
pkgs,
lib,
...
{ pkgs
, lib
, ...
}: {
programs.bat = {
enable = true;

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
programs.bottom = {
enable = true;
settings = {
@ -9,14 +9,14 @@
{
ratio = 2;
child = [
{type = "cpu";}
{type = "temp";}
{ type = "cpu"; }
{ type = "temp"; }
];
}
{
ratio = 2;
child = [
{type = "network";}
{ type = "network"; }
];
}
{

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.btop = {
enable = true;
package = pkgs.btop.override {

View File

@ -1,4 +1,4 @@
{config, ...}: {
{ config, ... }: {
programs.cava = {
enable = true;
settings = {
@ -40,4 +40,4 @@
};
};
};
}
}

View File

@ -1,4 +1,5 @@
{host, ...}: let
{ host, ... }:
let
inherit
(import ../../hosts/${host}/variables.nix)
alacrittyEnable
@ -9,7 +10,8 @@
vscodeEnable
helixEnable
;
in {
in
{
imports =
[
./amfora.nix
@ -53,32 +55,32 @@ in {
]
++ (
if helixEnable
then [./evil-helix.nix]
else []
then [ ./evil-helix.nix ]
else [ ]
)
++ (
if vscodeEnable
then [./vscode.nix]
else []
then [ ./vscode.nix ]
else [ ]
)
++ (
if weztermEnable
then [./wezterm.nix]
else []
then [ ./wezterm.nix ]
else [ ]
)
++ (
if ghosttyEnable
then [./ghostty.nix]
else []
then [ ./ghostty.nix ]
else [ ]
)
++ (
if tmuxEnable
then [./tmux.nix]
else []
then [ ./tmux.nix ]
else [ ]
)
++ (
if alacrittyEnable
then [./alacritty.nix]
else []
then [ ./alacritty.nix ]
else [ ]
);
}

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
home.file.".config/.emoji".text = ''
😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny

View File

@ -1,6 +1,8 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
enableEvilHelix = true; # Set to true to enable the configuration
in {
in
{
home.packages = with pkgs; (
if enableEvilHelix
then [
@ -23,7 +25,7 @@ in {
docker-language-server
typescript-language-server
]
else []
else [ ]
);
home.file.".config/helix/languages.toml".text =

View File

@ -1,13 +1,14 @@
# Fzf is a general-purpose command-line fuzzy finder.
{
config,
lib,
...
}: let
{ config
, lib
, ...
}:
let
accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03;
in {
in
{
programs.fzf = {
enable = true;
enableZshIntegration = true;

View File

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
# A recent issue 7/7/2025 w/ghostty causes it to hang or respond slowly
# This is a workaround until a fix is released
myGhostty = pkgs.ghostty.overrideAttrs (_: {
@ -8,7 +9,8 @@
shopt -u globstar
'';
});
in {
in
{
programs.ghostty = {
enable = true;
package = myGhostty; # to fix a but in current builds of ghostty

View File

@ -1,6 +1,8 @@
{host, ...}: let
{ host, ... }:
let
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
in {
in
{
programs.git = {
enable = true;
userName = "${gitUsername}";

View File

@ -1,4 +1,4 @@
{config, ...}: {
{ config, ... }: {
programs.htop = {
enable = true;
settings =
@ -25,18 +25,18 @@
highlight_threads = 1;
}
// (with config.lib.htop;
leftMeters [
(bar "AllCPUs2")
(bar "Memory")
(bar "Swap")
(text "Zram")
])
leftMeters [
(bar "AllCPUs2")
(bar "Memory")
(bar "Swap")
(text "Zram")
])
// (with config.lib.htop;
rightMeters [
(text "Tasks")
(text "LoadAverage")
(text "Uptime")
(text "Systemd")
]);
rightMeters [
(text "Tasks")
(text "LoadAverage")
(text "Uptime")
(text "Systemd")
]);
};
}

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
wayland.windowManager.hyprland.settings = {
animations = {
enabled = true;

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
wayland.windowManager.hyprland.settings = {
# name "Dynamic"
# credit https://github.com/mylinuxforwork/dotfiles

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
wayland.windowManager.hyprland.settings = {
# Name: END-4
# Credit: END-4 project https://github.com/end-4/dots-hyprland

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
wayland.windowManager.hyprland.settings = {
# name "moving"
# credit https://github.com/mylinuxforwork/dotfiles

View File

@ -1,10 +1,12 @@
{host, ...}: let
{ host, ... }:
let
inherit
(import ../../../hosts/${host}/variables.nix)
browser
terminal
;
in {
in
{
wayland.windowManager.hyprland.settings = {
bind = [
"$modifier,Return,exec,${terminal}"

View File

@ -1,6 +1,8 @@
{host, ...}: let
{ host, ... }:
let
inherit (import ../../../hosts/${host}/variables.nix) animChoice;
in {
in
{
imports = [
animChoice
./binds.nix

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
wayland.windowManager.hyprland = {
settings = {
env = [

View File

@ -1,9 +1,11 @@
{host, ...}: let
{ host, ... }:
let
inherit
(import ../../../hosts/${host}/variables.nix)
stylixImage
;
in {
in
{
wayland.windowManager.hyprland.settings = {
exec-once = [
"wl-paste --type text --watch cliphist store" # Saves text

View File

@ -9,7 +9,7 @@
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
};
listener = [
{
timeout = 900;

View File

@ -1,16 +1,17 @@
{
host,
config,
pkgs,
...
}: let
{ host
, config
, pkgs
, ...
}:
let
inherit
(import ../../../hosts/${host}/variables.nix)
extraMonitorSettings
keyboardLayout
stylixImage
;
in {
in
{
home.packages = with pkgs; [
swww
grim
@ -39,7 +40,7 @@ in {
systemd = {
enable = true;
enableXdgAutostart = true;
variables = ["--all"];
variables = [ "--all" ];
};
xwayland = {
enable = true;

View File

@ -1,4 +1,4 @@
{username, ...}: {
{ username, ... }: {
programs.hyprlock = {
enable = true;
settings = {

View File

@ -1,5 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [pyprland];
{ pkgs, ... }: {
home.packages = with pkgs; [ pyprland ];
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]

View File

@ -1,9 +1,11 @@
{host, ...}: let
{ host, ... }:
let
inherit
(import ../../../hosts/${host}/variables.nix)
extraMonitorSettings
;
in {
in
{
wayland.windowManager.hyprland = {
settings = {
windowrule = [

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.kitty = {
enable = true;
package = pkgs.kitty;

View File

@ -3,7 +3,8 @@
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
in {
in
{
programs.lazygit = {
enable = true;
settings = lib.mkForce {

View File

@ -1,9 +1,8 @@
{
inputs,
config,
...
{ inputs
, config
, ...
}: {
imports = [inputs.nvf.homeManagerModules.default];
imports = [ inputs.nvf.homeManagerModules.default ];
programs.nvf = {
enable = true;
@ -51,55 +50,55 @@
keymaps = [
{
key = "jk";
mode = ["i"];
mode = [ "i" ];
action = "<ESC>";
desc = "Exit insert mode";
}
{
key = "<leader>nh";
mode = ["n"];
mode = [ "n" ];
action = ":nohl<CR>";
desc = "Clear search highlights";
}
{
key = "<leader>ff";
mode = ["n"];
mode = [ "n" ];
action = "<cmd>Telescope find_files<cr>";
desc = "Search files by name";
}
{
key = "<leader>lg";
mode = ["n"];
mode = [ "n" ];
action = "<cmd>Telescope live_grep<cr>";
desc = "Search files by contents";
}
{
key = "<leader>fe";
mode = ["n"];
mode = [ "n" ];
action = "<cmd>Neotree toggle<cr>";
desc = "File browser toggle";
}
{
key = "<C-h>";
mode = ["i"];
mode = [ "i" ];
action = "<Left>";
desc = "Move left in insert mode";
}
{
key = "<C-j>";
mode = ["i"];
mode = [ "i" ];
action = "<Down>";
desc = "Move down in insert mode";
}
{
key = "<C-k>";
mode = ["i"];
mode = [ "i" ];
action = "<Up>";
desc = "Move up in insert mode";
}
{
key = "<C-l>";
mode = ["i"];
mode = [ "i" ];
action = "<Right>";
desc = "Move right in insert mode";
}
@ -109,7 +108,7 @@
spellcheck = {
enable = true;
languages = ["en"];
languages = [ "en" ];
programmingWordlist.enable = false;
};

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.obs-studio = {
enable = true;
#enableVirtualCamera = true;

View File

@ -1,4 +1,4 @@
{lib, ...}: {
{ lib, ... }: {
qt = {
enable = true;
platformTheme.name = lib.mkForce "qtct";

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
home.file.".config/rofi/config-long.rasi".text = ''
@import "~/.config/rofi/config.rasi"
window {

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
imports = [
./config-long.nix
./rofi.nix

View File

@ -1,7 +1,6 @@
{
pkgs,
config,
...
{ pkgs
, config
, ...
}: {
programs = {
rofi = {
@ -17,191 +16,193 @@
display-run = " Run";
display-filebrowser = " File";
};
theme = let
inherit (config.lib.formats.rasi) mkLiteral;
in {
"*" = {
bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
theme =
let
inherit (config.lib.formats.rasi) mkLiteral;
in
{
"*" = {
bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
};
"window" = {
transparency = "real";
width = mkLiteral "1000px";
location = mkLiteral "center";
anchor = mkLiteral "center";
fullscreen = false;
x-offset = mkLiteral "0px";
y-offset = mkLiteral "0px";
cursor = "default";
enabled = true;
border-radius = mkLiteral "15px";
background-color = mkLiteral "@bg";
};
"mainbox" = {
enabled = true;
spacing = mkLiteral "0px";
orientation = mkLiteral "horizontal";
children = map mkLiteral [
"imagebox"
"listbox"
];
background-color = mkLiteral "transparent";
};
"imagebox" = {
padding = mkLiteral "20px";
background-color = mkLiteral "transparent";
background-image = mkLiteral ''url("~/Pictures/Wallpapers/Rainnight.jpg", height)'';
orientation = mkLiteral "vertical";
children = map mkLiteral [
"inputbar"
"dummy"
"mode-switcher"
];
};
"listbox" = {
spacing = mkLiteral "20px";
padding = mkLiteral "20px";
background-color = mkLiteral "transparent";
orientation = mkLiteral "vertical";
children = map mkLiteral [
"message"
"listview"
];
};
"dummy" = {
background-color = mkLiteral "transparent";
};
"inputbar" = {
enabled = true;
spacing = mkLiteral "10px";
padding = mkLiteral "10px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@foreground";
children = map mkLiteral [
"textbox-prompt-colon"
"entry"
];
};
"textbox-prompt-colon" = {
enabled = true;
expand = false;
str = "";
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"entry" = {
enabled = true;
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
cursor = mkLiteral "text";
placeholder = "Search";
placeholder-color = mkLiteral "inherit";
};
"mode-switcher" = {
enabled = true;
spacing = mkLiteral "20px";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@foreground";
};
"button" = {
padding = mkLiteral "15px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "inherit";
cursor = mkLiteral "pointer";
};
"button selected" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@foreground";
};
"listview" = {
enabled = true;
columns = 1;
lines = 8;
cycle = true;
dynamic = true;
scrollbar = false;
layout = mkLiteral "vertical";
reverse = false;
fixed-height = true;
fixed-columns = true;
spacing = mkLiteral "10px";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@foreground";
cursor = "default";
};
"element" = {
enabled = true;
spacing = mkLiteral "15px";
padding = mkLiteral "8px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@text-color";
cursor = mkLiteral "pointer";
};
"element normal.normal" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "@text-color";
};
"element normal.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-color";
};
"element normal.active" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "@text-color";
};
"element selected.normal" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@foreground";
};
"element selected.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element selected.active" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element-icon" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
size = mkLiteral "36px";
cursor = mkLiteral "inherit";
};
"element-text" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
cursor = mkLiteral "inherit";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"message" = {
background-color = mkLiteral "transparent";
};
"textbox" = {
padding = mkLiteral "15px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@foreground";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"error-message" = {
padding = mkLiteral "15px";
border-radius = mkLiteral "20px";
background-color = mkLiteral "@bg";
text-color = mkLiteral "@foreground";
};
};
"window" = {
transparency = "real";
width = mkLiteral "1000px";
location = mkLiteral "center";
anchor = mkLiteral "center";
fullscreen = false;
x-offset = mkLiteral "0px";
y-offset = mkLiteral "0px";
cursor = "default";
enabled = true;
border-radius = mkLiteral "15px";
background-color = mkLiteral "@bg";
};
"mainbox" = {
enabled = true;
spacing = mkLiteral "0px";
orientation = mkLiteral "horizontal";
children = map mkLiteral [
"imagebox"
"listbox"
];
background-color = mkLiteral "transparent";
};
"imagebox" = {
padding = mkLiteral "20px";
background-color = mkLiteral "transparent";
background-image = mkLiteral ''url("~/Pictures/Wallpapers/Rainnight.jpg", height)'';
orientation = mkLiteral "vertical";
children = map mkLiteral [
"inputbar"
"dummy"
"mode-switcher"
];
};
"listbox" = {
spacing = mkLiteral "20px";
padding = mkLiteral "20px";
background-color = mkLiteral "transparent";
orientation = mkLiteral "vertical";
children = map mkLiteral [
"message"
"listview"
];
};
"dummy" = {
background-color = mkLiteral "transparent";
};
"inputbar" = {
enabled = true;
spacing = mkLiteral "10px";
padding = mkLiteral "10px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@foreground";
children = map mkLiteral [
"textbox-prompt-colon"
"entry"
];
};
"textbox-prompt-colon" = {
enabled = true;
expand = false;
str = "";
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"entry" = {
enabled = true;
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
cursor = mkLiteral "text";
placeholder = "Search";
placeholder-color = mkLiteral "inherit";
};
"mode-switcher" = {
enabled = true;
spacing = mkLiteral "20px";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@foreground";
};
"button" = {
padding = mkLiteral "15px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "inherit";
cursor = mkLiteral "pointer";
};
"button selected" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@foreground";
};
"listview" = {
enabled = true;
columns = 1;
lines = 8;
cycle = true;
dynamic = true;
scrollbar = false;
layout = mkLiteral "vertical";
reverse = false;
fixed-height = true;
fixed-columns = true;
spacing = mkLiteral "10px";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@foreground";
cursor = "default";
};
"element" = {
enabled = true;
spacing = mkLiteral "15px";
padding = mkLiteral "8px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@text-color";
cursor = mkLiteral "pointer";
};
"element normal.normal" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "@text-color";
};
"element normal.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-color";
};
"element normal.active" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "@text-color";
};
"element selected.normal" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@foreground";
};
"element selected.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element selected.active" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element-icon" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
size = mkLiteral "36px";
cursor = mkLiteral "inherit";
};
"element-text" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
cursor = mkLiteral "inherit";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"message" = {
background-color = mkLiteral "transparent";
};
"textbox" = {
padding = mkLiteral "15px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@foreground";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"error-message" = {
padding = mkLiteral "15px";
border-radius = mkLiteral "20px";
background-color = mkLiteral "@bg";
text-color = mkLiteral "@foreground";
};
};
};
};
}

View File

@ -1,23 +1,22 @@
{
pkgs,
username,
profile,
...
{ pkgs
, username
, profile
, ...
}: {
home.packages = [
(import ./emopicker9000.nix {inherit pkgs;})
(import ./keybinds.nix {inherit pkgs;})
(import ./task-waybar.nix {inherit pkgs;})
(import ./squirtle.nix {inherit pkgs;})
(import ./nvidia-offload.nix {inherit pkgs;})
(import ./emopicker9000.nix { inherit pkgs; })
(import ./keybinds.nix { inherit pkgs; })
(import ./task-waybar.nix { inherit pkgs; })
(import ./squirtle.nix { inherit pkgs; })
(import ./nvidia-offload.nix { inherit pkgs; })
(import ./wallsetter.nix {
inherit pkgs;
inherit username;
})
(import ./web-search.nix {inherit pkgs;})
(import ./rofi-launcher.nix {inherit pkgs;})
(import ./screenshootin.nix {inherit pkgs;})
(import ./hm-find.nix {inherit pkgs;})
(import ./web-search.nix { inherit pkgs; })
(import ./rofi-launcher.nix { inherit pkgs; })
(import ./screenshootin.nix { inherit pkgs; })
(import ./hm-find.nix { inherit pkgs; })
(import ./zcli.nix {
inherit pkgs profile;
backupFiles = [

View File

@ -1,4 +1,4 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellScriptBin "emopicker9000" ''
# check if rofi is already running
if pidof rofi > /dev/null; then

View File

@ -34,4 +34,4 @@ in
type = "Application";
categories = [ "Development" "Utility" ];
};
}
}

View File

@ -1,4 +1,4 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellScriptBin "hm-find" ''
#!/usr/bin/env bash

View File

@ -1,4 +1,4 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellScriptBin "list-keybinds" ''
# check if rofi is already running
if pidof rofi > /dev/null; then
@ -14,4 +14,4 @@ pkgs.writeShellScriptBin "list-keybinds" ''
# use rofi to display the keybinds with the modified content
echo "$display_keybinds" | rofi -dmenu -i -config ~/.config/rofi/config-long.rasi -mesg "$msg"
''
''

View File

@ -1,4 +1,4 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellScriptBin "rofi-launcher" ''
# check if rofi is already running
if pidof rofi > /dev/null; then

View File

@ -1,4 +1,4 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellScriptBin "web-search" ''
# check if rofi is already running
if pidof rofi > /dev/null; then

View File

@ -1,313 +1,313 @@
{
pkgs,
profile,
backupFiles ? [".config/mimeapps.list.backup"],
...
}: let
{ pkgs
, profile
, backupFiles ? [ ".config/mimeapps.list.backup" ]
, ...
}:
let
backupFilesString = pkgs.lib.strings.concatStringsSep " " backupFiles;
in
pkgs.writeShellScriptBin "zcli" ''
#!${pkgs.bash}/bin/bash
set -euo pipefail
pkgs.writeShellScriptBin "zcli" ''
#!${pkgs.bash}/bin/bash
set -euo pipefail
# --- Configuration ---
PROJECT="zaneyos" #ddubos or zaneyos
PROFILE="${profile}"
BACKUP_FILES_STR="${backupFilesString}"
VERSION="1.0.1"
FLAKE_NIX_PATH="$HOME/$PROJECT/flake.nix"
# --- Configuration ---
PROJECT="zaneyos" #ddubos or zaneyos
PROFILE="${profile}"
BACKUP_FILES_STR="${backupFilesString}"
VERSION="1.0.1"
FLAKE_NIX_PATH="$HOME/$PROJECT/flake.nix"
read -r -a BACKUP_FILES <<< "$BACKUP_FILES_STR"
read -r -a BACKUP_FILES <<< "$BACKUP_FILES_STR"
# --- Helper Functions ---
print_help() {
echo "ZaneyOS CLI Utility -- version $VERSION"
echo ""
echo "Usage: zcli [command]"
echo ""
echo "Commands:"
echo " cleanup - Clean up old system generations. Can specify a number to keep."
echo " diag - Create a system diagnostic report."
echo " (Filename: homedir/diag.txt)"
echo " list-gens - List user and system generations."
echo " rebuild - Rebuild the NixOS system configuration."
echo " trim - Trim filesystems to improve SSD performance."
echo " update - Update the flake and rebuild the system."
echo " update-host - Auto set host and profile in flake.nix."
echo " (Opt: zcli update-host [hostname] [profile])"
echo ""
echo " help - Show this help message."
}
# --- Helper Functions ---
print_help() {
echo "ZaneyOS CLI Utility -- version $VERSION"
echo ""
echo "Usage: zcli [command]"
echo ""
echo "Commands:"
echo " cleanup - Clean up old system generations. Can specify a number to keep."
echo " diag - Create a system diagnostic report."
echo " (Filename: homedir/diag.txt)"
echo " list-gens - List user and system generations."
echo " rebuild - Rebuild the NixOS system configuration."
echo " trim - Trim filesystems to improve SSD performance."
echo " update - Update the flake and rebuild the system."
echo " update-host - Auto set host and profile in flake.nix."
echo " (Opt: zcli update-host [hostname] [profile])"
echo ""
echo " help - Show this help message."
}
handle_backups() {
if [ ''${#BACKUP_FILES[@]} -eq 0 ]; then
echo "No backup files configured to check."
return
fi
echo "Checking for backup files to remove..."
for file_path in "''${BACKUP_FILES[@]}"; do
full_path="$HOME/$file_path"
if [ -f "$full_path" ]; then
echo "Removing stale backup file: $full_path"
rm "$full_path"
fi
done
}
detect_gpu_profile() {
local detected_profile=""
local has_nvidia=false
local has_intel=false
local has_amd=false
local has_vm=false
if lspci &> /dev/null; then # Check if lspci is available
if lspci | grep -qi 'vga\|3d'; then
while read -r line; do
if echo "$line" | grep -qi 'nvidia'; then
has_nvidia=true
elif echo "$line" | grep -qi 'amd'; then
has_amd=true
elif echo "$line" | grep -qi 'intel'; then
has_intel=true
elif echo "$line" | grep -qi 'virtio\|vmware'; then
has_vm=true
fi
done < <(lspci | grep -i 'vga\|3d')
if "$has_vm"; then
detected_profile="vm"
elif "$has_nvidia" && "$has_intel"; then
detec0.1ted_profile="nvidia-laptop"
elif "$has_nvidia"; then
detected_profile="nvidia"
elif "$has_amd"; then
detected_profile="amd"
elif "$has_intel"; then
detected_profile="intel"
fi
fi
else
echo "Warning: lspci command not found. Cannot auto-detect GPU profile." >&2
fi
echo "$detected_profile" # Return the detected profile
}
# --- Main Logic ---
if [ "$#" -eq 0 ]; then
echo "Error: No command provided." >&2
print_help
exit 1
handle_backups() {
if [ ''${#BACKUP_FILES[@]} -eq 0 ]; then
echo "No backup files configured to check."
return
fi
case "$1" in
cleanup)
echo "Warning! This will remove old generations of your system."
read -p "How many generations to keep (default: all)? " keep_count
echo "Checking for backup files to remove..."
for file_path in "''${BACKUP_FILES[@]}"; do
full_path="$HOME/$file_path"
if [ -f "$full_path" ]; then
echo "Removing stale backup file: $full_path"
rm "$full_path"
fi
done
}
if [ -z "$keep_count" ]; then
read -p "This will remove all but the current generation. Continue (y/N)? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
nh clean all -v
else
echo "Cleanup cancelled."
fi
else
read -p "This will keep the last $keep_count generations. Continue (y/N)? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
nh clean all -k "$keep_count" -v
else
echo "Cleanup cancelled."
fi
fi
detect_gpu_profile() {
local detected_profile=""
local has_nvidia=false
local has_intel=false
local has_amd=false
local has_vm=false
LOG_DIR="$HOME/zcli-cleanup-logs"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/zcli-cleanup-$(date +%Y-%m-%d_%H-%M-%S).log"
echo "Cleaning up old log files..." >> "$LOG_FILE"
find "$LOG_DIR" -type f -mtime +3 -name "*.log" -delete >> "$LOG_FILE" 2>&1
echo "Cleanup process logged to $LOG_FILE"
;;
diag)
echo "Generating system diagnostic report..."
inxi --full > "$HOME/diag.txt"
echo "Diagnostic report saved to $HOME/diag.txt"
;;
help)
print_help
;;
list-gens)
echo "--- User Generations ---"
nix-env --list-generations | cat || echo "Could not list user generations."
echo ""
echo "--- System Generations ---"
nix profile history --profile /nix/var/nix/profiles/system | cat || echo "Could not list system generations."
;;
rebuild)
handle_backups
echo "Starting NixOS rebuild for host: $(hostname)"
if nh os switch --hostname "$PROFILE"; then
echo "Rebuild finished successfully"
else
echo "Rebuild Failed" >&2
exit 1
if lspci &> /dev/null; then # Check if lspci is available
if lspci | grep -qi 'vga\|3d'; then
while read -r line; do
if echo "$line" | grep -qi 'nvidia'; then
has_nvidia=true
elif echo "$line" | grep -qi 'amd'; then
has_amd=true
elif echo "$line" | grep -qi 'intel'; then
has_intel=true
elif echo "$line" | grep -qi 'virtio\|vmware'; then
has_vm=true
fi
done < <(lspci | grep -i 'vga\|3d')
if "$has_vm"; then
detected_profile="vm"
elif "$has_nvidia" && "$has_intel"; then
detec0.1ted_profile="nvidia-laptop"
elif "$has_nvidia"; then
detected_profile="nvidia"
elif "$has_amd"; then
detected_profile="amd"
elif "$has_intel"; then
detected_profile="intel"
fi
;;
trim)
echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance."
read -p "Enter (y/Y) to run now or enter to exit (y/N): " -n 1 -r
echo # move to a new line
fi
else
echo "Warning: lspci command not found. Cannot auto-detect GPU profile." >&2
fi
echo "$detected_profile" # Return the detected profile
}
# --- Main Logic ---
if [ "$#" -eq 0 ]; then
echo "Error: No command provided." >&2
print_help
exit 1
fi
case "$1" in
cleanup)
echo "Warning! This will remove old generations of your system."
read -p "How many generations to keep (default: all)? " keep_count
if [ -z "$keep_count" ]; then
read -p "This will remove all but the current generation. Continue (y/N)? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Running fstrim..."
sudo fstrim -v /
echo "fstrim complete."
nh clean all -v
else
echo "Trim operation cancelled."
echo "Cleanup cancelled."
fi
;;
update)
handle_backups
echo "Updating flake and rebuilding system for host: $(hostname)"
if nh os switch --hostname "$PROFILE" --update; then
echo "Update and rebuild finished successfully"
else
read -p "This will keep the last $keep_count generations. Continue (y/N)? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
nh clean all -k "$keep_count" -v
else
echo "Update and rebuild Failed" >&2
exit 1
echo "Cleanup cancelled."
fi
;;
update-host)
target_hostname=""
target_profile=""
fi
if [ "$#" -eq 3 ]; then # zcli update-host <hostname> <profile>
target_hostname="$2"
target_profile="$3"
elif [ "$#" -eq 1 ]; then # zcli update-host (auto-detect)
echo "Attempting to auto-detect hostname and GPU profile..."
target_hostname=$(hostname)
target_profile=$(detect_gpu_profile)
LOG_DIR="$HOME/zcli-cleanup-logs"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/zcli-cleanup-$(date +%Y-%m-%d_%H-%M-%S).log"
echo "Cleaning up old log files..." >> "$LOG_FILE"
find "$LOG_DIR" -type f -mtime +3 -name "*.log" -delete >> "$LOG_FILE" 2>&1
echo "Cleanup process logged to $LOG_FILE"
;;
diag)
echo "Generating system diagnostic report..."
inxi --full > "$HOME/diag.txt"
echo "Diagnostic report saved to $HOME/diag.txt"
;;
help)
print_help
;;
list-gens)
echo "--- User Generations ---"
nix-env --list-generations | cat || echo "Could not list user generations."
echo ""
echo "--- System Generations ---"
nix profile history --profile /nix/var/nix/profiles/system | cat || echo "Could not list system generations."
;;
rebuild)
handle_backups
echo "Starting NixOS rebuild for host: $(hostname)"
if nh os switch --hostname "$PROFILE"; then
echo "Rebuild finished successfully"
else
echo "Rebuild Failed" >&2
exit 1
fi
;;
trim)
echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance."
read -p "Enter (y/Y) to run now or enter to exit (y/N): " -n 1 -r
echo # move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Running fstrim..."
sudo fstrim -v /
echo "fstrim complete."
else
echo "Trim operation cancelled."
fi
;;
update)
handle_backups
echo "Updating flake and rebuilding system for host: $(hostname)"
if nh os switch --hostname "$PROFILE" --update; then
echo "Update and rebuild finished successfully"
else
echo "Update and rebuild Failed" >&2
exit 1
fi
;;
update-host)
target_hostname=""
target_profile=""
if [ -z "$target_profile" ]; then
echo "Error: Could not auto-detect a specific GPU profile. Please provide it manually." >&2
echo "Usage: zcli update-host [hostname] [profile]" >&2
exit 1
fi
echo "Auto-detected Hostname: $target_hostname"
echo "Auto-detected Profile: $target_profile"
else
echo "Error: Invalid number of arguments for 'update-host'." >&2
if [ "$#" -eq 3 ]; then # zcli update-host <hostname> <profile>
target_hostname="$2"
target_profile="$3"
elif [ "$#" -eq 1 ]; then # zcli update-host (auto-detect)
echo "Attempting to auto-detect hostname and GPU profile..."
target_hostname=$(hostname)
target_profile=$(detect_gpu_profile)
if [ -z "$target_profile" ]; then
echo "Error: Could not auto-detect a specific GPU profile. Please provide it manually." >&2
echo "Usage: zcli update-host [hostname] [profile]" >&2
exit 1
fi
echo "Updating $FLAKE_NIX_PATH..."
# Update host
if sed -i "s/^[[:space:]]*host[[:space:]]*=[[:space:]]*\".*\"/ host = \"$target_hostname\"/" "$FLAKE_NIX_PATH"; then
echo "Successfully updated host to: $target_hostname"
else
echo "Error: Failed to update host in $FLAKE_NIX_PATH" >&2
exit 1
fi
# Update profile
if sed -i "s/^[[:space:]]*profile[[:space:]]*=[[:space:]]*\".*\"/ profile = \"$target_profile\"/" "$FLAKE_NIX_PATH"; then
echo "Successfully updated profile to: $target_profile"
else
echo "Error: Failed to update profile in $FLAKE_NIX_PATH" >&2
exit 1
fi
echo "Flake.nix updated successfully!"
;;
add-host)
hostname=""
profile_arg=""
if [ "$#" -ge 2 ]; then
hostname="$2"
fi
if [ "$#" -eq 3 ]; then
profile_arg="$3"
fi
if [ -z "$hostname" ]; then
read -p "Enter the new hostname: " hostname
fi
if [ -d "$HOME/$PROJECT/hosts/$hostname" ]; then
echo "Error: Host '$hostname' already exists." >&2
exit 1
fi
echo "Copying default host configuration..."
cp -r "$HOME/$PROJECT/hosts/default" "$HOME/$PROJECT/hosts/$hostname"
detected_profile=""
if [[ -n "$profile_arg" && "$profile_arg" =~ ^(intel|amd|nvidia|nvidia-hybrid|vm)$ ]]; then
detected_profile="$profile_arg"
else
echo "Detecting GPU profile..."
detected_profile=$(detect_gpu_profile)
echo "Detected GPU profile: $detected_profile"
read -p "Is this correct? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Nn]$ ]]; then
read -p "Enter the correct profile (intel, amd, nvidia, nvidia-hybrid, vm): " new_profile
while [[ ! "$new_profile" =~ ^(intel|amd|nvidia|nvidia-hybrid|vm)$ ]]; do
echo "Invalid profile. Please enter one of the following: intel, amd, nvidia, nvidia-hybrid, vm"
read -p "Enter the correct profile: " new_profile
done
detected_profile=$new_profile
fi
fi
echo "Setting profile to '$detected_profile'..."
sed -i "s/profile = .*/profile = \"$detected_profile\";/" "$HOME/$PROJECT/hosts/$hostname/default.nix"
read -p "Generate new hardware.nix? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Generating hardware.nix..."
sudo nixos-generate-config --show-hardware-config > "$HOME/$PROJECT/hosts/$hostname/hardware.nix"
echo "hardware.nix generated."
fi
echo "Adding new host to git..."
git -C "$HOME/$PROJECT" add .
echo "hostname: $hostname added"
;;
del-host)
hostname=""
if [ "$#" -eq 2 ]; then
hostname="$2"
else
read -p "Enter the hostname to delete: " hostname
fi
if [ ! -d "$HOME/$PROJECT/hosts/$hostname" ]; then
echo "Error: Host '$hostname' does not exist." >&2
exit 1
fi
read -p "Are you sure you want to delete the host '$hostname'? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Deleting host '$hostname'..."
rm -rf "$HOME/$PROJECT/hosts/$hostname"
git -C "$HOME/$PROJECT" add .
echo "hostname: $hostname removed"
else
echo "Deletion cancelled."
fi
;;
*)
echo "Error: Invalid command '$1'" >&2
print_help
echo "Auto-detected Hostname: $target_hostname"
echo "Auto-detected Profile: $target_profile"
else
echo "Error: Invalid number of arguments for 'update-host'." >&2
echo "Usage: zcli update-host [hostname] [profile]" >&2
exit 1
;;
esac
''
fi
echo "Updating $FLAKE_NIX_PATH..."
# Update host
if sed -i "s/^[[:space:]]*host[[:space:]]*=[[:space:]]*\".*\"/ host = \"$target_hostname\"/" "$FLAKE_NIX_PATH"; then
echo "Successfully updated host to: $target_hostname"
else
echo "Error: Failed to update host in $FLAKE_NIX_PATH" >&2
exit 1
fi
# Update profile
if sed -i "s/^[[:space:]]*profile[[:space:]]*=[[:space:]]*\".*\"/ profile = \"$target_profile\"/" "$FLAKE_NIX_PATH"; then
echo "Successfully updated profile to: $target_profile"
else
echo "Error: Failed to update profile in $FLAKE_NIX_PATH" >&2
exit 1
fi
echo "Flake.nix updated successfully!"
;;
add-host)
hostname=""
profile_arg=""
if [ "$#" -ge 2 ]; then
hostname="$2"
fi
if [ "$#" -eq 3 ]; then
profile_arg="$3"
fi
if [ -z "$hostname" ]; then
read -p "Enter the new hostname: " hostname
fi
if [ -d "$HOME/$PROJECT/hosts/$hostname" ]; then
echo "Error: Host '$hostname' already exists." >&2
exit 1
fi
echo "Copying default host configuration..."
cp -r "$HOME/$PROJECT/hosts/default" "$HOME/$PROJECT/hosts/$hostname"
detected_profile=""
if [[ -n "$profile_arg" && "$profile_arg" =~ ^(intel|amd|nvidia|nvidia-hybrid|vm)$ ]]; then
detected_profile="$profile_arg"
else
echo "Detecting GPU profile..."
detected_profile=$(detect_gpu_profile)
echo "Detected GPU profile: $detected_profile"
read -p "Is this correct? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Nn]$ ]]; then
read -p "Enter the correct profile (intel, amd, nvidia, nvidia-hybrid, vm): " new_profile
while [[ ! "$new_profile" =~ ^(intel|amd|nvidia|nvidia-hybrid|vm)$ ]]; do
echo "Invalid profile. Please enter one of the following: intel, amd, nvidia, nvidia-hybrid, vm"
read -p "Enter the correct profile: " new_profile
done
detected_profile=$new_profile
fi
fi
echo "Setting profile to '$detected_profile'..."
sed -i "s/profile = .*/profile = \"$detected_profile\";/" "$HOME/$PROJECT/hosts/$hostname/default.nix"
read -p "Generate new hardware.nix? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Generating hardware.nix..."
sudo nixos-generate-config --show-hardware-config > "$HOME/$PROJECT/hosts/$hostname/hardware.nix"
echo "hardware.nix generated."
fi
echo "Adding new host to git..."
git -C "$HOME/$PROJECT" add .
echo "hostname: $hostname added"
;;
del-host)
hostname=""
if [ "$#" -eq 2 ]; then
hostname="$2"
else
read -p "Enter the hostname to delete: " hostname
fi
if [ ! -d "$HOME/$PROJECT/hosts/$hostname" ]; then
echo "Error: Host '$hostname' does not exist." >&2
exit 1
fi
read -p "Are you sure you want to delete the host '$hostname'? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Deleting host '$hostname'..."
rm -rf "$HOME/$PROJECT/hosts/$hostname"
git -C "$HOME/$PROJECT" add .
echo "hostname: $hostname removed"
else
echo "Deletion cancelled."
fi
;;
*)
echo "Error: Invalid command '$1'" >&2
print_help
exit 1
;;
esac
''

View File

@ -1,12 +1,13 @@
# starship is a minimal, fast, and extremely customizable prompt for any shell!
{
config,
lib,
...
}: let
{ config
, lib
, ...
}:
let
accent = "#${config.lib.stylix.colors.base0D}";
background-alt = "#${config.lib.stylix.colors.base01}";
in {
in
{
programs.starship = {
enable = false;
settings = {
@ -21,7 +22,7 @@ in {
"\n"
"$character"
];
directory = {style = accent;};
directory = { style = accent; };
character = {
success_symbol = "[](${accent})";

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.starship = {
enable = false;
package = pkgs.starship;

View File

@ -1,4 +1,4 @@
{username, ...}: {
{ username, ... }: {
home.file = {
".config/swappy/config".text = ''
[Default]

View File

@ -1,4 +1,4 @@
{config, ...}: {
{ config, ... }: {
services.swaync = {
enable = true;
settings = {

View File

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
programs.tealdeer = {
enable = true;
settings = {

View File

@ -1,5 +1,5 @@
# Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window.
{pkgs, ...}: {
{ pkgs, ... }: {
programs.tmux = {
enable = true;
mouse = true;

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
nixpkgs.config.allowUnfree = true;
programs.vscode = {

View File

@ -1,9 +1,9 @@
{
pkgs,
config,
lib,
...
}: let
{ pkgs
, config
, lib
, ...
}:
let
terminal = "kitty";
base00 = "0F1419";
base01 = "131721";
@ -20,337 +20,337 @@
base0E = "D2A6FF";
base0F = "E6B673";
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = ["network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock"]; # Eterna: [ "hyprland/window" ]
modules-left = ["custom/startmenu" "hyprland/window"]; # Eternal: [ "hyprland/workspaces" "cpu" "memory" "network" ]
modules-right = ["tray" "idle_inhibitor" "custom/notification" "battery" "custom/exit"]; # Eternal: [ "idle_inhibitor" "pulseaudio" "clock" "custom/notification" "tray" ]
modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ]; # Eterna: [ "hyprland/window" ]
modules-left = [ "custom/startmenu" "hyprland/window" ]; # Eternal: [ "hyprland/workspaces" "cpu" "memory" "network" ]
modules-right = [ "tray" "idle_inhibitor" "custom/notification" "battery" "custom/exit" ]; # Eternal: [ "idle_inhibitor" "pulseaudio" "clock" "custom/notification" "tray" ]
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
"clock" = {
format = '' {:%H:%M}'';
/*
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format = '' {:%H:%M}'';
/*
''{: %I:%M %p}'';
*/
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big><tt><small>{calendar}</small></tt>";
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big><tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 60;
separate-outputs = false;
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"disk" = {
format = " {free}";
tooltip = true;
# Not working with zaneyos window open then closes
#on-click = "${terminal} -e sh -c df -h ; read";
};
"network" = {
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-ethernet = " {bandwidthDownBits}";
format-wifi = " {bandwidthDownBits}";
format-disconnected = "󰤮";
tooltip = false;
on-click = "${terminal} -e btop";
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [ "" "" "" ];
};
"hyprland/window" = {
max-length = 60;
separate-outputs = false;
on-click = "pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = " ";
# exec = "rofi -show drun";
on-click = "rofi -show drun";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
on-click = "${terminal} -e btop";
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"disk" = {
format = " {free}";
tooltip = true;
# Not working with zaneyos window open then closes
#on-click = "${terminal} -e sh -c df -h ; read";
};
"network" = {
format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"];
format-ethernet = " {bandwidthDownBits}";
format-wifi = " {bandwidthDownBits}";
format-disconnected = "󰤮";
tooltip = false;
on-click = "${terminal} -e btop";
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = ["" "" ""];
};
on-click = "pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = " ";
# exec = "rofi -show drun";
on-click = "rofi -show drun";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
on-click = "";
tooltip = false;
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-size: 16px;
font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
];
style = concatStrings [
''
* {
font-size: 16px;
font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
window#waybar {
/*
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
*/
window#waybar {
/*
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
}
#workspaces {
/*
Eternal
background: linear-gradient(180deg, #${base00}, #${base01});
margin: 5px 5px 5px 0px;
padding: 0px 10px;
border-radius: 0px 15px 50px 0px;
border: 0px;
font-style: normal;
color: #${base00};
*/
background: linear-gradient(45deg, #${base01}, #${base01});
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
*/
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
}
#workspaces {
/*
Eternal
background: linear-gradient(180deg, #${base00}, #${base01});
margin: 5px 5px 5px 0px;
padding: 0px 10px;
border-radius: 0px 15px 50px 0px;
border: 0px;
font-style: normal;
color: #${base00};
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 1.0;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
border-radius: 15px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.8;
}
tooltip {
background: #${base00};
border: 1px solid #${base0E};
border-radius: 10px;
}
tooltip label {
color: #${base07};
}
#window {
/*
Eternal
color: #${base05};
background: #${base00};
border-radius: 15px;
margin: 5px;
padding: 2px 20px;
*/
margin: 5px;
padding: 2px 20px;
color: #${base05};
background: #${base01};
border-radius: 50px 15px 50px 15px;
}
#memory {
color: #${base0F};
/*
Eternal
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 5px;
padding: 2px 20px;
border-radius: 15px 50px 15px 50px;
}
#clock {
color: #${base0B};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base0A};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#cpu {
color: #${base07};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#disk {
color: #${base0F};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#battery {
color: #${base08};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#network {
color: #${base09};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#tray {
*/
background: linear-gradient(45deg, #${base01}, #${base01});
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-style: normal;
color: #${base00};
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 1.0;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
border-radius: 15px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.8;
}
tooltip {
background: #${base00};
border: 1px solid #${base0E};
border-radius: 10px;
}
tooltip label {
color: #${base07};
}
#window {
/*
Eternal
color: #${base05};
background: #${base00};
border-radius: 15px 50px 15px 50px;
border-radius: 15px;
margin: 5px;
padding: 2px 20px;
}
#pulseaudio {
color: #${base0D};
/*
Eternal
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 4px;
padding: 2px 20px;
*/
margin: 5px;
padding: 2px 20px;
color: #${base05};
background: #${base01};
border-radius: 50px 15px 50px 15px;
}
#memory {
color: #${base0F};
/*
Eternal
background: #${base00};
border-radius: 50px 15px 50px 15px;
}
#custom-notification {
color: #${base0C};
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 5px;
padding: 2px 20px;
border-radius: 15px 50px 15px 50px;
}
#clock {
color: #${base0B};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#custom-startmenu {
color: #${base0E};
}
#idle_inhibitor {
color: #${base0A};
background: #${base00};
border-radius: 0px 15px 50px 0px;
margin: 5px 5px 5px 0px;
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base09};
}
#cpu {
color: #${base07};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#disk {
color: #${base0F};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#custom-exit {
color: #${base0E};
}
#battery {
color: #${base08};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#network {
color: #${base09};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#tray {
color: #${base05};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#pulseaudio {
color: #${base0D};
/*
Eternal
background: #${base00};
border-radius: 15px 0px 0px 50px;
margin: 5px 0px 5px 5px;
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
''
];
};
}
*/
background: #${base01};
margin: 4px;
padding: 2px 20px;
border-radius: 50px 15px 50px 15px;
}
#custom-notification {
color: #${base0C};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#custom-startmenu {
color: #${base0E};
background: #${base00};
border-radius: 0px 15px 50px 0px;
margin: 5px 5px 5px 0px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base09};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#custom-exit {
color: #${base0E};
background: #${base00};
border-radius: 15px 0px 0px 50px;
margin: 5px 0px 5px 5px;
padding: 2px 20px;
}
''
];
};
}

View File

@ -1,277 +1,277 @@
{
pkgs,
lib,
host,
config,
...
}: let
{ pkgs
, lib
, host
, config
, ...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = ["hyprland/workspaces"];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
on-click = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "sleep 0.1 && pavucontrol";
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 16px;
border-radius: 0px;
border: none;
min-height: 0px;
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 16px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
border-radius: 24px 10px 24px 10px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 28px;
margin: 0px;
padding: 0px 30px 0px 15px;
border-radius: 0px 0px 40px 0px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
font-weight: bold;
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
margin: 4px 0px;
margin-right: 7px;
border-radius: 10px 24px 10px 24px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0E}, #${config.lib.stylix.colors.base0C});
margin: 0px;
padding: 0px 15px 0px 30px;
border-radius: 0px 0px 0px 40px;
}
''
];
};
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
border-radius: 24px 10px 24px 10px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 28px;
margin: 0px;
padding: 0px 30px 0px 15px;
border-radius: 0px 0px 40px 0px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
font-weight: bold;
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
margin: 4px 0px;
margin-right: 7px;
border-radius: 10px 24px 10px 24px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0E}, #${config.lib.stylix.colors.base0C});
margin: 0px;
padding: 0px 15px 0px 30px;
border-radius: 0px 0px 0px 40px;
}
''
];
};
}

View File

@ -1,9 +1,9 @@
{
pkgs,
config,
lib,
...
}: let
{ pkgs
, config
, lib
, ...
}:
let
terminal = "kitty";
base00 = "0F1419";
base01 = "131721";
@ -20,337 +20,337 @@
base0E = "D2A6FF";
base0F = "E6B673";
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-left = ["custom/startmenu" "tray" "hyprland/window"];
modules-center = ["hyprland/workspaces"];
modules-right = ["idle_inhibitor" "custom/notification" "pulseaudio" "battery" "clock" "custom/exit"];
modules-left = [ "custom/startmenu" "tray" "hyprland/window" ];
modules-center = [ "hyprland/workspaces" ];
modules-right = [ "idle_inhibitor" "custom/notification" "pulseaudio" "battery" "clock" "custom/exit" ];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
"clock" = {
format = '' {:%H:%M}'';
/*
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format = '' {:%H:%M}'';
/*
''{: %I:%M %p}'';
*/
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big><tt><small>{calendar}</small></tt>";
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big><tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 60;
separate-outputs = false;
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"disk" = {
format = " {free}";
tooltip = true;
# Not working with zaneyos window open then closes
#on-click = "${terminal} -e sh -c df -h ; read";
};
"network" = {
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-ethernet = " {bandwidthDownBits}";
format-wifi = " {bandwidthDownBits}";
format-disconnected = "󰤮";
tooltip = false;
on-click = "${terminal} -e btop";
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [ "" "" "" ];
};
"hyprland/window" = {
max-length = 60;
separate-outputs = false;
on-click = "pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = " ";
# exec = "rofi -show drun";
on-click = "rofi -show drun";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
on-click = "${terminal} -e btop";
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"disk" = {
format = " {free}";
tooltip = true;
# Not working with zaneyos window open then closes
#on-click = "${terminal} -e sh -c df -h ; read";
};
"network" = {
format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"];
format-ethernet = " {bandwidthDownBits}";
format-wifi = " {bandwidthDownBits}";
format-disconnected = "󰤮";
tooltip = false;
on-click = "${terminal} -e btop";
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = ["" "" ""];
};
on-click = "pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = " ";
# exec = "rofi -show drun";
on-click = "rofi -show drun";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
on-click = "";
tooltip = false;
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-size: 16px;
font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
];
style = concatStrings [
''
* {
font-size: 16px;
font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
window#waybar {
/*
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
*/
window#waybar {
/*
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
}
#workspaces {
/*
Eternal
background: linear-gradient(180deg, #${base00}, #${base01});
margin: 5px 5px 5px 0px;
padding: 0px 10px;
border-radius: 0px 15px 15px 0px;
border: 0px;
font-style: normal;
color: #${base00};
*/
background: linear-gradient(45deg, #${base01}, #${base01});
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
*/
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
}
#workspaces {
/*
Eternal
background: linear-gradient(180deg, #${base00}, #${base01});
margin: 5px 5px 5px 0px;
padding: 0px 10px;
border-radius: 0px 15px 15px 0px;
border: 0px;
font-style: normal;
color: #${base00};
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 1.0;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
border-radius: 15px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.8;
}
tooltip {
background: #${base00};
border: 1px solid #${base0E};
border-radius: 10px;
}
tooltip label {
color: #${base07};
}
#window {
/*
Eternal
color: #${base05};
background: #${base00};
border-radius: 15px;
margin: 5px;
padding: 2px 20px;
*/
margin: 5px;
padding: 2px 20px;
color: #${base05};
background: #${base01};
border-radius: 15px 15px 15px 15px;
}
#memory {
color: #${base0F};
/*
Eternal
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 5px;
padding: 2px 20px;
border-radius: 15px 15px 15px 15px;
}
#clock {
color: #${base0B};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base0A};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 3px;
padding: 2px 20px;
}
#cpu {
color: #${base07};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#disk {
color: #${base0F};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#battery {
color: #${base08};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#network {
color: #${base09};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#tray {
*/
background: linear-gradient(45deg, #${base01}, #${base01});
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-style: normal;
color: #${base00};
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 1.0;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
border-radius: 15px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.8;
}
tooltip {
background: #${base00};
border: 1px solid #${base0E};
border-radius: 10px;
}
tooltip label {
color: #${base07};
}
#window {
/*
Eternal
color: #${base05};
background: #${base00};
border-radius: 15px 15px 15px 15px;
border-radius: 15px;
margin: 5px;
padding: 2px 15px;
}
#pulseaudio {
color: #${base0D};
/*
Eternal
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 4px;
padding: 2px 20px;
border-radius: 15px 15px 15px 15px;
}
#custom-notification {
color: #${base0C};
*/
margin: 5px;
padding: 2px 20px;
color: #${base05};
background: #${base01};
border-radius: 15px 15px 15px 15px;
}
#memory {
color: #${base0F};
/*
Eternal
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#custom-startmenu {
color: #${base0E};
background: #${base00};
border-radius: 0px 15px 15px 0px;
margin: 5px 5px 5px 0px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base09};
*/
background: #${base01};
margin: 5px;
padding: 2px 20px;
border-radius: 15px 15px 15px 15px;
}
#clock {
color: #${base0B};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#custom-exit {
color: #${base0E};
}
#idle_inhibitor {
color: #${base0A};
background: #${base00};
border-radius: 15px 0px 0px 15px;
margin: 5px 0px 5px 5px;
border-radius: 15px 15px 15px 15px;
margin: 3px;
padding: 2px 20px;
}
''
];
};
}
}
#cpu {
color: #${base07};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#disk {
color: #${base0F};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#battery {
color: #${base08};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#network {
color: #${base09};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#tray {
color: #${base05};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 15px;
}
#pulseaudio {
color: #${base0D};
/*
Eternal
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 4px;
padding: 2px 20px;
border-radius: 15px 15px 15px 15px;
}
#custom-notification {
color: #${base0C};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#custom-startmenu {
color: #${base0E};
background: #${base00};
border-radius: 0px 15px 15px 0px;
margin: 5px 5px 5px 0px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base09};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#custom-exit {
color: #${base0E};
background: #${base00};
border-radius: 15px 0px 0px 15px;
margin: 5px 0px 5px 5px;
padding: 2px 20px;
}
''
];
};
}

View File

@ -1,283 +1,283 @@
{
pkgs,
lib,
host,
config,
...
}: let
{ pkgs
, lib
, host
, config
, ...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = ["hyprland/workspaces"];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
on-click = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
#on-click = "sleep 0.1 && rofi-launcher";
on-click = "sleep 0.1 && nwg-drawer -mb 200 -mt 200 -mr 200 -ml 200";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "sleep 0.1 && pavucontrol";
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
#on-click = "sleep 0.1 && rofi-launcher";
on-click = "sleep 0.1 && nwg-drawer -mb 200 -mt 200 -mr 200 -ml 200";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 18px;
border-radius: 0px;
border: none;
min-height: 0px;
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 18px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base08};
border-radius: 8px 8px 8px 8px;
}
#idle_inhibitor {
font-size: 28px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 22px;
margin: 0px;
padding: 0px 5px 0px 5px;
border-radius: 16px 16px 16px 16px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
/* font-weight: bold; */
font-size: 20px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base08};
margin: 4px 0px;
margin-right: 7px;
border-radius: 8px 8px 8px 8px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
font-size: 16px;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0B}, #${config.lib.stylix.colors.base02});
margin: 0px;
padding: 0px 5px 0px 5px;
border-radius: 16px 16px 16px 16px;
}
''
];
};
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base08};
border-radius: 8px 8px 8px 8px;
}
#idle_inhibitor {
font-size: 28px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 22px;
margin: 0px;
padding: 0px 5px 0px 5px;
border-radius: 16px 16px 16px 16px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
/* font-weight: bold; */
font-size: 20px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base08};
margin: 4px 0px;
margin-right: 7px;
border-radius: 8px 8px 8px 8px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
font-size: 16px;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0B}, #${config.lib.stylix.colors.base02});
margin: 0px;
padding: 0px 5px 0px 5px;
border-radius: 16px 16px 16px 16px;
}
''
];
};
}

View File

@ -1,306 +1,306 @@
{
pkgs,
lib,
host,
config,
...
}: let
{ pkgs
, lib
, host
, config
, ...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
margin-top = 6;
margin-left = 6;
margin-right = 6;
modules-center = ["hyprland/workspaces"];
modules-left = [
"custom/startmenu"
"cpu"
"memory"
"temperature"
"disk"
"hyprland/window"
"idle_inhibitor"
];
modules-right = [
"pulseaudio"
"battery"
"custom/hyprbindings"
"custom/notification"
"clock"
"tray"
];
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
margin-top = 6;
margin-left = 6;
margin-right = 6;
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"cpu"
"memory"
"temperature"
"disk"
"hyprland/window"
"idle_inhibitor"
];
modules-right = [
"pulseaudio"
"battery"
"custom/hyprbindings"
"custom/notification"
"clock"
"tray"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
"pulseaudio/slider" = {
min = 0;
max = 100;
orientation = "horizontal";
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"pulseaudio/slider" = {
min = 0;
max = 100;
orientation = "horizontal";
};
"temperature" = {
format = " {temperatureC}°C ";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
"temperature" = {
format = " {temperatureC}°C ";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
icon-size = 20;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = "󱛟 {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
};
"memory" = {
interval = 5;
icon-size = 20;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = "󱛟 {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
on-click = "sleep 0.1 && pavucontrol";
scroll-step = 2;
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
#on-click = "sleep 0.1 && rofi-launcher";
on-click = "sleep 0.1 && nwg-drawer -mb 200 -mt 200 -mr 200 -ml 200";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "sleep 0.1 && pavucontrol";
scroll-step = 2;
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
#on-click = "sleep 0.1 && rofi-launcher";
on-click = "sleep 0.1 && nwg-drawer -mb 200 -mt 200 -mr 200 -ml 200";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 18px;
border-radius: 0px;
border: none;
min-height: 0px;
margin: 0px;
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 18px;
border-radius: 0px;
border: none;
min-height: 0px;
margin: 0px;
}
window#waybar {
background: #${config.lib.stylix.colors.base00};
padding: 2px;
border-radius: 4px;
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0B};
margin: 2px 4px;
padding: 5px 5px;
border-radius: 4px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base00};
window#waybar {
background: #${config.lib.stylix.colors.base00};
padding: 2px;
border-radius: 4px;
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0B};
margin: 2px 4px;
padding: 5px 5px;
border-radius: 4px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base00};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 4px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 4px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
opacity: 0.8;
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #temperature, #cpu, #memory, #idle_inhibitor, #disk {
font-weight: bold;
margin: 2px 0px;
margin-right: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base0B};
border: 2px solid #${config.lib.stylix.colors.base0B};
border-radius: 4px;
}
#idle_inhibitor {
font-size: 28px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
font-size: 22px;
padding: 0px 5px 0px 5px;
border-radius: 4px;
padding: 0px 8px;
margin: 0px;
margin-right:7px;
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 4px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 4px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
opacity: 0.8;
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #temperature, #cpu, #memory, #idle_inhibitor, #disk {
font-weight: bold;
margin: 2px 0px;
margin-right: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base0B};
border: 2px solid #${config.lib.stylix.colors.base0B};
border-radius: 4px;
}
#idle_inhibitor {
font-size: 28px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
font-size: 22px;
padding: 0px 5px 0px 5px;
border-radius: 4px;
padding: 0px 8px;
margin: 0px;
margin-right:7px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #clock, #custom-exit {
/* font-weight: bold; */
font-size: 20px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base0B};
margin: 2px 0px;
margin-right: 7px;
border: 2px solid #${config.lib.stylix.colors.base0B};
border-radius: 4px;
padding: 0px 12px;
}
#tray{
font-weight: bold;
font-size: 16px;
margin: 0px;
background: #${config.lib.stylix.colors.base0B};
color: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0B};
padding: 0px 18px;
margin: 0px 0px;
border-radius: 4px;
}
''
];
};
}
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #clock, #custom-exit {
/* font-weight: bold; */
font-size: 20px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base0B};
margin: 2px 0px;
margin-right: 7px;
border: 2px solid #${config.lib.stylix.colors.base0B};
border-radius: 4px;
padding: 0px 12px;
}
#tray{
font-weight: bold;
font-size: 16px;
margin: 0px;
background: #${config.lib.stylix.colors.base0B};
color: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0B};
padding: 0px 18px;
margin: 0px 0px;
border-radius: 4px;
}
''
];
};
}

View File

@ -1,305 +1,305 @@
{
pkgs,
lib,
host,
config,
...
}: let
{ pkgs
, lib
, host
, config
, ...
}:
let
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = ["hyprland/workspaces"];
modules-left = [
"custom/startmenu"
"custom/arrow6"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
"custom/arrow7"
"hyprland/window"
];
modules-right = [
"custom/arrow4"
"custom/hyprbindings"
"custom/arrow3"
"custom/notification"
"custom/arrow3"
"custom/exit"
"battery"
"custom/arrow2"
"tray"
"custom/arrow1"
"clock"
];
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"custom/arrow6"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
"custom/arrow7"
"hyprland/window"
];
modules-right = [
"custom/arrow4"
"custom/hyprbindings"
"custom/arrow3"
"custom/notification"
"custom/arrow3"
"custom/exit"
"battery"
"custom/arrow2"
"tray"
"custom/arrow1"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
on-click = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "sleep 0.1 && pavucontrol";
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
"custom/arrow1" = {
format = "";
};
"custom/arrow2" = {
format = "";
};
"custom/arrow3" = {
format = "";
};
"custom/arrow4" = {
format = "";
};
"custom/arrow5" = {
format = "";
};
"custom/arrow6" = {
format = "";
};
"custom/arrow7" = {
format = "";
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
"custom/arrow1" = {
format = "";
};
"custom/arrow2" = {
format = "";
};
"custom/arrow3" = {
format = "";
};
"custom/arrow4" = {
format = "";
};
"custom/arrow5" = {
format = "";
};
"custom/arrow6" = {
format = "";
};
"custom/arrow7" = {
format = "";
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 14px;
border-radius: 0px;
border: none;
min-height: 0px;
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 14px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base05};
}
#workspaces button {
padding: 0px 5px;
background: transparent;
color: #${config.lib.stylix.colors.base04};
}
#workspaces button.active {
color: #${config.lib.stylix.colors.base08};
}
#workspaces button:hover {
color: #${config.lib.stylix.colors.base08};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base05};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base05};
}
#window {
padding: 0px 10px;
}
#pulseaudio, #cpu, #memory, #idle_inhibitor {
padding: 0px 10px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base02};
padding: 0px 14px;
font-size: 20px;
background: #${config.lib.stylix.colors.base0B};
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #custom-exit {
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
padding: 0px 10px;
}
#tray {
background: #${config.lib.stylix.colors.base02};
color: #${config.lib.stylix.colors.base00};
padding: 0px 10px;
}
#clock {
font-weight: bold;
padding: 0px 10px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0E};
}
#custom-arrow1 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0E};
background: #${config.lib.stylix.colors.base02};
}
#custom-arrow2 {
font-size: 24px;
color: #${config.lib.stylix.colors.base02};
background: #${config.lib.stylix.colors.base0F};
}
#custom-arrow3 {
font-size: 24px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0F};
}
#custom-arrow4 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0F};
background: transparent;
}
#custom-arrow6 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base04};
}
#custom-arrow7 {
font-size: 24px;
color: #${config.lib.stylix.colors.base04};
background: transparent;
}
''
];
};
}
window#waybar {
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base05};
}
#workspaces button {
padding: 0px 5px;
background: transparent;
color: #${config.lib.stylix.colors.base04};
}
#workspaces button.active {
color: #${config.lib.stylix.colors.base08};
}
#workspaces button:hover {
color: #${config.lib.stylix.colors.base08};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base05};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base05};
}
#window {
padding: 0px 10px;
}
#pulseaudio, #cpu, #memory, #idle_inhibitor {
padding: 0px 10px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base02};
padding: 0px 14px;
font-size: 20px;
background: #${config.lib.stylix.colors.base0B};
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #custom-exit {
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
padding: 0px 10px;
}
#tray {
background: #${config.lib.stylix.colors.base02};
color: #${config.lib.stylix.colors.base00};
padding: 0px 10px;
}
#clock {
font-weight: bold;
padding: 0px 10px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0E};
}
#custom-arrow1 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0E};
background: #${config.lib.stylix.colors.base02};
}
#custom-arrow2 {
font-size: 24px;
color: #${config.lib.stylix.colors.base02};
background: #${config.lib.stylix.colors.base0F};
}
#custom-arrow3 {
font-size: 24px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0F};
}
#custom-arrow4 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0F};
background: transparent;
}
#custom-arrow6 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base04};
}
#custom-arrow7 {
font-size: 24px;
color: #${config.lib.stylix.colors.base04};
background: transparent;
}
''
];
};
}

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.wezterm = {
enable = true;
package = pkgs.wezterm;

View File

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
xdg = {
enable = true;
mime.enable = true;
@ -7,8 +7,8 @@
};
portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-hyprland];
configPackages = [pkgs.hyprland];
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
configPackages = [ pkgs.hyprland ];
};
};
}

View File

@ -1,8 +1,10 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
settings = import ./yazi.nix;
keymap = import ./keymap.nix;
theme = import ./theme.nix;
in {
in
{
programs.yazi = {
enable = true;
enableZshIntegration = true;

View File

@ -92,7 +92,7 @@
desc = "Move cursor down one page";
}
{
on = ["g" "g"];
on = [ "g" "g" ];
run = "arrow top";
desc = "Move cursor to the top";
}
@ -133,7 +133,7 @@
}
{
on = "<Space>";
run = ["toggle" "arrow 1"];
run = [ "toggle" "arrow 1" ];
desc = "Toggle the current selection state";
}
{
@ -297,52 +297,52 @@
desc = "Jump to a file/directory via fzf";
}
{
on = ["m" "s"];
on = [ "m" "s" ];
run = "linemode size";
desc = "Linemode: size";
}
{
on = ["m" "p"];
on = [ "m" "p" ];
run = "linemode permissions";
desc = "Linemode: permissions";
}
{
on = ["m" "b"];
on = [ "m" "b" ];
run = "linemode btime";
desc = "Linemode: btime";
}
{
on = ["m" "m"];
on = [ "m" "m" ];
run = "linemode mtime";
desc = "Linemode: mtime";
}
{
on = ["m" "o"];
on = [ "m" "o" ];
run = "linemode owner";
desc = "Linemode: owner";
}
{
on = ["m" "n"];
on = [ "m" "n" ];
run = "linemode none";
desc = "Linemode: none";
}
{
on = ["c" "c"];
on = [ "c" "c" ];
run = "copy path";
desc = "Copy the file path";
}
{
on = ["c" "d"];
on = [ "c" "d" ];
run = "copy dirname";
desc = "Copy the directory path";
}
{
on = ["c" "f"];
on = [ "c" "f" ];
run = "copy filename";
desc = "Copy the filename";
}
{
on = ["c" "n"];
on = [ "c" "n" ];
run = "copy name_without_ext";
desc = "Copy the filename without extension";
}
@ -372,87 +372,87 @@
desc = "Goto the previous found";
}
{
on = ["," "m"];
run = ["sort mtime --reverse=no" "linemode mtime"];
on = [ "," "m" ];
run = [ "sort mtime --reverse=no" "linemode mtime" ];
desc = "Sort by modified time";
}
{
on = ["," "M"];
run = ["sort mtime --reverse" "linemode mtime"];
on = [ "," "M" ];
run = [ "sort mtime --reverse" "linemode mtime" ];
desc = "Sort by modified time (reverse)";
}
{
on = ["," "b"];
run = ["sort btime --reverse=no" "linemode btime"];
on = [ "," "b" ];
run = [ "sort btime --reverse=no" "linemode btime" ];
desc = "Sort by birth time";
}
{
on = ["," "B"];
run = ["sort btime --reverse" "linemode btime"];
on = [ "," "B" ];
run = [ "sort btime --reverse" "linemode btime" ];
desc = "Sort by birth time (reverse)";
}
{
on = ["," "e"];
on = [ "," "e" ];
run = "sort extension --reverse=no";
desc = "Sort by extension";
}
{
on = ["," "E"];
on = [ "," "E" ];
run = "sort extension --reverse";
desc = "Sort by extension (reverse)";
}
{
on = ["," "a"];
on = [ "," "a" ];
run = "sort alphabetical --reverse=no";
desc = "Sort alphabetically";
}
{
on = ["," "A"];
on = [ "," "A" ];
run = "sort alphabetical --reverse";
desc = "Sort alphabetically (reverse)";
}
{
on = ["," "n"];
on = [ "," "n" ];
run = "sort natural --reverse=no";
desc = "Sort naturally";
}
{
on = ["," "N"];
on = [ "," "N" ];
run = "sort natural --reverse";
desc = "Sort naturally (reverse)";
}
{
on = ["," "s"];
run = ["sort size --reverse=no" "linemode size"];
on = [ "," "s" ];
run = [ "sort size --reverse=no" "linemode size" ];
desc = "Sort by size";
}
{
on = ["," "S"];
run = ["sort size --reverse" "linemode size"];
on = [ "," "S" ];
run = [ "sort size --reverse" "linemode size" ];
desc = "Sort by size (reverse)";
}
{
on = ["," "r"];
on = [ "," "r" ];
run = "sort random --reverse=no";
desc = "Sort randomly";
}
{
on = ["g" "h"];
on = [ "g" "h" ];
run = "cd ~";
desc = "Go home";
}
{
on = ["g" "c"];
on = [ "g" "c" ];
run = "cd ~/.config";
desc = "Goto ~/.config";
}
{
on = ["g" "d"];
on = [ "g" "d" ];
run = "cd ~/Downloads";
desc = "Goto ~/Downloads";
}
{
on = ["g" "<Space>"];
on = [ "g" "<Space>" ];
run = "cd --interactive";
desc = "Jump interactively";
}
@ -544,7 +544,7 @@
];
prepend_keymap = [
{
on = ["g" "i"];
on = [ "g" "i" ];
run = "plugin lazygit";
desc = "run lazygit";
}
@ -682,7 +682,7 @@
desc = "Swipe to the previous file";
}
{
on = ["c" "c"];
on = [ "c" "c" ];
run = "copy cell";
desc = "Copy selected cell";
}
@ -781,7 +781,7 @@
}
{
on = "I";
run = ["move first-char" "insert"];
run = [ "move first-char" "insert" ];
desc = "Move to the BOL, and enter insert mode";
}
{
@ -791,7 +791,7 @@
}
{
on = "A";
run = ["move eol" "insert --append"];
run = [ "move eol" "insert --append" ];
desc = "Move to the EOL, and enter append mode";
}
{
@ -806,17 +806,17 @@
}
{
on = "V";
run = ["move bol" "visual" "move eol"];
run = [ "move bol" "visual" "move eol" ];
desc = "Select from BOL to EOL";
}
{
on = "<C-A>";
run = ["move eol" "visual" "move bol"];
run = [ "move eol" "visual" "move bol" ];
desc = "Select from EOL to BOL";
}
{
on = "<C-E>";
run = ["move bol" "visual" "move eol"];
run = [ "move bol" "visual" "move eol" ];
desc = "Select from BOL to EOL";
}
{
@ -976,7 +976,7 @@
}
{
on = "D";
run = ["delete --cut" "move eol"];
run = [ "delete --cut" "move eol" ];
desc = "Cut until the EOL";
}
{
@ -986,12 +986,12 @@
}
{
on = "C";
run = ["delete --cut --insert" "move eol"];
run = [ "delete --cut --insert" "move eol" ];
desc = "Cut until the EOL, and enter insert mode";
}
{
on = "x";
run = ["delete --cut" "move 1 --in-operating"];
run = [ "delete --cut" "move 1 --in-operating" ];
desc = "Cut the current character";
}
{
@ -1109,7 +1109,7 @@
}
{
on = "<Enter>";
run = ["close --submit" "close_input --submit"];
run = [ "close --submit" "close_input --submit" ];
desc = "Submit the completion and input";
}
{

View File

@ -11,26 +11,24 @@
tab_width = 1;
border_symbol = "";
};
mode = {};
mode = { };
status = {
overall = {bold = true;};
sep_left = ["" ""];
sep_right = ["" ""];
overall = { bold = true; };
sep_left = [ "" "" ];
sep_right = [ "" "" ];
};
which = {
cols = 3;
separator = " ";
};
confirm = {
border = {fg = "gray";};
border = { fg = "gray"; };
title = {
fg = "blue";
bold = true;
};
content = {
};
list = {
};
content = { };
list = { };
btn_yes = {
bg = "green";
fg = "black";
@ -41,40 +39,39 @@
fg = "black";
bold = true;
};
btn_labels = [" [Y]es " " (N)o "];
btn_labels = [ " [Y]es " " (N)o " ];
};
spot = {
border = {fg = "blue";};
title = {fg = "blue";};
tbl_col = {fg = "blue";};
border = { fg = "blue"; };
title = { fg = "blue"; };
tbl_col = { fg = "blue"; };
tbl_cell = {
fg = "yellow";
reversed = true;
};
};
notify = {
title_info = {fg = "green";};
title_warn = {fg = "yellow";};
title_error = {fg = "red";};
title_info = { fg = "green"; };
title_warn = { fg = "yellow"; };
title_error = { fg = "red"; };
icon_info = "";
icon_warn = "";
icon_error = "";
};
pick = {};
input = {};
pick = { };
input = { };
cmp = {
active = {reversed = true;};
inactive = {
};
active = { reversed = true; };
inactive = { };
icon_file = "";
icon_folder = "";
icon_command = "";
};
tasks = {};
help = {};
filetype = {};
tasks = { };
help = { };
filetype = { };
icon = {
globs = [];
globs = [ ];
dirs = [
{
name = ".config";

View File

@ -1,8 +1,7 @@
{
profile,
pkgs,
lib,
...
{ profile
, pkgs
, lib
, ...
}: {
imports = [
./zshrc-personal.nix
@ -13,7 +12,7 @@
autosuggestion.enable = true;
syntaxHighlighting = {
enable = true;
highlighters = ["main" "brackets" "pattern" "regexp" "root" "line"];
highlighters = [ "main" "brackets" "pattern" "regexp" "root" "line" ];
};
historySubstringSearch.enable = true;

Some files were not shown because too many files have changed in this diff Show More