This commit is contained in:
Chris Kruining 2024-07-23 19:52:40 +02:00
parent 0e1b0a36d1
commit 2ec7c74542
4 changed files with 211 additions and 21 deletions

View file

@ -11,6 +11,8 @@ in
inputs.stylix.nixosModules.stylix
(mkAliasOptionModule ["hm"] ["home-manager" "users" config.user.name])
(mkAliasOptionModule ["home"] ["hm" "home"])
(mkAliasOptionModule ["create" "configFile"] ["hm" "xdg" "configFile"])
(mkAliasOptionModule ["create" "dataFile"] ["hm" "xdg" "dataFile"])
]
++ (mapModulesRec' (toString ./modules) import);

View file

@ -1,28 +1,38 @@
{ pkgs, ... }:
{ config, options, lib, pkgs, ... }:
let
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf;
in
{
services = {
xserver.enable = true;
options.modules.desktop.plasma = let
inherit (lib.options) mkEnableOption;
in { enable = mkEnableOption "plasma 6"; };
displayManager = {
sddm = {
enable = true;
wayland.enable = true;
};
autoLogin = {
enable = true;
user = "chris";
config = mkIf config.modules.desktop.plasma.enable {
services = {
xserver.enable = true;
displayManager = {
sddm = {
enable = true;
wayland.enable = true;
};
autoLogin = {
enable = true;
user = "chris";
};
};
desktopManager.plasma6.enable = true;
};
desktopManager.plasma6.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.plasma6.excludePackages = with pkgs.kdePackages; [
konsole
];
# should enable theme integration with gtk apps (i.e. firefox, thunderbird)
programs.dconf.enable = true;
};
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.plasma6.excludePackages = with pkgs.kdePackages; [
konsole
];
# should enable theme integration with gtk apps (i.e. firefox, thunderbird)
programs.dconf.enable = true;
}

View file

@ -0,0 +1,148 @@
{
config,
options,
lib,
pkgs,
...
}: let
inherit (builtins) toString;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
active = config.modules.themes.active;
in {
options.modules.desktop.terminal.alacritty = let
inherit (lib.options) mkEnableOption;
in {enable = mkEnableOption "OpenGL terminal emulator";};
config = mkIf config.modules.desktop.terminal.alacritty.enable {
modules.shell.toolset.tmux.enable = true;
hm.programs.alacritty = {
enable = true;
settings = mkMerge [
{
env = {
TERM = "xterm-256color";
WINIT_X11_SCALE_FACTOR = "1.0";
};
window.dynamic_title = true;
scrolling = {
history = 5000;
multiplier = 3;
};
selection = {
semantic_escape_chars = '',`|:"' ()[]{}<>'';
save_to_clipboard = false;
};
live_config_reload = true;
shell = {
program = "${getExe pkgs.zsh}";
args = ["-l" "-c" "tmux new || tmux"];
};
}
(mkIf (active != null) {
import = ["~/.config/alacritty/config/${active}.toml"];
})
];
};
create.configFile = mkIf (active != null) {
alacritty-conf = {
target = "alacritty/config/${active}.toml";
source = let
inherit (config.modules.themes.font) mono sans;
inherit (config.modules.themes.colors.main) bright normal types;
tomlFormat = pkgs.formats.toml {};
in
tomlFormat.generate "alacritty-theme" {
font = {
builtin_box_drawing = true;
size = mono.size;
normal = {
family = "${mono.family}";
style = "${sans.weight}";
};
italic = {
family = "${mono.family}";
style = "${sans.weight} Italic";
};
bold = {
family = "${mono.family}";
style = "${mono.weight}";
};
bold_italic = {
family = "${mono.family}";
style = "${mono.weight} Italic";
};
offset = {
x = 0;
y = 0;
};
glyph_offset = {
x = 0;
y = 0;
};
};
colors = {
primary = {
foreground = "${types.fg}";
background = "${types.bg}";
};
cursor = {
text = "${types.bg}";
cursor = "${normal.yellow}";
};
vi_mode_cursor = {
text = "${types.bg}";
cursor = "${normal.blue}";
};
selection = {
text = "${types.bg}";
background = "${types.highlight}";
};
normal = {
black = "${normal.black}";
red = "${normal.red}";
green = "${normal.green}";
yellow = "${normal.yellow}";
blue = "${normal.blue}";
magenta = "${normal.magenta}";
cyan = "${normal.cyan}";
white = "${normal.white}";
};
bright = {
black = "${bright.black}";
red = "${bright.red}";
green = "${bright.green}";
yellow = "${bright.yellow}";
blue = "${bright.blue}";
magenta = "${bright.magenta}";
cyan = "${bright.cyan}";
white = "${bright.white}";
};
};
};
};
};
};
}

View file

@ -0,0 +1,30 @@
{ config, options, lib, pkgs, ... }:
let
inherit (lib.modules) mkDefault mkIf mkMerge;
cfg = config.modules.desktop.terminal;
in {
options.modules.desktop.terminal = let
inherit (lib.options) mkOption;
inherit (lib.types) str;
in {
default = mkOption {
type = str;
default = "alacrity";
description = "Default terminal";
example = "alacrity";
};
};
config = mkMerge [
{
home.sessionVariables.TERMINAL = cfg.default;
services.xserver.desktopManager.xterm.enable = mkDefault (cfg.default == "xterm");
}
(mkIf (config.modules.desktop.type == "x11") {
services.xserver.excludePackages =
mkIf (cfg.default != "xterm") [pkgs.xterm];
})
];
}