This commit is contained in:
martyTF 2026-04-02 18:04:02 +02:00
commit 784f214fb7
22 changed files with 225 additions and 292 deletions

View file

@ -75,10 +75,11 @@ binds {
${modifier}+${osConfig.keybinds.hotkeys.terminal} { spawn "${osConfig.terminal.binary}";}
${modifier}+Left {focus-column-left; }
${modifier}+Right {focus-column-right; }
${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "zen";}
${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "walker";}
${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "${osConfig.apps.browser.default}";}
${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "${osConfig.desktop.window-managers.shell.launcher.default}";}
Print { screenshot;}
${modifier}+Shift+Q { close-window; }
${modifier}+Shift+${osConfig.keybinds.hotkeys.close-window} { close-window; }
${modifier}+Shift+${osConfig.keybinds.hotkeys.editor} { spawn "${osConfig.apps.development.editor.default}";}
}
spawn-at-startup "elephant"

View file

@ -1,15 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./internet
./bluetooth
./mounts
./social-media
];
}

View file

@ -1,60 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
device = {
type = {
laptop = lib.mkEnableOption "laptop";
desktop = lib.mkEnableOption "desktop";
server = lib.mkEnableOption "server";
};
};
};
imports = [
./laptop.nix
./desktop.nix
./server.nix
];
config = {
development = lib.mkDefault {
git.enable = true;
};
terminal = lib.mkDefault {
ranger.enable = true;
};
misc = lib.mkDefault {
bitwarden.enable = true;
};
internet.tor.enable = true;
syncthing = lib.mkDefault {
devices = {
marty-pc = {
id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP";
autoAcceptFolder = true;
};
marty-server = {
id = "UDMXEKZ-HYIFI5S-VAKE75O-K3C65QV-LS43QA5-3JTHWKL-CI5C3Y6-P4NSQQM";
autoAcceptFolders = true;
};
marty-latitude = {
id = "SOAWHKA-BCQGO5G-IJ24WTO-RDETP5M-LNTVO66-MHIOUU2-NNQ57P6-FFKNSA6";
autoAcceptFolders = true;
};
marty-pixel = {
id = "GSBXOGW-6SYLDUQ-HPH7FBJ-CKHWQIK-K5YORB4-CYKGYT6-DLCVSAK-LA2RMAK";
autoAcceptFolders = true;
};
marty-fairphone = {
id = "2ISVWQV-4USY5IA-2OU55CE-Q7VLPD7-4RVQ5WX-FXQSJMY-2ES4EZG-IGFB7QG";
autoAcceptFolders = true;
};
};
};
};
}

View file

@ -1,58 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
config = lib.mkIf config.device.type.desktop {
development = lib.mkDefault {
vscodium.enable = true;
godot.enable = true;
python.enable = true;
};
terminal = lib.mkDefault {
kitty.enable = true;
};
desktop = lib.mkDefault {
hyprland = {
enable = true;
numlock = true;
};
# waybar.enable = true;
walker.enable = true;
wallpaper.enable = true;
grimblast.enable = true;
audio.enable = true;
noctalia.enable = true;
};
messaging.enable = true;
internet = lib.mkDefault {
browsers = {
zen-browser = {
enable = true;
};
tor-browser = {
enable = true;
};
};
mail = {
enable = true;
providers.protonmail.enable = true;
};
rss.enable = true;
};
bluetooth.enable = true;
media = {
images.enable = true;
video.enable = true;
audio.enable = true;
threeD.enable = true;
};
misc = {
obsidian.enable = true;
};
};
}

View file

@ -1,51 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
config = lib.mkIf config.device.type.laptop {
home.packages = with pkgs; [
light
];
development = lib.mkDefault {
vscodium.enable = true;
};
terminal = lib.mkDefault {
kitty.enable = true;
};
desktop = lib.mkDefault {
hyprland = {
enable = true;
};
# waybar.enable = true;
walker.enable = true;
wallpaper.enable = true;
grimblast.enable = true;
audio.enable = true;
noctalia.enable = true;
};
messaging.enable = true;
internet = lib.mkDefault {
browsers = {
zen-browser = {
enable = true;
};
};
mail = {
enable = true;
providers.protonmail.enable = true;
};
rss.enable = true;
};
bluetooth.enable = true;
media = {
images.nomacs.enable = true;
video.mpv.enable = true;
video.tsukimi.enable = true;
};
};
}

View file

@ -1,11 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
}

View file

@ -1,17 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
home.packages = with pkgs; [
pass
gnome-keyring
seahorse
libsecret
gcr
];
services.gnome-keyring.enable = true;
}

View file

@ -28,7 +28,6 @@
imports = [
./hardware.nix
../../modules/desktop/niri.nix
# ../../modules/server/nginx.nix
];

View file

@ -8,9 +8,8 @@
{
imports = [
./git.nix
./vscodium.nix
./python.nix
./editor.nix
./godot.nix
./openssl.nix
./languages.nix
];
}

View file

@ -0,0 +1,54 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
development = {
editor = {
vscodium.enable = lib.mkEnableOption "enable vscodium";
emacs.enable = lib.mkEnableOption "enable emacs";
default = "vscodium";
};
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf config.development.editor.vscodium.enable vscodium)
nixfmt
];
programs = {
vscode = lib.mkIf config.development.editor.vscodium.enable {
enable = true;
package = pkgs.vscodium;
defaultEditor = lib.mkIf (config.development.editor.default == "vscodium") true;
profiles.default.extensions = with pkgs.vscode-extensions; [
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
jnoortheen.nix-ide
alefragnani.project-manager
naumovs.color-highlight
geequlim.godot-tools
stylelint.vscode-stylelint
ecmel.vscode-html-css
esbenp.prettier-vscode
];
};
};
services = {
emacs = lib.mkIf config.development.editor.emacs.enable {
enable = true;
install = true;
defaultEditor = lib.mkIf (config.development.editor.default == "emacs") true;
};
};
home.sessionVariables = {
EDITOR = lib.mkDefault "codium";
};
};
}

View file

@ -7,13 +7,13 @@
{
options = {
development = {
apps.development = {
godot.enable = lib.mkEnableOption "enable godot";
};
};
config = lib.mkIf config.development.godot.enable {
home.packages = with pkgs; [
config = lib.mkIf config.apps.development.godot.enable {
systemPackages = with pkgs; [
godot
];
};

View file

@ -0,0 +1,20 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.development.languages = {
python = lib.mkEnableOption "enable python";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf lib.mkIf config.development.languages.python.enable virtualenv)
];
};
}

View file

@ -1,38 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
development = {
vscodium.enable = lib.mkEnableOption "enable vscodium";
};
};
config = lib.mkIf config.development.vscodium.enable {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
profiles.default.extensions = with pkgs.vscode-extensions; [
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
jnoortheen.nix-ide
alefragnani.project-manager
naumovs.color-highlight
geequlim.godot-tools
stylelint.vscode-stylelint
ecmel.vscode-html-css
esbenp.prettier-vscode
];
};
home.packages = with pkgs; [
nixfmt
];
home.sessionVariables = {
EDITOR = lib.mkDefault "codium";
};
};
}

View file

@ -0,0 +1,34 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.internet.browsers = {
zen-browser = {
enable = lib.mkEnableOption "enable zen browser";
package = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
binary = "${config.apps.internet.browsers.zen-browser.package}/bin/zen";
};
tor-browser = {
enable = lib.mkEnableOption "enable tor browser";
package = pkgs.tor-browser;
binary = "${config.apps.internet.browsers.tor-browser.package}/bin/tor-browser";
};
default = lib.mkOption {
default = "zen";
description = "default browser";
};
};
};
config = {
environment.systemPackages = [
(lib.mkIf config.apps.internet.browsers.zen-browser.enable config.apps.internet.browsers.zen-browser.package)
(lib.mkIf config.apps.internet.browsers.tor-browser.enable config.apps.internet.browsers.tor-browser.package)
];
};
}

View file

@ -0,0 +1,13 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./browser.nix
./mail.nix
];
}

View file

@ -12,21 +12,6 @@
obsidian.enable = lib.mkEnableOption "enable obsidian";
bitwarden.enable = lib.mkEnableOption "enable bitwarden";
blender.enable = lib.mkEnableOption "enable blender";
syncthing = {
enable = lib.mkEnableOption "enable syncthing";
devices = lib.mkOption {
default = { };
description = ''
set syncthing devices
'';
};
folders = lib.mkOption {
default = { };
description = ''
set syncthing folders
'';
};
};
};
};
@ -37,20 +22,15 @@
lib.mkIf (config.desktop.shell.rofi.enable) pinentry-curses rofi-rbw
))
(lib.mkIf (config.apps.misc.blender.enable) blender)
libsecret
gcr_4
pass
];
programs = {
seahorse.enable = true;
};
services = {
syncthing = lib.mkIf config.apps.misc.syncthing.enable {
enable = true;
tray.enable = true;
guiAddress = "0.0.0.0:8384";
settings = {
devices = config.apps.misc.syncthing.devices;
folders = config.apps.misc.syncthing.folders;
};
overrideDevices = lib.mkIf (config.apps.misc.syncthing.devices == { }) false;
overrideFolders = lib.mkIf (config.apps.misc.syncthing.folders == { }) false;
};
gnome.gnome-keyring.enable = true;
};
};
}

View file

@ -0,0 +1,52 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.sync = {
kde-connect = {
enable = lib.mkEnableOption "enable kde-connect";
};
syncthing = {
enable = lib.mkEnableOption "enable syncthing";
devices = lib.mkOption {
default = { };
description = ''
set syncthing devices
'';
};
folders = lib.mkOption {
default = { };
description = ''
set syncthing folders
'';
};
};
};
};
config = {
programs = {
kdeconnect = lib.mkIf config.apps.sync.kde-connect.enable {
enable = true;
};
};
services = {
syncthing = lib.mkIf config.apps.sync.syncthing.enable {
enable = true;
tray.enable = true;
guiAddress = "0.0.0.0:8384";
settings = {
devices = config.apps.sync.syncthing.devices;
folders = config.apps.sync.syncthing.folders;
};
overrideDevices = lib.mkIf (config.apps.sync.syncthing.devices == { }) false;
overrideFolders = lib.mkIf (config.apps.sync.syncthing.folders == { }) false;
};
};
};
}

View file

@ -13,7 +13,7 @@
rofi.enable = lib.mkEnableOption "enable rofi";
launcher = lib.mkOption {
default = (lib.mkIf config.desktop.shell.walker.enable "walker");
description = "default launcher"
description = "default launcher";
};
};
};

View file

@ -30,7 +30,7 @@
description = "editor hotkey";
};
};
}
};
};
imports = [
./hyprland.nix

View file

@ -2,6 +2,7 @@
{
networking = {
domain = config.domain;
networkmanager.enable = true;
firewall = {
enable = true;

View file

@ -16,9 +16,9 @@
'';
};
email = lib.mkOption {
default = "${config.user.userName}@${config.domain}";
description = "main user email"
}
default = "${config.user.userName}@${config.networking.domain}";
description = "main user email";
};
shell = lib.mkOption {
default = pkgs.fish;
description = ''

View file

@ -44,6 +44,36 @@
default = "kitty";
toys = true;
};
sync = {
syncthing = {
devices = {
marty-pc = {
id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP";
autoAcceptFolder = true;
};
marty-server = {
id = "UDMXEKZ-HYIFI5S-VAKE75O-K3C65QV-LS43QA5-3JTHWKL-CI5C3Y6-P4NSQQM";
autoAcceptFolders = true;
};
marty-latitude = {
id = "SOAWHKA-BCQGO5G-IJ24WTO-RDETP5M-LNTVO66-MHIOUU2-NNQ57P6-FFKNSA6";
autoAcceptFolders = true;
};
marty-thinkpad = {
id = "NWHFQSW-FOBGFLV-YMZR77Q-KNRR3YC-4C6PKXT-TTPDCOL-CDB6QX4-3QJE2AN";
autoAcceptFolders = true;
};
marty-pixel = {
id = "GSBXOGW-6SYLDUQ-HPH7FBJ-CKHWQIK-K5YORB4-CYKGYT6-DLCVSAK-LA2RMAK";
autoAcceptFolders = true;
};
marty-fairphone = {
id = "2ISVWQV-4USY5IA-2OU55CE-Q7VLPD7-4RVQ5WX-FXQSJMY-2ES4EZG-IGFB7QG";
autoAcceptFolders = true;
};
};
};
};
};
desktop = {
window-managers = {