working on fixing my build
This commit is contained in:
parent
d5e7b0dfbe
commit
b893fbf7ed
5 changed files with 170 additions and 16 deletions
|
@ -1,7 +1,9 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
# full_name = "WOOOP WOOOP";
|
user = {
|
||||||
# is_trusted = false;
|
full_name = "Chris Kruining";
|
||||||
|
is_trusted = true;
|
||||||
|
};
|
||||||
|
|
||||||
themes = {
|
themes = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -16,7 +18,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
desktop = {
|
desktop = {
|
||||||
plasma.enable = true;
|
plasma = {
|
||||||
|
enable = true;
|
||||||
|
autoLogin = true;
|
||||||
|
};
|
||||||
|
|
||||||
applications = {
|
applications = {
|
||||||
communication.enable = true;
|
communication.enable = true;
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
# full_name = "Chris Kruining";
|
user = {
|
||||||
# is_trusted = true;
|
full_name = "Chris Kruining";
|
||||||
|
is_trusted = true;
|
||||||
|
};
|
||||||
|
|
||||||
themes = {
|
themes = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "everforest";
|
theme = "everforest";
|
||||||
|
@ -15,7 +18,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
desktop = {
|
desktop = {
|
||||||
plasma.enable = true;
|
plasma = {
|
||||||
|
enable = true;
|
||||||
|
autoLogin = true;
|
||||||
|
};
|
||||||
|
|
||||||
applications = {
|
applications = {
|
||||||
communication.enable = true;
|
communication.enable = true;
|
||||||
|
@ -29,9 +35,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
editors = {
|
editors = {
|
||||||
default = "vscodium";
|
default = "zed";
|
||||||
vscodium.enable = true;
|
vscodium.enable = true;
|
||||||
# zed.enable = true;
|
zed.enable = true;
|
||||||
nvim.enable = true;
|
nvim.enable = true;
|
||||||
nano.enable = true;
|
nano.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,16 +6,10 @@
|
||||||
in rec
|
in rec
|
||||||
{
|
{
|
||||||
mkSysUser = path: let
|
mkSysUser = path: let
|
||||||
user = {
|
|
||||||
full_name = "TODO";
|
|
||||||
is_trusted = true;
|
|
||||||
};
|
|
||||||
name = removeSuffix ".nix" (baseNameOf path);
|
name = removeSuffix ".nix" (baseNameOf path);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit name;
|
inherit name;
|
||||||
description = user.full_name;
|
|
||||||
extraGroups = (user.groups or []) ++ (if user.is_trusted then [ "wheel" ] else []);
|
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
initialPassword = "kaas";
|
initialPassword = "kaas";
|
||||||
home = "/home/${name}";
|
home = "/home/${name}";
|
||||||
|
|
|
@ -47,14 +47,122 @@ in
|
||||||
home-manager.users.${user}.programs = {
|
home-manager.users.${user}.programs = {
|
||||||
plasma = {
|
plasma = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
workspace = {
|
||||||
|
lookAndFeel = "org.kde.breezedark.desktop";
|
||||||
|
wallpaper = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers/Patak/contents/images/1080x1920.png";
|
||||||
|
};
|
||||||
|
|
||||||
|
hotkeys.commands."spectable" = {
|
||||||
|
name = "Launch Spectable";
|
||||||
|
key = "Meta+Shift+S";
|
||||||
|
command = "spectable captureRectangularRegion";
|
||||||
|
};
|
||||||
|
|
||||||
kwin = {
|
kwin = {
|
||||||
edgeBarrier = 0;
|
edgeBarrier = 0;
|
||||||
cornerBarrier = false;
|
cornerBarrier = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
spectacle.shortcuts = {
|
panels = [
|
||||||
captureRectangularRegion = "Meta+Shift+S";
|
# Windows-like panel at the bottom
|
||||||
|
{
|
||||||
|
location = "bottom";
|
||||||
|
widgets = [
|
||||||
|
# We can configure the widgets by adding the name and config
|
||||||
|
# attributes. For example to add the the kickoff widget and set the
|
||||||
|
# icon to "nix-snowflake-white" use the below configuration. This will
|
||||||
|
# add the "icon" key to the "General" group for the widget in
|
||||||
|
# ~/.config/plasma-org.kde.plasma.desktop-appletsrc.
|
||||||
|
{
|
||||||
|
name = "org.kde.plasma.kickoff";
|
||||||
|
config = {
|
||||||
|
General = {
|
||||||
|
icon = "nix-snowflake-white";
|
||||||
|
alphaSort = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# Or you can configure the widgets by adding the widget-specific options for it.
|
||||||
|
# See modules/widgets for supported widgets and options for these widgets.
|
||||||
|
# For example:
|
||||||
|
{
|
||||||
|
kickoff = {
|
||||||
|
sortAlphabetically = true;
|
||||||
|
icon = "nix-snowflake-white";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# Adding configuration to the widgets can also for example be used to
|
||||||
|
# pin apps to the task-manager, which this example illustrates by
|
||||||
|
# pinning dolphin and konsole to the task-manager by default with widget-specific options.
|
||||||
|
{
|
||||||
|
iconTasks = {
|
||||||
|
launchers = [
|
||||||
|
"applications:org.kde.dolphin.desktop"
|
||||||
|
"applications:org.kde.konsole.desktop"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# Or you can do it manually, for example:
|
||||||
|
{
|
||||||
|
name = "org.kde.plasma.icontasks";
|
||||||
|
config = {
|
||||||
|
General = {
|
||||||
|
launchers = [
|
||||||
|
"applications:org.kde.dolphin.desktop"
|
||||||
|
"applications:org.kde.konsole.desktop"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# If no configuration is needed, specifying only the name of the
|
||||||
|
# widget will add them with the default configuration.
|
||||||
|
"org.kde.plasma.marginsseparator"
|
||||||
|
# If you need configuration for your widget, instead of specifying the
|
||||||
|
# the keys and values directly using the config attribute as shown
|
||||||
|
# above, plasma-manager also provides some higher-level interfaces for
|
||||||
|
# configuring the widgets. See modules/widgets for supported widgets
|
||||||
|
# and options for these widgets. The widgets below shows two examples
|
||||||
|
# of usage, one where we add a digital clock, setting 12h time and
|
||||||
|
# first day of the week to Sunday and another adding a systray with
|
||||||
|
# some modifications in which entries to show.
|
||||||
|
{
|
||||||
|
digitalClock = {
|
||||||
|
calendar.firstDayOfWeek = "sunday";
|
||||||
|
time.format = "12h";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
systemTray.items = {
|
||||||
|
# We explicitly show bluetooth and battery
|
||||||
|
shown = [
|
||||||
|
"org.kde.plasma.battery"
|
||||||
|
"org.kde.plasma.bluetooth"
|
||||||
|
];
|
||||||
|
# And explicitly hide networkmanagement and volume
|
||||||
|
hidden = [
|
||||||
|
"org.kde.plasma.networkmanagement"
|
||||||
|
"org.kde.plasma.volume"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
configFile = {
|
||||||
|
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
||||||
|
kwinrc."org.kde.kdecoration2".ButtonsOnLeft = "SF";
|
||||||
|
kwinrc.Desktops.Number = {
|
||||||
|
value = 1;
|
||||||
|
immutable = true;
|
||||||
|
};
|
||||||
|
kscreenlockerrc = {
|
||||||
|
Greeter.WallpaperPlugin = "org.kde.potd";
|
||||||
|
# To use nested groups use / as a separator. In the below example,
|
||||||
|
# Provider will be added to [Greeter][Wallpaper][org.kde.potd][General].
|
||||||
|
"Greeter/Wallpaper/org.kde.potd/General".Provider = "bing";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
41
modules/home/user.nix
Normal file
41
modules/home/user.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ options, config, lib, pkgs, user, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.attrsets) attrValues;
|
||||||
|
inherit (lib.modules) mkIf mkMerge;
|
||||||
|
|
||||||
|
cfg = config.modules.${user}.user;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.${user}.user = let
|
||||||
|
inherit (lib.options) mkOption mkEnableOption;
|
||||||
|
inherit (lib.types) nullOr enum;
|
||||||
|
in with lib.types; {
|
||||||
|
full_name = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
default = null;
|
||||||
|
example = "John Doe";
|
||||||
|
description = "Full name of the user, this is used as the kde plasma display name for example";
|
||||||
|
};
|
||||||
|
|
||||||
|
is_trusted = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "this is used to grant sudo priviledges for the user";
|
||||||
|
};
|
||||||
|
|
||||||
|
groups = mkOption {
|
||||||
|
type = listOf str;
|
||||||
|
default = [];
|
||||||
|
example = [ "some" "group" "names" ];
|
||||||
|
description = "groups to add the user to";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
users.users.${user} = {
|
||||||
|
description = (cfg.full_name or user);
|
||||||
|
extraGroups = cfg.groups ++ (if cfg.is_trusted then [ "wheel" ] else []);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue