you know the drill at this point
This commit is contained in:
parent
f1c89a0ec1
commit
38dc8327d2
27 changed files with 227 additions and 555 deletions
|
@ -1,286 +0,0 @@
|
||||||
{ inputs, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.plasma;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.plasma = let
|
|
||||||
inherit (lib.options) mkEnableOption mkOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "plasma 6";
|
|
||||||
|
|
||||||
autoLogin = mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
description = "Enable plasma's auto login feature.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs.kdePackages; [
|
|
||||||
kcoreaddons
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [ konsole kate ghostwriter oxygen ];
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
|
|
||||||
services = {
|
|
||||||
xserver.enable = true;
|
|
||||||
|
|
||||||
desktopManager.plasma6.enable = true;
|
|
||||||
|
|
||||||
displayManager = {
|
|
||||||
defaultSession = "plasma";
|
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
};
|
|
||||||
autoLogin = mkIf cfg.autoLogin {
|
|
||||||
enable = true;
|
|
||||||
inherit user;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# should enable theme integration with gtk apps (i.e. firefox, thunderbird)
|
|
||||||
programs.dconf.enable = true;
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
sharedModules = [
|
|
||||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
|
||||||
];
|
|
||||||
|
|
||||||
users.${user}.programs.plasma = {
|
|
||||||
enable = true;
|
|
||||||
immutableByDefault = true;
|
|
||||||
windows.allowWindowsToRememberPositions = true;
|
|
||||||
|
|
||||||
session = {
|
|
||||||
general.askForConfirmationOnLogout = false;
|
|
||||||
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
|
||||||
};
|
|
||||||
|
|
||||||
workspace = {
|
|
||||||
clickItemTo = "select";
|
|
||||||
colorScheme = "EverforestDark";
|
|
||||||
wallpaper = config.stylix.image;
|
|
||||||
};
|
|
||||||
|
|
||||||
spectacle.shortcuts = {
|
|
||||||
captureRectangularRegion = "Meta+Shift+S";
|
|
||||||
};
|
|
||||||
|
|
||||||
kwin = {
|
|
||||||
edgeBarrier = 0;
|
|
||||||
cornerBarrier = false;
|
|
||||||
|
|
||||||
effects = {
|
|
||||||
translucency.enable = true;
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enable = true;
|
|
||||||
strength = 5;
|
|
||||||
noiseStrength = 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
snapHelper.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
panels = [
|
|
||||||
# Windows-like panel at the bottom
|
|
||||||
{
|
|
||||||
location = "bottom";
|
|
||||||
floating = true;
|
|
||||||
lengthMode = "fill";
|
|
||||||
height = 42;
|
|
||||||
hiding = "none";
|
|
||||||
screen = "all";
|
|
||||||
widgets = [
|
|
||||||
{
|
|
||||||
panelSpacer = {
|
|
||||||
expanding = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
kickoff = {
|
|
||||||
applicationsDisplayMode = "list";
|
|
||||||
compactDisplayStyle = false;
|
|
||||||
favoritesDisplayMode = "grid";
|
|
||||||
sortAlphabetically = true;
|
|
||||||
showButtonsFor = {
|
|
||||||
custom = [
|
|
||||||
"shutdown"
|
|
||||||
"reboot"
|
|
||||||
"logout"
|
|
||||||
"lock-screen"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
showActionButtonCaptions = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# appMenu = {
|
|
||||||
# compactView = false;
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
iconTasks = {
|
|
||||||
appearance = {
|
|
||||||
fill = false;
|
|
||||||
highlightWindows = true;
|
|
||||||
iconSpacing = "medium";
|
|
||||||
indicateAudioStreams = true;
|
|
||||||
rows = {
|
|
||||||
multirowView = "never";
|
|
||||||
maximum = null;
|
|
||||||
};
|
|
||||||
showTooltips = true;
|
|
||||||
};
|
|
||||||
behavior = {
|
|
||||||
grouping = {
|
|
||||||
clickAction = "showPresentWindowsEffect";
|
|
||||||
method = "byProgramName";
|
|
||||||
};
|
|
||||||
minimizeActiveTaskOnClick = true;
|
|
||||||
newTasksAppearOn = "right";
|
|
||||||
showTasks = {
|
|
||||||
onlyInCurrentActivity = true;
|
|
||||||
onlyInCurrentDesktop = true;
|
|
||||||
onlyMinimized = false;
|
|
||||||
onlyInCurrentScreen = false;
|
|
||||||
};
|
|
||||||
sortingMethod = "manually";
|
|
||||||
unhideOnAttentionNeeded = true;
|
|
||||||
wheel = {
|
|
||||||
ignoreMinimizedTasks = true;
|
|
||||||
switchBetweenTasks = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
launchers = [
|
|
||||||
"preferred://filemanager"
|
|
||||||
"preferred://browser"
|
|
||||||
"preferred://terminalemulator"
|
|
||||||
"preferred://email"
|
|
||||||
"applications:zededitor.desktop"
|
|
||||||
"applications:vesktop.desktop"
|
|
||||||
"applications:steam.desktop"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
panelSpacer = {
|
|
||||||
expanding = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
systemTray = {
|
|
||||||
icons = {
|
|
||||||
scaleToFit = true;
|
|
||||||
spacing = "small";
|
|
||||||
};
|
|
||||||
items = {
|
|
||||||
hidden = [
|
|
||||||
"org.kde.plasma.brightness"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
pin = false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
digitalClock = {
|
|
||||||
date = {
|
|
||||||
enable = true;
|
|
||||||
format = "shortDate";
|
|
||||||
position = "belowTime";
|
|
||||||
};
|
|
||||||
time = {
|
|
||||||
format = "24h";
|
|
||||||
showSeconds = "onlyInTooltip";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
powerdevil = {
|
|
||||||
AC = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
battery = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lowBattery = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
kscreenlocker = {
|
|
||||||
autoLock = false;
|
|
||||||
lockOnResume = false;
|
|
||||||
lockOnStartup = false;
|
|
||||||
|
|
||||||
appearance = {
|
|
||||||
alwaysShowClock = true;
|
|
||||||
showMediaControls = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
configFile = {
|
|
||||||
baloofilerc = {
|
|
||||||
|
|
||||||
};
|
|
||||||
kdeglobals = {
|
|
||||||
General = {
|
|
||||||
# enable font antialiasing
|
|
||||||
XftAntialias = true;
|
|
||||||
XftHintStyle = "hintslight";
|
|
||||||
XftSubPixel = "rgb";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
kwalletrc = {
|
|
||||||
Wallet.Enabled = false;
|
|
||||||
};
|
|
||||||
plasmarc = {
|
|
||||||
General = {
|
|
||||||
RaiseMaximumVolume = true;
|
|
||||||
VolumeStep = 2;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
kcminputrc = {
|
|
||||||
Keyboard.NumLock.value = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -20,13 +20,15 @@
|
||||||
inputs.home-manager.follows = "home-manager";
|
inputs.home-manager.follows = "home-manager";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# neovim
|
||||||
nvf.url = "github:notashelf/nvf";
|
nvf.url = "github:notashelf/nvf";
|
||||||
|
|
||||||
|
# plymouth theme
|
||||||
nixos-boot.url = "github:Melkor333/nixos-boot";
|
nixos-boot.url = "github:Melkor333/nixos-boot";
|
||||||
|
|
||||||
firefox.url = "github:nix-community/flake-firefox-nightly";
|
firefox.url = "github:nix-community/flake-firefox-nightly";
|
||||||
|
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:nix-community/stylix";
|
||||||
|
|
||||||
fenix = {
|
fenix = {
|
||||||
url = "github:nix-community/fenix";
|
url = "github:nix-community/fenix";
|
||||||
|
@ -42,12 +44,14 @@
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
|
||||||
himmelblau = {
|
himmelblau = {
|
||||||
url = "github:himmelblau-idm/himmelblau/main";
|
url = "github:himmelblau-idm/himmelblau";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# windows app utilities
|
||||||
erosanix.url = "github:emmanuelrosa/erosanix";
|
erosanix.url = "github:emmanuelrosa/erosanix";
|
||||||
|
|
||||||
|
# Steam deck stuff
|
||||||
jovian = {
|
jovian = {
|
||||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
@ -5,6 +5,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
sneeuwvlok = {
|
sneeuwvlok = {
|
||||||
|
shell = {
|
||||||
|
default = "zsh";
|
||||||
|
corePkgs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
themes = {
|
themes = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "everforest";
|
theme = "everforest";
|
||||||
|
|
|
@ -17,6 +17,9 @@ in
|
||||||
immutableByDefault = true;
|
immutableByDefault = true;
|
||||||
windows.allowWindowsToRememberPositions = true;
|
windows.allowWindowsToRememberPositions = true;
|
||||||
|
|
||||||
|
panels = import ./panels.nix;
|
||||||
|
powerdevil = import ./power.nix;
|
||||||
|
|
||||||
session = {
|
session = {
|
||||||
general.askForConfirmationOnLogout = false;
|
general.askForConfirmationOnLogout = false;
|
||||||
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
||||||
|
|
|
@ -1,124 +1,109 @@
|
||||||
{ config, lib, namespace, osConfig ? {}, ... }:
|
[
|
||||||
let
|
{
|
||||||
inherit (lib) mkIf;
|
location = "bottom";
|
||||||
|
floating = true;
|
||||||
cfg = config.${namespace}.desktop.plasma;
|
lengthMode = "fill";
|
||||||
osCfg = osConfig.${namespace}.desktop.plasma or { enable = false; };
|
height = 42;
|
||||||
in
|
hiding = "none";
|
||||||
{
|
screen = "all";
|
||||||
options.${namespace}.desktop.plasma = {
|
widgets = [
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf osCfg.enable {
|
|
||||||
programs.plasma.panels = [
|
|
||||||
{
|
{
|
||||||
location = "bottom";
|
panelSpacer = {
|
||||||
floating = true;
|
expanding = true;
|
||||||
lengthMode = "fill";
|
};
|
||||||
height = 42;
|
}
|
||||||
hiding = "none";
|
{
|
||||||
screen = "all";
|
kickoff = {
|
||||||
widgets = [
|
applicationsDisplayMode = "list";
|
||||||
{
|
compactDisplayStyle = false;
|
||||||
panelSpacer = {
|
favoritesDisplayMode = "grid";
|
||||||
expanding = true;
|
sortAlphabetically = true;
|
||||||
|
showButtonsFor = {
|
||||||
|
custom = [
|
||||||
|
"shutdown"
|
||||||
|
"reboot"
|
||||||
|
"logout"
|
||||||
|
"lock-screen"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
showActionButtonCaptions = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
iconTasks = {
|
||||||
|
appearance = {
|
||||||
|
fill = false;
|
||||||
|
highlightWindows = true;
|
||||||
|
iconSpacing = "medium";
|
||||||
|
indicateAudioStreams = true;
|
||||||
|
rows = {
|
||||||
|
multirowView = "never";
|
||||||
|
maximum = null;
|
||||||
};
|
};
|
||||||
}
|
showTooltips = true;
|
||||||
{
|
};
|
||||||
kickoff = {
|
behavior = {
|
||||||
applicationsDisplayMode = "list";
|
grouping = {
|
||||||
compactDisplayStyle = false;
|
clickAction = "showPresentWindowsEffect";
|
||||||
favoritesDisplayMode = "grid";
|
method = "byProgramName";
|
||||||
sortAlphabetically = true;
|
|
||||||
showButtonsFor = {
|
|
||||||
custom = [
|
|
||||||
"shutdown"
|
|
||||||
"reboot"
|
|
||||||
"logout"
|
|
||||||
"lock-screen"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
showActionButtonCaptions = true;
|
|
||||||
};
|
};
|
||||||
}
|
minimizeActiveTaskOnClick = true;
|
||||||
{
|
newTasksAppearOn = "right";
|
||||||
iconTasks = {
|
showTasks = {
|
||||||
appearance = {
|
onlyInCurrentActivity = true;
|
||||||
fill = false;
|
onlyInCurrentDesktop = true;
|
||||||
highlightWindows = true;
|
onlyMinimized = false;
|
||||||
iconSpacing = "medium";
|
onlyInCurrentScreen = false;
|
||||||
indicateAudioStreams = true;
|
|
||||||
rows = {
|
|
||||||
multirowView = "never";
|
|
||||||
maximum = null;
|
|
||||||
};
|
|
||||||
showTooltips = true;
|
|
||||||
};
|
|
||||||
behavior = {
|
|
||||||
grouping = {
|
|
||||||
clickAction = "showPresentWindowsEffect";
|
|
||||||
method = "byProgramName";
|
|
||||||
};
|
|
||||||
minimizeActiveTaskOnClick = true;
|
|
||||||
newTasksAppearOn = "right";
|
|
||||||
showTasks = {
|
|
||||||
onlyInCurrentActivity = true;
|
|
||||||
onlyInCurrentDesktop = true;
|
|
||||||
onlyMinimized = false;
|
|
||||||
onlyInCurrentScreen = false;
|
|
||||||
};
|
|
||||||
sortingMethod = "manually";
|
|
||||||
unhideOnAttentionNeeded = true;
|
|
||||||
wheel = {
|
|
||||||
ignoreMinimizedTasks = true;
|
|
||||||
switchBetweenTasks = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
launchers = [
|
|
||||||
"preferred://filemanager"
|
|
||||||
"preferred://browser"
|
|
||||||
"preferred://terminalemulator"
|
|
||||||
"preferred://email"
|
|
||||||
"applications:vesktop.desktop"
|
|
||||||
"applications:steam.desktop"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
sortingMethod = "manually";
|
||||||
{
|
unhideOnAttentionNeeded = true;
|
||||||
panelSpacer = {
|
wheel = {
|
||||||
expanding = true;
|
ignoreMinimizedTasks = true;
|
||||||
|
switchBetweenTasks = true;
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
launchers = [
|
||||||
systemTray = {
|
"preferred://filemanager"
|
||||||
icons = {
|
"preferred://browser"
|
||||||
scaleToFit = true;
|
"preferred://terminalemulator"
|
||||||
spacing = "small";
|
"preferred://email"
|
||||||
};
|
"applications:vesktop.desktop"
|
||||||
items = {
|
"applications:steam.desktop"
|
||||||
hidden = [
|
];
|
||||||
"org.kde.plasma.brightness"
|
};
|
||||||
];
|
}
|
||||||
};
|
{
|
||||||
pin = false;
|
panelSpacer = {
|
||||||
};
|
expanding = true;
|
||||||
}
|
};
|
||||||
{
|
}
|
||||||
digitalClock = {
|
{
|
||||||
date = {
|
systemTray = {
|
||||||
enable = true;
|
icons = {
|
||||||
format = "shortDate";
|
scaleToFit = true;
|
||||||
position = "belowTime";
|
spacing = "small";
|
||||||
};
|
};
|
||||||
time = {
|
items = {
|
||||||
format = "24h";
|
hidden = [
|
||||||
showSeconds = "onlyInTooltip";
|
"org.kde.plasma.brightness"
|
||||||
};
|
];
|
||||||
};
|
};
|
||||||
}
|
pin = false;
|
||||||
];
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
digitalClock = {
|
||||||
|
date = {
|
||||||
|
enable = true;
|
||||||
|
format = "shortDate";
|
||||||
|
position = "belowTime";
|
||||||
|
};
|
||||||
|
time = {
|
||||||
|
format = "24h";
|
||||||
|
showSeconds = "onlyInTooltip";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
}
|
||||||
}
|
]
|
|
@ -1,52 +1,37 @@
|
||||||
{ config, lib, namespace, osConfig ? {}, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
|
|
||||||
cfg = config.${namespace}.desktop.plasma;
|
|
||||||
osCfg = osConfig.${namespace}.desktop.plasma or { enable = false; };
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.${namespace}.desktop.plasma = {
|
AC = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf osCfg.enable {
|
battery = {
|
||||||
programs.plasma.powerdevil = {
|
powerButtonAction = "shutDown";
|
||||||
AC = {
|
whenLaptopLidClosed = "doNothing";
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
autoSuspend.action = "nothing";
|
||||||
dimDisplay.enable = false;
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
turnOffDisplay = {
|
turnOffDisplay = {
|
||||||
idleTimeout = "never";
|
idleTimeout = "never";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
battery = {
|
lowBattery = {
|
||||||
powerButtonAction = "shutDown";
|
powerButtonAction = "shutDown";
|
||||||
whenLaptopLidClosed = "doNothing";
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
autoSuspend.action = "nothing";
|
||||||
dimDisplay.enable = false;
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
turnOffDisplay = {
|
turnOffDisplay = {
|
||||||
idleTimeout = "never";
|
idleTimeout = "never";
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lowBattery = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, lib, pkgs, namespace, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) attrValues mkIf mkMerge mkOption mkEnableOption;
|
inherit (lib) attrValues mkIf mkMerge mkOption mkEnableOption mkDefault;
|
||||||
inherit (lib.types) nullOr enum;
|
inherit (lib.types) nullOr enum;
|
||||||
|
|
||||||
cfg = config.${namespace}.shell;
|
cfg = config.${namespace}.shell;
|
||||||
|
@ -17,12 +17,13 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf (cfg.default != null) {
|
# (if (cfg.default != null) then {
|
||||||
users.defaultUserShell = pkgs."${cfg.default}";
|
# shell = pkgs."${cfg.default}";
|
||||||
})
|
# } else {})
|
||||||
|
|
||||||
(mkIf cfg.corePkgs.enable {
|
|
||||||
${namespace}.shell.toolset = {
|
(mkIf (cfg.corePkgs.enable) {
|
||||||
|
${namespace}.shell.toolset = mkDefault {
|
||||||
bat.enable = true;
|
bat.enable = true;
|
||||||
btop.enable = true;
|
btop.enable = true;
|
||||||
eza.enable = true;
|
eza.enable = true;
|
||||||
|
@ -33,7 +34,9 @@ in
|
||||||
yazi.enable = true;
|
yazi.enable = true;
|
||||||
zoxide.enable = true;
|
zoxide.enable = true;
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
({
|
||||||
home.packages = with pkgs; [ any-nix-shell pwgen yt-dlp ripdrag fd (ripgrep.override {withPCRE2 = true;}) ];
|
home.packages = with pkgs; [ any-nix-shell pwgen yt-dlp ripdrag fd (ripgrep.override {withPCRE2 = true;}) ];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
inherit (lib.strings) concatStringsSep;
|
inherit (lib.strings) concatStringsSep;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkEnableOption mkIf;
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.sessionVariables.GITHUB_TOKEN = "$(cat /run/agenix/tokenGH)";
|
home.sessionVariables.GITHUB_TOKEN = "$(cat /run/agenix/tokenGH)";
|
||||||
|
|
||||||
home.packages = with pkgs; [ lazygit lazyjj jujutsu ];
|
home.packages = with pkgs; [ lazygit lazyjj jujutsu ];
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
@ -10,27 +10,27 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
user.package = with pkgs; [ gnupg ];
|
# home.packages = with pkgs; [ gnupg ];
|
||||||
|
|
||||||
environment.variables.GNUPGHOME = "$XDG_CONFIG_HOME/gnupg";
|
# home.sessionVariables.GNUPGHOME = "$XDG_CONFIG_HOME/gnupg";
|
||||||
|
|
||||||
programs.gnupg = {
|
# programs.gnupg = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
|
|
||||||
agent = {
|
# agent = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
enableSSHSupport = true;
|
# enableSSHSupport = true;
|
||||||
pinentryPackage = pkgs.pinentry-gnome3;
|
# pinentryPackage = pkgs.pinentry-gnome3;
|
||||||
|
|
||||||
settings = let
|
# settings = let
|
||||||
cacheTTL = 86400;
|
# cacheTTL = 86400;
|
||||||
in {
|
# in {
|
||||||
default-cache-ttl = cacheTTL;
|
# default-cache-ttl = cacheTTL;
|
||||||
default-cache-ttl-ssh = cacheTTL;
|
# default-cache-ttl-ssh = cacheTTL;
|
||||||
max-cache-ttl = cacheTTL;
|
# max-cache-ttl = cacheTTL;
|
||||||
max-cache-ttl-ssh = cacheTTL;
|
# max-cache-ttl-ssh = cacheTTL;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib.${namespace}) mkIf;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
|
|
||||||
cfg = config.${namespace}.shell.toolset.yazi;
|
cfg = config.${namespace}.shell.toolset.yazi;
|
||||||
in
|
in
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, lib, pkgs, namespace, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
cfg = config.${namespace}.shell.zsh;
|
cfg = config.${namespace}.shell.zsh;
|
||||||
in
|
in
|
||||||
|
@ -10,13 +10,9 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
${namespace}.shell = {
|
# ${namespace}.shell = {
|
||||||
zsh.enable = true;
|
# zsh.enable = true;
|
||||||
corePkgs.enable = true;
|
# };
|
||||||
};
|
|
||||||
|
|
||||||
# Enable completion for sys-packages:
|
|
||||||
environment.pathsToLink = ["/share/zsh"];
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
starship.enableZshIntegration = true;
|
starship.enableZshIntegration = true;
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, namespace, ... }:
|
{ config, lib, pkgs, namespace, osConfig ? {}, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkDefault;
|
inherit (lib) mkIf mkDefault;
|
||||||
inherit (lib.options) mkOption mkEnableOption;
|
inherit (lib.options) mkOption mkEnableOption;
|
||||||
|
@ -23,9 +23,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf (cfg.enable && osConfig.${namespace}.theming.enable) {
|
||||||
${namespace}.theming.enable = true;
|
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
||||||
image = ./${cfg.theme}.jpg;
|
image = ./${cfg.theme}.jpg;
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
{ config, lib, namespace, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf mkDefault mkOption mkMerge;
|
|
||||||
inherit (lib.types) nullOr enum;
|
|
||||||
|
|
||||||
cfg = config.${namespace};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.${namespace} = {
|
|
||||||
preset = mkOption {
|
|
||||||
type = nullOr (enum [ "server" "desktop" ]);
|
|
||||||
default = null;
|
|
||||||
example = "desktop";
|
|
||||||
description = "Which defaults profile to start with";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
(mkIf (cfg.preset == "desktop") {
|
|
||||||
${namespace} = mkDefault {
|
|
||||||
hardware.has = {
|
|
||||||
audio = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
quiet = true;
|
|
||||||
animated = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop.use = "plasma";
|
|
||||||
theming.enable = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf (cfg.preset == "server") {
|
|
||||||
${namespace} = mkDefault {
|
|
||||||
services = {
|
|
||||||
networking.ssh.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
2
modules/nixos/shells/default.nix
Normal file
2
modules/nixos/shells/default.nix
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{ ... }:
|
||||||
|
{}
|
|
@ -10,5 +10,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
# Enable completion for sys-packages:
|
||||||
|
environment.pathsToLink = ["/share/zsh"];
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -10,7 +10,9 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
options.${namespace}.theming = {
|
options.${namespace}.theming = {
|
||||||
enable = mkEnableOption "enable theming";
|
enable = mkEnableOption "enable theming" // {
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -8,12 +8,19 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
sneeuwvlok = {
|
sneeuwvlok = {
|
||||||
preset = "desktop";
|
|
||||||
|
|
||||||
hardware.has = {
|
hardware.has = {
|
||||||
gpu.amd = true;
|
gpu.amd = true;
|
||||||
bluetooth = true;
|
bluetooth = true;
|
||||||
|
audio = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
quiet = true;
|
||||||
|
animated = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
desktop.use = "plasma";
|
||||||
|
theming.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
|
@ -8,8 +8,19 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
sneeuwvlok = {
|
sneeuwvlok = {
|
||||||
preset = "desktop";
|
hardware.has = {
|
||||||
|
gpu.amd = true;
|
||||||
|
bluetooth = true;
|
||||||
|
audio = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
quiet = true;
|
||||||
|
animated = true;
|
||||||
|
};
|
||||||
|
|
||||||
desktop.use = "gamescope";
|
desktop.use = "gamescope";
|
||||||
|
theming.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
|
@ -2,18 +2,17 @@
|
||||||
let
|
let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./disks.nix
|
./disks.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
sneeuwvlok = {
|
sneeuwvlok = {
|
||||||
preset = "server";
|
services = {
|
||||||
|
networking.ssh.enable = true;
|
||||||
services = {
|
media.enable = true;
|
||||||
media.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue