.
This commit is contained in:
parent
0e1b0a36d1
commit
2ec7c74542
4 changed files with 211 additions and 21 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
148
modules/desktop/terminal/alacrity.nix
Normal file
148
modules/desktop/terminal/alacrity.nix
Normal 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}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
30
modules/desktop/terminal/default.nix
Normal file
30
modules/desktop/terminal/default.nix
Normal 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];
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue