Desktop environment refactor

This commit is contained in:
marc
2024-12-03 20:03:23 +01:00
parent c62acaa77f
commit a5cd3713e7
16 changed files with 210 additions and 164 deletions

View File

@@ -0,0 +1,56 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.desktop.tools.eww;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
# Paths
paths = {
};
in {
options.samfelag.modules.desktop.tools.eww = {
enable = lib.mkEnableOption "eww";
};
config = lib.mkIf cfg.enable {
# - Configuration ----------------------------
environment.systemPackages = with pkgs; [
eww
# Scripts' dependencies
jq
socat
];
hm.xdg.configFile."eww/eww.yuck".source = ../../../config/eww/eww.yuck;
hm.xdg.configFile."eww/eww.scss".source = ../../../config/eww/eww.scss;
hm.xdg.configFile."eww/bars".source = ../../../config/eww/bars;
hm.xdg.configFile."eww/widgets".source = ../../../config/eww/widgets;
hm.xdg.configFile."eww/scripts".source = ../../../config/eww/scripts;
# - Themeing ---------------------------------
hm.xdg.configFile."eww/colour-scheme.scss".text = ''
$base00: #${config.colorScheme.palette.base00};
$base01: #${config.colorScheme.palette.base01};
$base02: #${config.colorScheme.palette.base02};
$base03: #${config.colorScheme.palette.base03};
$base04: #${config.colorScheme.palette.base04};
$base05: #${config.colorScheme.palette.base05};
$base06: #${config.colorScheme.palette.base06};
$base07: #${config.colorScheme.palette.base07};
$base08: #${config.colorScheme.palette.base08};
$base09: #${config.colorScheme.palette.base09};
$base0A: #${config.colorScheme.palette.base0A};
$base0B: #${config.colorScheme.palette.base0B};
$base0C: #${config.colorScheme.palette.base0C};
$base0D: #${config.colorScheme.palette.base0D};
$base0E: #${config.colorScheme.palette.base0E};
$base0F: #${config.colorScheme.palette.base0F};
'';
# - Dependencies -----------------------------
samfelag.modules.desktop.tools.rofi.enable = true;
};
}

View File

@@ -0,0 +1,92 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.desktop.tools.polybar;
i3Cfg = config.samfelag.modules.desktop.wm.i3;
polybar_pkg = pkgs.polybar.override {
i3Support = true;
pulseSupport = true;
};
script = ''
polybar top &
polybar bottom &
'';
# Paths
paths = {
config = ../../../config/polybar/config.ini;
bars = ../../../config/polybar/bars;
scripts = ../../../config/polybar/scripts;
};
in {
options.samfelag.modules.desktop.tools.polybar = {
enable = lib.mkEnableOption "polybar";
};
config = lib.mkIf cfg.enable {
# - Configuration ----------------------------
environment.systemPackages = [
polybar_pkg
];
hm.xdg.configFile."polybar/config.ini".source = paths.config;
hm.xdg.configFile."polybar/bars".source = paths.bars;
hm.xdg.configFile."polybar/scripts".source = paths.scripts;
# - Themeing ---------------------------------
hm.xdg.configFile."polybar/colour-scheme.ini".text = ''
[colour-scheme]
base00 = #${config.colorScheme.palette.base00}
base01 = #${config.colorScheme.palette.base01}
base02 = #${config.colorScheme.palette.base02}
base03 = #${config.colorScheme.palette.base03}
base04 = #${config.colorScheme.palette.base04}
base05 = #${config.colorScheme.palette.base05}
base06 = #${config.colorScheme.palette.base06}
base07 = #${config.colorScheme.palette.base07}
base08 = #${config.colorScheme.palette.base08}
base09 = #${config.colorScheme.palette.base09}
base0A = #${config.colorScheme.palette.base0A}
base0B = #${config.colorScheme.palette.base0B}
base0C = #${config.colorScheme.palette.base0C}
base0D = #${config.colorScheme.palette.base0D}
base0E = #${config.colorScheme.palette.base0E}
base0F = #${config.colorScheme.palette.base0F}
'';
# - Dependencies -----------------------------
# The polybar modules use rofi
samfelag.modules.desktop.tools.rofi.enable = true;
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/menus/wifi/wifi.sh";
};
samfelag.modules.desktop.wm.i3.extraStartup = lib.mkIf i3Cfg.enable [
{ command = "systemctl --user restart polybar"; always = true; notification = false; }
{ command = "feh --bg-fill -B \"#${config.colorScheme.palette.base00}\" -z --no-fehbg ${cfg.wallpaper}"; always = true; notification = false; }
];
# - Services ---------------------------------
hm.systemd.user.services.polybar = {
Unit = {
Description = "Polybar status bar";
PartOf = [ "tray.target" ];
X-Restart-Triggers = [ "${paths.config}" ];
};
Service = {
Type = "forking";
PassEnvironment = "PATH";
ExecStart =
let scriptPkg = pkgs.writeShellScriptBin "polybar-start" script;
in "${scriptPkg}/bin/polybar-start";
Restart = "on-failure";
};
Install = { WantedBy = [ "tray.target" ]; };
};
};
}

View File

@@ -0,0 +1,55 @@
{ config, lib, pkgs, inputs, ... }:
let
cfg = config.samfelag.modules.desktop.tools.rofi;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
i3Cfg = config.samfelag.modules.desktop.wm.i3;
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
in
{
options.samfelag.modules.desktop.tools.rofi = {
enable = lib.mkEnableOption "rofi";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs;
if hyprCfg.enable then [
rofi-wayland
] else [
rofi
];
hm.xdg.configFile."rofi/menus".source = ../../../config/rofi/menus;
hm.xdg.configFile."rofi/nix.png".source = nix-colors-lib.nixWallpaperFromScheme {
scheme = config.colorScheme;
width = 600;
height = 600;
logoScale = 2.0;
};
# Themeing ---------------------------------
hm.xdg.configFile."rofi/theme.rasi".text = ''
* {
font: "Iosevka Nerd Font 10";
background: #${config.colorScheme.palette.base00};
background-alt: #${config.colorScheme.palette.base02};
foreground: #${config.colorScheme.palette.base05};
selected: #${config.colorScheme.palette.base03};
active: #${config.colorScheme.palette.base07};
urgent: #${config.colorScheme.palette.base06};
}
'';
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod}, SPACE, exec, $HOME/.config/rofi/menus/launcher/launcher.sh"
"${hyprCfg.mod}, END, exec, $HOME/.config/rofi/menus/powermenu/powermenu.sh"
"${hyprCfg.mod} SHIFT, W, exec, $HOME/.config/rofi/menus/wifi/wifi.sh"
];
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+space" = "exec $HOME/.config/rofi/menus/launcher/launcher.sh";
"${i3Cfg.mod}+End" = "exec $HOME/.config/rofi/menus/powermenu/powermenu.sh";
"${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/menus/wifi/wifi.sh";
};
};
}