Desktop environment refactor
This commit is contained in:
56
modules/desktop/tools/eww.nix
Normal file
56
modules/desktop/tools/eww.nix
Normal 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;
|
||||
|
||||
};
|
||||
}
|
||||
92
modules/desktop/tools/polybar.nix
Normal file
92
modules/desktop/tools/polybar.nix
Normal 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" ]; };
|
||||
};
|
||||
};
|
||||
}
|
||||
55
modules/desktop/tools/rofi.nix
Normal file
55
modules/desktop/tools/rofi.nix
Normal 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";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user