mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
refactor: finish initial move to modules-only [WIP]
This commit is contained in:
parent
e7e59715d8
commit
27679d38fd
34 changed files with 1934 additions and 1617 deletions
|
|
@ -1,12 +1,15 @@
|
|||
{ lib, nix-secrets, ... }:
|
||||
{ lib, config, nix-secrets, ... }:
|
||||
let
|
||||
secretsDirectory = builtins.toString nix-secrets;
|
||||
in
|
||||
{
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
provider = "manual";
|
||||
latitude = lib.swarselsystems.getSecret "${secretsDirectory}/home/gammastep-latitude";
|
||||
longitude = lib.swarselsystems.getSecret "${secretsDirectory}/home/gammastep-longitude";
|
||||
options.swarselsystems.modules.gammastep = lib.mkEnableOption "gammastep settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.gammastep {
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
provider = "manual";
|
||||
latitude = lib.swarselsystems.getSecret "${secretsDirectory}/home/gammastep-latitude";
|
||||
longitude = lib.swarselsystems.getSecret "${secretsDirectory}/home/gammastep-longitude";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,39 +1,42 @@
|
|||
{ self, config, pkgs, ... }:
|
||||
{ self, lib, config, pkgs, ... }:
|
||||
let
|
||||
inherit (config.swarselsystems) mainUser homeDir;
|
||||
in
|
||||
{
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
enableScDaemon = true;
|
||||
enableSshSupport = true;
|
||||
enableExtraSocket = true;
|
||||
pinentryPackage = pkgs.pinentry.gtk2;
|
||||
defaultCacheTtl = 600;
|
||||
maxCacheTtl = 7200;
|
||||
extraConfig = ''
|
||||
allow-loopback-pinentry
|
||||
allow-emacs-pinentry
|
||||
'';
|
||||
sshKeys = [
|
||||
"4BE7925262289B476DBBC17B76FD3810215AE097"
|
||||
options.swarselsystems.modules.gpgagent = lib.mkEnableOption "gpg agent settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.gpgagent {
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
enableScDaemon = true;
|
||||
enableSshSupport = true;
|
||||
enableExtraSocket = true;
|
||||
pinentryPackage = pkgs.pinentry.gtk2;
|
||||
defaultCacheTtl = 600;
|
||||
maxCacheTtl = 7200;
|
||||
extraConfig = ''
|
||||
allow-loopback-pinentry
|
||||
allow-emacs-pinentry
|
||||
'';
|
||||
sshKeys = [
|
||||
"4BE7925262289B476DBBC17B76FD3810215AE097"
|
||||
];
|
||||
};
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
publicKeys = [
|
||||
{
|
||||
source = "${self}/secrets/keys/gpg/gpg-public-key-0x76FD3810215AE097.asc";
|
||||
trust = 5;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# assure correct permissions
|
||||
systemd.user.tmpfiles.rules = [
|
||||
"d ${homeDir}/.gnupg 700 ${mainUser} users"
|
||||
];
|
||||
};
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
publicKeys = [
|
||||
{
|
||||
source = "${self}/secrets/keys/gpg/gpg-public-key-0x76FD3810215AE097.asc";
|
||||
trust = 5;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# assure correct permissions
|
||||
systemd.user.tmpfiles.rules = [
|
||||
"d ${homeDir}/.gnupg 700 ${mainUser} users"
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,73 +1,76 @@
|
|||
{ config, ... }:
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
settings = [
|
||||
{
|
||||
# laptop screen
|
||||
output = {
|
||||
criteria = config.swarselsystems.sharescreen;
|
||||
mode = config.swarselsystems.highResolution;
|
||||
scale = 1.0;
|
||||
};
|
||||
}
|
||||
{
|
||||
# home main screen
|
||||
output = {
|
||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
||||
scale = 1.0;
|
||||
mode = "2560x1440";
|
||||
};
|
||||
}
|
||||
{
|
||||
profile = {
|
||||
name = "lidopen";
|
||||
outputs = [
|
||||
{
|
||||
criteria = "eDP-2";
|
||||
status = "enable";
|
||||
scale = 1.0;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
profile = {
|
||||
name = "lidopen";
|
||||
outputs = [
|
||||
{
|
||||
criteria = config.swarselsystems.sharescreen;
|
||||
status = "enable";
|
||||
scale = 1.7;
|
||||
position = "2560,0";
|
||||
}
|
||||
{
|
||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
||||
scale = 1.0;
|
||||
mode = "2560x1440";
|
||||
position = "0,0";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
profile = {
|
||||
name = "lidclosed";
|
||||
outputs = [
|
||||
{
|
||||
criteria = config.swarselsystems.sharescreen;
|
||||
status = "disable";
|
||||
position = "2560,0";
|
||||
}
|
||||
{
|
||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
||||
scale = 1.0;
|
||||
mode = "2560x1440";
|
||||
position = "0,0";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
options.swarselsystems.modules.kanshi = lib.mkEnableOption "kanshi settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.kanshi {
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
settings = [
|
||||
{
|
||||
# laptop screen
|
||||
output = {
|
||||
criteria = config.swarselsystems.sharescreen;
|
||||
mode = config.swarselsystems.highResolution;
|
||||
scale = 1.0;
|
||||
};
|
||||
}
|
||||
{
|
||||
# home main screen
|
||||
output = {
|
||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
||||
scale = 1.0;
|
||||
mode = "2560x1440";
|
||||
};
|
||||
}
|
||||
{
|
||||
profile = {
|
||||
name = "lidopen";
|
||||
outputs = [
|
||||
{
|
||||
criteria = "eDP-2";
|
||||
status = "enable";
|
||||
scale = 1.0;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
profile = {
|
||||
name = "lidopen";
|
||||
outputs = [
|
||||
{
|
||||
criteria = config.swarselsystems.sharescreen;
|
||||
status = "enable";
|
||||
scale = 1.7;
|
||||
position = "2560,0";
|
||||
}
|
||||
{
|
||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
||||
scale = 1.0;
|
||||
mode = "2560x1440";
|
||||
position = "0,0";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
profile = {
|
||||
name = "lidclosed";
|
||||
outputs = [
|
||||
{
|
||||
criteria = config.swarselsystems.sharescreen;
|
||||
status = "disable";
|
||||
position = "2560,0";
|
||||
}
|
||||
{
|
||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
||||
scale = 1.0;
|
||||
mode = "2560x1440";
|
||||
position = "0,0";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
_:
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
options.swarselsystems.modules.kdeconnect = lib.mkEnableOption "kdeconnect settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.kdeconnect {
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,35 @@
|
|||
_:
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
# backgroundColor = "#2e3440";
|
||||
# borderColor = "#88c0d0";
|
||||
borderRadius = 15;
|
||||
borderSize = 1;
|
||||
defaultTimeout = 5000;
|
||||
height = 150;
|
||||
icons = true;
|
||||
ignoreTimeout = true;
|
||||
layer = "overlay";
|
||||
maxIconSize = 64;
|
||||
sort = "-time";
|
||||
width = 300;
|
||||
# font = "monospace 10";
|
||||
extraConfig = ''
|
||||
[urgency=low]
|
||||
border-color=#cccccc
|
||||
[urgency=normal]
|
||||
border-color=#d08770
|
||||
[urgency=high]
|
||||
border-color=#bf616a
|
||||
default-timeout=3000
|
||||
[category=mpd]
|
||||
default-timeout=2000
|
||||
group-by=category
|
||||
'';
|
||||
};
|
||||
|
||||
services.swayosd = {
|
||||
enable = true;
|
||||
topMargin = 0.5;
|
||||
options.swarselsystems.modules.mako = lib.mkEnableOption "mako settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.mako {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
# backgroundColor = "#2e3440";
|
||||
# borderColor = "#88c0d0";
|
||||
borderRadius = 15;
|
||||
borderSize = 1;
|
||||
defaultTimeout = 5000;
|
||||
height = 150;
|
||||
icons = true;
|
||||
ignoreTimeout = true;
|
||||
layer = "overlay";
|
||||
maxIconSize = 64;
|
||||
sort = "-time";
|
||||
width = 300;
|
||||
# font = "monospace 10";
|
||||
extraConfig = ''
|
||||
[urgency=low]
|
||||
border-color=#cccccc
|
||||
[urgency=normal]
|
||||
border-color=#d08770
|
||||
[urgency=high]
|
||||
border-color=#bf616a
|
||||
default-timeout=3000
|
||||
[category=mpd]
|
||||
default-timeout=2000
|
||||
group-by=category
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{ self, config, lib, ... }:
|
||||
{
|
||||
options.swarselsystems = {
|
||||
modules.sway = lib.mkEnableOption "sway settings";
|
||||
inputs = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.attrsOf lib.types.str);
|
||||
default = { };
|
||||
|
|
@ -64,7 +65,7 @@
|
|||
internal = true;
|
||||
};
|
||||
};
|
||||
config = {
|
||||
config = lib.mkIf config.swarselsystems.modules.sway {
|
||||
swarselsystems = {
|
||||
touchpad = lib.mkIf config.swarselsystems.isLaptop {
|
||||
"type:touchpad" = {
|
||||
|
|
|
|||
10
modules/home/common/swayosd.nix
Normal file
10
modules/home/common/swayosd.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.swayosd {
|
||||
services.swayosd = {
|
||||
enable = true;
|
||||
topMargin = 0.5;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,29 +1,32 @@
|
|||
{ pkgs, ... }:
|
||||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
systemd.user.services.yubikey-touch-detector = {
|
||||
Unit = {
|
||||
Description = "Detects when your YubiKey is waiting for a touch";
|
||||
Requires = [ "yubikey-touch-detector.socket" ];
|
||||
options.swarselsystems.modules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.yubikeytouch {
|
||||
systemd.user.services.yubikey-touch-detector = {
|
||||
Unit = {
|
||||
Description = "Detects when your YubiKey is waiting for a touch";
|
||||
Requires = [ "yubikey-touch-detector.socket" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.yubikey-touch-detector}/bin/yubikey-touch-detector --libnotify";
|
||||
EnvironmentFile = "-%E/yubikey-touch-detector/service.conf";
|
||||
};
|
||||
Install = {
|
||||
Also = [ "yubikey-touch-detector.socket" ];
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.yubikey-touch-detector}/bin/yubikey-touch-detector --libnotify";
|
||||
EnvironmentFile = "-%E/yubikey-touch-detector/service.conf";
|
||||
};
|
||||
Install = {
|
||||
Also = [ "yubikey-touch-detector.socket" ];
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
systemd.user.sockets.yubikey-touch-detector = {
|
||||
Unit = {
|
||||
Description = "Unix socket activation for YubiKey touch detector service";
|
||||
};
|
||||
Socket = {
|
||||
ListenStream = "%t/yubikey-touch-detector.socket";
|
||||
RemoveOnStop = true;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "sockets.target" ];
|
||||
systemd.user.sockets.yubikey-touch-detector = {
|
||||
Unit = {
|
||||
Description = "Unix socket activation for YubiKey touch detector service";
|
||||
};
|
||||
Socket = {
|
||||
ListenStream = "%t/yubikey-touch-detector.socket";
|
||||
RemoveOnStop = true;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "sockets.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue