refactor *started*
This commit is contained in:
parent
d0413cb830
commit
db2103a37d
103 changed files with 1008 additions and 786 deletions
|
|
@ -1,7 +0,0 @@
|
|||
# MODULES
|
||||
|
||||
todo:
|
||||
- [ ] move home-manager stuff to ../home
|
||||
- [ ] add server stuff
|
||||
|
||||
-> seperate home manager stuff from normal nix stuff, use home manager purely for dotfiles, use modules to install stuff
|
||||
26
modules/apps/audio/default.nix
Normal file
26
modules/apps/audio/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.audio = {
|
||||
base.enable = lib.mkEnableOption "enable basic audio";
|
||||
media.enable = lib.mkEnableOption "enable audio media";
|
||||
editing.enable = lib.mkEnableOption "enable audio editing";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(lib.mkIf (apps.audio.base.enable) pavucontrol)
|
||||
(lib.mkIf (apps.audio.base.enable) playerctl)
|
||||
(lib.mkIf (apps.audio.editing.enable) tenacity)
|
||||
(lib.mkIf (apps.audio.editing.enable) flac)
|
||||
];
|
||||
};
|
||||
}
|
||||
16
modules/apps/default.nix
Normal file
16
modules/apps/default.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./audio
|
||||
./gaming
|
||||
./image
|
||||
./video
|
||||
./terminal
|
||||
];
|
||||
}
|
||||
|
|
@ -8,7 +8,6 @@
|
|||
{
|
||||
imports = [
|
||||
./steam.nix
|
||||
./modding.nix
|
||||
./minecraft.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
gaming = {
|
||||
apps.gaming = {
|
||||
minecraft.enable = lib.mkEnableOption "enable minecraft";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.gaming.minecraft.enable {
|
||||
home.packages = with pkgs; [
|
||||
config = lib.mkIf config.apps.gaming.minecraft.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
prismlauncher
|
||||
];
|
||||
};
|
||||
41
modules/apps/gaming/steam.nix
Normal file
41
modules/apps/gaming/steam.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.gaming = {
|
||||
steam.enable = lib.mkEnableOption "enable steam";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.apps.gaming.steam.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
adwsteamgtk
|
||||
];
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
protontricks.enable = true;
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
extraPackages = with pkgs; [
|
||||
gamescope
|
||||
];
|
||||
};
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
24
modules/apps/image/default.nix
Normal file
24
modules/apps/image/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.image = {
|
||||
base.enable = lib.mkEnableOption "enable basic image";
|
||||
editing.enable = lib.mkEnableOption "enable image editing";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(lib.mkIf (apps.image.base.enable) nomacs)
|
||||
(lib.mkIf (apps.image.editing.enable) gimp3-with-plugins)
|
||||
(lib.mkIf (apps.image.editing.enable) krita)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -7,6 +7,6 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
./sshfs.nix
|
||||
./keyboard.nix
|
||||
];
|
||||
}
|
||||
26
modules/apps/peripherals/keyboard.nix
Normal file
26
modules/apps/peripherals/keyboard.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
qmk
|
||||
qmk-udev-rules
|
||||
qmk_hid
|
||||
via
|
||||
vial
|
||||
];
|
||||
|
||||
services.udev = {
|
||||
packages = with pkgs; [
|
||||
qmk
|
||||
qmk-udev-rules
|
||||
qmk_hid
|
||||
via
|
||||
vial
|
||||
];
|
||||
};
|
||||
}
|
||||
31
modules/apps/terminal/base-packages.nix
Normal file
31
modules/apps/terminal/base-packages.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.terminal.toys = lib.mkEnableOption "enable terminal toys";
|
||||
};
|
||||
config = {
|
||||
environment.systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
unzip
|
||||
btop
|
||||
]
|
||||
++ lib.mkIf config.apps.terminal.toys [
|
||||
|
||||
asciiquarium-transparent
|
||||
cava
|
||||
bunnyfetch
|
||||
nerdfetch
|
||||
fastfetch
|
||||
cmatrix
|
||||
astroterm
|
||||
];
|
||||
};
|
||||
}
|
||||
30
modules/apps/terminal/default.nix
Normal file
30
modules/apps/terminal/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.terminal = {
|
||||
package = lib.mkOption {
|
||||
default = "";
|
||||
description = "terminal package";
|
||||
};
|
||||
binary = lib.mkOption {
|
||||
default = "";
|
||||
description = "terminal binary";
|
||||
};
|
||||
default = lib.mkOption {
|
||||
default = "";
|
||||
description = "default terminal";
|
||||
};
|
||||
};
|
||||
};
|
||||
imports = [
|
||||
./base-packages.nix
|
||||
./kitty.nix
|
||||
./tui.nix
|
||||
];
|
||||
}
|
||||
25
modules/apps/terminal/kitty.nix
Normal file
25
modules/apps/terminal/kitty.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.terminal = {
|
||||
kitty.enable = lib.mkEnableOption "enable kitty";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.apps.terminal.kitty.enable {
|
||||
terminal = lib.mkIf (config.apps.terminal.default == "kitty") {
|
||||
package = pkgs.kitty;
|
||||
binary = "${pkgs.kitty}/bin/kitty";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
kitty
|
||||
];
|
||||
};
|
||||
}
|
||||
25
modules/apps/terminal/tui.nix
Normal file
25
modules/apps/terminal/tui.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
tt = config.apps.terminal.tui;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.terminal.tui = {
|
||||
ranger.enable = lib.mkEnableOption "enable ranger";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(lib.mkIf (tt.ranger.enable) ranger)
|
||||
];
|
||||
};
|
||||
}
|
||||
26
modules/apps/video/default.nix
Normal file
26
modules/apps/video/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
apps.video = {
|
||||
base.enable = lib.mkEnableOption "enable basic video";
|
||||
editing.enable = lib.mkEnableOption "enable video editing";
|
||||
media.enable = lib.mkEnableOption "enable video media";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(lib.mkIf (apps.video.base.enable) mpv)
|
||||
(lib.mkIf (apps.video.editing.enable) kdePackages.kdenlive)
|
||||
(lib.mkIf (apps.video.media.enable) jellyfin-desktop)
|
||||
(lib.mkIf (apps.video.media.enable) pipeline)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
bluetooth = {
|
||||
enable = lib.mkEnableOption "enable bluetooth";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.bluetooth.enable {
|
||||
home.packages = with pkgs; [
|
||||
bluez
|
||||
bluetuith
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./internet
|
||||
./bluetooth
|
||||
./mounts
|
||||
./social-media
|
||||
];
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./librewolf.nix
|
||||
./zen-browser.nix
|
||||
./tor.nix
|
||||
./mail.nix
|
||||
./rss.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
internet.browsers = {
|
||||
librewolf = {
|
||||
enable = lib.mkEnableOption "enable librewolf";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.internet.browsers.librewolf.enable {
|
||||
home.packages = with pkgs; [
|
||||
librewolf
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
internet = {
|
||||
mail.enable = lib.mkEnableOption "enable e-mail";
|
||||
mail.providers.protonmail.enable = lib.mkEnableOption "enable protonmail";
|
||||
};
|
||||
};
|
||||
config = {
|
||||
programs = {
|
||||
thunderbird = lib.mkIf config.internet.mail.enable {
|
||||
enable = true;
|
||||
profiles."default" = {
|
||||
isDefault = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
services = {
|
||||
protonmail-bridge = lib.mkIf config.internet.mail.providers.protonmail.enable {
|
||||
enable = true;
|
||||
package = pkgs.protonmail-bridge;
|
||||
extraPackages = with pkgs; [
|
||||
gnome-keyring
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
internet = {
|
||||
rss.enable = lib.mkEnableOption "enable rss";
|
||||
};
|
||||
};
|
||||
config = {
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.internet.rss.enable) newsflash)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
internet = {
|
||||
tor.enable = lib.mkEnableOption "enable tor";
|
||||
browsers.tor-browser.enable = lib.mkEnableOption "enable tor-browser";
|
||||
};
|
||||
};
|
||||
config = {
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.internet.browsers.tor-browser.enable) tor-browser)
|
||||
(lib.mkIf (config.internet.tor.enable) oniux)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
extension = shortId: guid: {
|
||||
name = guid;
|
||||
value = {
|
||||
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
||||
installation_mode = "normal_installed";
|
||||
};
|
||||
};
|
||||
|
||||
prefs = {
|
||||
# Check these out at about:config
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"general.autoScroll" = true;
|
||||
"general.smoothScroll" = true;
|
||||
"middlemouse.contentLoadURL" = false;
|
||||
"devtools.debugger.remote-enabled" = true;
|
||||
"devtools.chrome.enabled" = true;
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"browser.ml.enable" = false;
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.ml.chat.menu" = false;
|
||||
"browser.ml.chat.page" = false;
|
||||
"browser.ml.chat.page.footerBadge" = false;
|
||||
"browser.ml.chat.page.menuBadge" = false;
|
||||
"browser.ml.linkPreview.enabled" = false;
|
||||
"browser.ml.pageAssist.enabled" = false;
|
||||
"browser.tabs.groups.smart.enabled" = false;
|
||||
"browser.tabs.groups.smart.userEnabled" = false;
|
||||
"extensions.ml.enabled" = false;
|
||||
"browser.search.visualSearch.featureGate" = false;
|
||||
# ...
|
||||
};
|
||||
|
||||
extensions = [
|
||||
# To add additional extensions, find it on addons.mozilla.org, find
|
||||
# the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
|
||||
# Then go to https://addons.mozilla.org/api/v5/addons/addon/!SHORT_ID!/ to get the guid
|
||||
(extension "adnauseam" "adnauseam@rednoise.org")
|
||||
(extension "floccus" "floccus@handmadeideas.org")
|
||||
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
|
||||
(extension "simplelogin" "addon@simplelogin")
|
||||
(extension "localcdn-fork-of-decentraleyes" "{b86e4813-687a-43e6-ab65-0bde4ab75758}")
|
||||
(extension "catppuccin-web-file-icons" "{bbb880ce-43c9-47ae-b746-c3e0096c5b76}")
|
||||
(extension "peertube-companion" "peertube-companion@booteille")
|
||||
(extension "peertubeify" "{01175c8e-4506-4263-bad9-d3ddfd4f5a5f}")
|
||||
(extension "peertube-picks" "{937c0767-0608-41e2-917a-8bf06601275a}")
|
||||
# ...
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
internet.browsers = {
|
||||
zen-browser = {
|
||||
enable = lib.mkEnableOption "enable zen-browser";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.internet.browsers.zen-browser.enable {
|
||||
home.packages = [
|
||||
(pkgs.wrapFirefox
|
||||
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped
|
||||
{
|
||||
extraPrefs = lib.concatLines (
|
||||
lib.mapAttrsToList (
|
||||
name: value: ''lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});''
|
||||
) prefs
|
||||
);
|
||||
extraPolicies = {
|
||||
DisableTelemetry = true;
|
||||
ExtensionSettings = builtins.listToAttrs extensions;
|
||||
|
||||
SearchEngines = {
|
||||
Default = "MartyTF's Series of Tubes";
|
||||
Add = [
|
||||
{
|
||||
Name = "MartyTF's Series of Tubes";
|
||||
URLTemplate = "https://search.marty.tf/?q={searchTerms}";
|
||||
IconURL = "https://wiki.nixos.org/favicon.ico";
|
||||
Alias = "@sgx";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
};
|
||||
config = {
|
||||
programs.sftpman = {
|
||||
enable = true;
|
||||
mounts = {
|
||||
marty-server = {
|
||||
host = "marty-server";
|
||||
user = "marty";
|
||||
mountOptions = [
|
||||
"/mnt/Server"
|
||||
];
|
||||
mountPoint = "/";
|
||||
};
|
||||
};
|
||||
package = pkgs.sshfs;
|
||||
defaultSshKey = "~/.ssh/id_ed25519";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./messaging
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
fedistar
|
||||
];
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
messaging = {
|
||||
enable = lib.mkEnableOption "enable all messaging";
|
||||
element.enable = lib.mkEnableOption "enable element";
|
||||
signal.enable = lib.mkEnableOption "enable signal";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
messaging = lib.mkIf config.messaging.enable {
|
||||
element.enable = lib.mkDefault true;
|
||||
signal.enable = lib.mkDefault true;
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.messaging.signal.enable) signal-desktop)
|
||||
];
|
||||
programs = {
|
||||
element-desktop = lib.mkIf config.messaging.element.enable {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -7,14 +7,9 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
./defaults
|
||||
./development
|
||||
./terminal
|
||||
./apps
|
||||
./desktop
|
||||
./misc
|
||||
./gaming
|
||||
./connectivity
|
||||
./media
|
||||
./server
|
||||
./system
|
||||
./user
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# HOME
|
||||
|
||||
only for dotfiles, no longer installing stuff from here
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
audio.enable = lib.mkEnableOption "enable audio";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.audio.enable {
|
||||
home.packages = with pkgs; [
|
||||
pavucontrol
|
||||
playerctl
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -7,16 +7,9 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./walker.nix
|
||||
./waybar.nix
|
||||
./rofi.nix
|
||||
./wallpaper.nix
|
||||
./grimblast.nix
|
||||
./audio.nix
|
||||
./noctalia.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
wl-clipboard
|
||||
./utilities
|
||||
./window-managers
|
||||
./shell
|
||||
./display-manager.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
51
modules/desktop/display-manager.nix
Normal file
51
modules/desktop/display-manager.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services = {
|
||||
xserver = {
|
||||
xkb = {
|
||||
layout = builtins.substring 0 2 config.system.locale;
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
enable = true;
|
||||
};
|
||||
upower = {
|
||||
enable = true;
|
||||
};
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
autoSuspend = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
uwsm = {
|
||||
waylandCompositors = {
|
||||
hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable {
|
||||
prettyName = "Hyprland";
|
||||
comment = "Hyprland";
|
||||
binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
|
||||
};
|
||||
sway = lib.mkIf config.desktop.window-managers.sway.enable {
|
||||
prettyName = "Sway";
|
||||
comment = "Sway";
|
||||
binPath = "${config.programs.sway.package}/bin/sway --session";
|
||||
};
|
||||
niri = lib.mkIf config.desktop.window-managers.niri.enable {
|
||||
prettyName = "Niri";
|
||||
comment = "Niri";
|
||||
binPath = "${config.programs.niri.package}/bin/niri-session";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
hyprland = {
|
||||
enable = lib.mkEnableOption "enable hyprland";
|
||||
monitors = lib.mkOption {
|
||||
default = [
|
||||
",preferred,auto,1"
|
||||
];
|
||||
description = "declare monitors";
|
||||
};
|
||||
workspaces = {
|
||||
workspaces = lib.mkOption {
|
||||
default = (
|
||||
builtins.concatLists (
|
||||
builtins.genList (
|
||||
i:
|
||||
let
|
||||
ws = i + 1;
|
||||
in
|
||||
[
|
||||
"${toString i},persistent:true"
|
||||
]
|
||||
) config.desktop.hyprland.workspaces.amount
|
||||
)
|
||||
);
|
||||
description = "declare workspace";
|
||||
};
|
||||
amount = lib.mkOption {
|
||||
default = 9;
|
||||
description = "declare workspace amount";
|
||||
};
|
||||
};
|
||||
numlock = lib.mkEnableOption "numlock by default";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.hyprland.enable {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
configPackages = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
];
|
||||
extraPortals = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-xapp
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
|
||||
];
|
||||
config.common = {
|
||||
"org.freedesktop.portal.OpenURI" = [
|
||||
"*"
|
||||
"hyprland"
|
||||
];
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
hyprlock = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
systemd.enable = false;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage =
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
settings = {
|
||||
monitor = config.desktop.hyprland.monitors;
|
||||
workspace = config.desktop.hyprland.workspaces.workspaces;
|
||||
env = [
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
];
|
||||
exec-once = [
|
||||
#"hyprctl plugin load "
|
||||
(lib.mkIf (config.desktop.walker.enable) "elephant")
|
||||
(lib.mkIf (config.desktop.waybar.enable) "waybar")
|
||||
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell")
|
||||
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell ipc call wallpaper random")
|
||||
(lib.mkIf (config.desktop.wallpaper.enable) "waypaper --restore --random")
|
||||
(lib.mkIf (config.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent")
|
||||
(lib.mkIf (config.internet.mail.providers.protonmail.enable) "protonmail-bridge -n")
|
||||
"echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature"
|
||||
];
|
||||
"$mod" = "SUPER";
|
||||
"$shiftmod" = "SUPER_SHIFT";
|
||||
"$controlmod" = "SUPER_CTRL";
|
||||
bind = [
|
||||
|
||||
(lib.mkIf (config.desktop.walker.enable) "$mod, D, exec, walker")
|
||||
(lib.mkIf (config.desktop.rofi.enable) "$mod, D, exec, rofi -show drun")
|
||||
(lib.mkIf (config.terminal.kitty.enable) "$mod, return, exec, kitty")
|
||||
(lib.mkIf (config.desktop.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area")
|
||||
(lib.mkIf (config.desktop.rofi.enable) (
|
||||
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; rofi-rbw; sleep 30; rbw lock"
|
||||
))
|
||||
(lib.mkIf (config.desktop.walker.enable) (
|
||||
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
|
||||
))
|
||||
"$mod, F, fullscreen, 1"
|
||||
"$shiftmod, F, fullscreen, 0"
|
||||
"$shiftmod, Q, killactive,"
|
||||
"$mod, S, togglespecialworkspace, magic"
|
||||
"$mod, O, exec, zen"
|
||||
"$shiftmod, S, movetoworkspace, special:magic"
|
||||
"$controlmod, right, workspace, m+1"
|
||||
"$controlmod, left, workspace, m-1"
|
||||
"$mod, mouse_down, workspace, m-1"
|
||||
"$mod, mouse_up, workspace, m+1"
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, J, exec, playerctl previous"
|
||||
"$mod, K, exec, playerctl play-pause"
|
||||
"$mod, L, exec, playerctl next"
|
||||
"$mod, G, togglefloating,"
|
||||
# "$mod, H, hyprexpo:expo, toggle"
|
||||
"$mod, F1, exec, hyprlock"
|
||||
"$shiftmod, E, exec, codium"
|
||||
"$controlmod, up, exec, light -A 10"
|
||||
"$controlmod, down, exec, light -U 10"
|
||||
"$controlmod, Q, exec, hyprctl kill"
|
||||
|
||||
]
|
||||
++ (builtins.concatLists (
|
||||
builtins.genList (
|
||||
i:
|
||||
let
|
||||
ws = i + 1;
|
||||
in
|
||||
[
|
||||
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
||||
"$shiftmod, code:1${toString i}, movetoworkspacesilent, ${toString ws}"
|
||||
]
|
||||
) config.desktop.hyprland.workspaces.amount
|
||||
));
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
bindel = [
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
];
|
||||
input = {
|
||||
kb_layout = "de";
|
||||
numlock_by_default = config.desktop.hyprland.numlock;
|
||||
follow_mouse = 2;
|
||||
mouse_refocus = false;
|
||||
accel_profile = "flat";
|
||||
sensitivity = 0.2;
|
||||
touchpad = {
|
||||
natural_scroll = "no";
|
||||
disable_while_typing = true;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
inactive_timeout = 0;
|
||||
no_warps = true;
|
||||
};
|
||||
decoration = {
|
||||
rounding = 20;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
};
|
||||
shadow = {
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
# plugin = {
|
||||
# hyprexpo = {
|
||||
# columns = 2;
|
||||
# gap_size = 20;
|
||||
# bg_col = "rgb(e1e1e2)";
|
||||
# workspace_method = "first 1";
|
||||
# enable_gesture = true;
|
||||
# gesture_distance = 300;
|
||||
# gesture_positive = true;
|
||||
# gesture_negative = true;
|
||||
# };
|
||||
# hyprtrails = {
|
||||
# color = "rgba(1a1a1aee)";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
plugins = [
|
||||
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails
|
||||
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
|
||||
|
||||
];
|
||||
};
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
noctalia.enable = lib.mkEnableOption "enable noctalia";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.noctalia.enable {
|
||||
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
rofi.enable = lib.mkEnableOption "enable rofi";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.rofi.enable {
|
||||
programs = {
|
||||
rofi = {
|
||||
enable = true;
|
||||
modes = [
|
||||
"drun"
|
||||
"run"
|
||||
"ssh"
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
modules/desktop/shell/default.nix
Normal file
15
modules/desktop/shell/default.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./noctalia.nix
|
||||
./swww.nix
|
||||
./walker.nix
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
||||
24
modules/desktop/shell/noctalia.nix
Normal file
24
modules/desktop/shell/noctalia.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.shell = {
|
||||
noctalia.enable = lib.mkEnableOption "enable noctalia";
|
||||
};
|
||||
};
|
||||
imports = lib.mkIf config.desktop.shell.noctalia.enable [
|
||||
inputs.noctalia.homeModules.default
|
||||
];
|
||||
config = lib.mkIf config.desktop.shell.noctalia.enable {
|
||||
desktop.shell.swww.enable = lib.mkDefault false;
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
22
modules/desktop/shell/swww.nix
Normal file
22
modules/desktop/shell/swww.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.shell = {
|
||||
swww.enable = lib.mkEnableOption "enable swww";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.shell.swww.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
waypaper
|
||||
swww
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -8,19 +8,15 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.shell = {
|
||||
walker.enable = lib.mkEnableOption "enable walker";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.walker.enable {
|
||||
config = lib.mkIf config.desktop.shell.walker.enable {
|
||||
programs = {
|
||||
walker = {
|
||||
enable = true;
|
||||
runAsService = true;
|
||||
config = {
|
||||
theme = "noctalia";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.shell = {
|
||||
waybar.enable = lib.mkEnableOption "enable waybar";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.waybar.enable {
|
||||
config = lib.mkIf config.desktop.shell.waybar.enable {
|
||||
programs = {
|
||||
waybar = {
|
||||
enable = true;
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
sway = {
|
||||
enable = lib.mkEnableOption "enable sway";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.sway.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
grim # screenshot functionality
|
||||
slurp # screenshot functionality
|
||||
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
||||
];
|
||||
|
||||
# Enable the gnome-keyring secrets vault.
|
||||
# Will be exposed through DBus to programs willing to store secrets.
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
package = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
}:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
openssl
|
||||
imports = [
|
||||
./grimblast.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.utilities = {
|
||||
grimblast.enable = lib.mkEnableOption "enable grimblast";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.grimblast.enable {
|
||||
home.packages = with pkgs; [
|
||||
config = lib.mkIf config.desktop.utilities.grimblast.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
grimblast
|
||||
gradia
|
||||
];
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
wallpaper.enable = lib.mkEnableOption "enable wallpapers";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.wallpaper.enable {
|
||||
home.packages = with pkgs; [
|
||||
waypaper
|
||||
swww
|
||||
];
|
||||
};
|
||||
}
|
||||
14
modules/desktop/window-managers/default.nix
Normal file
14
modules/desktop/window-managers/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./niri.nix
|
||||
./sway.nix
|
||||
];
|
||||
}
|
||||
27
modules/desktop/window-managers/hyprland.nix
Normal file
27
modules/desktop/window-managers/hyprland.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.window-managers = {
|
||||
hyprland = {
|
||||
enable = lib.mkEnableOption "enable hyprland";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.window-managers.hyprland.enable {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage =
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -7,21 +7,17 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.window-managers = {
|
||||
niri = {
|
||||
enable = lib.mkEnableOption "enable niri";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.niri.enable {
|
||||
|
||||
# Enable the gnome-keyring secrets vault.
|
||||
# Will be exposed through DBus to programs willing to store secrets.
|
||||
config = lib.mkIf config.desktop.window-managers.niri.enable {
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
xwayland-satellite
|
||||
niri
|
||||
];
|
||||
xwayland-satellite
|
||||
];
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
};
|
||||
24
modules/desktop/window-managers/sway.nix
Normal file
24
modules/desktop/window-managers/sway.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.window-managers = {
|
||||
sway = {
|
||||
enable = lib.mkEnableOption "enable sway";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.window-managers.sway.enable {
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
package = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./git.nix
|
||||
./vscodium.nix
|
||||
./python.nix
|
||||
./godot.nix
|
||||
./openssl.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
bc
|
||||
imagemagick
|
||||
];
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
development = {
|
||||
git.enable = lib.mkEnableOption "enable git";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.development.git.enable {
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
user = {
|
||||
email = "marty@marty.tf";
|
||||
name = "marty";
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
development = {
|
||||
godot.enable = lib.mkEnableOption "enable godot";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.development.godot.enable {
|
||||
home.packages = with pkgs; [
|
||||
godot
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
development = {
|
||||
python.enable = lib.mkEnableOption "enable python";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.development.python.enable {
|
||||
home.packages = with pkgs; [
|
||||
uv
|
||||
virtualenv
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
gaming = {
|
||||
modding.enable = lib.mkEnableOption "enable game modding";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.gaming.modding.enable {
|
||||
home.packages = with pkgs; [
|
||||
limo
|
||||
r2modman
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
gaming = {
|
||||
steam.enable = lib.mkEnableOption "enable steam";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.gaming.steam.enable {
|
||||
home.packages = with pkgs; [
|
||||
adwsteamgtk
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
media = {
|
||||
threeD = {
|
||||
enable = lib.mkEnableOption "enable all 3d media";
|
||||
blender.enable = lib.mkEnableOption "enable blender";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
media.threeD = lib.mkIf config.media.threeD.enable {
|
||||
blender.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.media.threeD.blender.enable) blender)
|
||||
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
media = {
|
||||
audio = {
|
||||
enable = lib.mkEnableOption "enable all audio media";
|
||||
tenacity.enable = lib.mkEnableOption "enable tenacity";
|
||||
flac.enable = lib.mkEnableOption "enable flac";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
media.audio = lib.mkIf config.media.audio.enable {
|
||||
tenacity.enable = lib.mkDefault true;
|
||||
flac.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.media.audio.tenacity.enable) tenacity)
|
||||
(lib.mkIf (config.media.audio.flac.enable) flac)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./images.nix
|
||||
./video.nix
|
||||
./audio.nix
|
||||
./3d.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
media = {
|
||||
images = {
|
||||
enable = lib.mkEnableOption "enable all image media";
|
||||
nomacs.enable = lib.mkEnableOption "enable nomacs";
|
||||
gimp.enable = lib.mkEnableOption "enable gimp";
|
||||
krita.enable = lib.mkEnableOption "enable krita";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
media.images = lib.mkIf config.media.images.enable {
|
||||
nomacs.enable = lib.mkDefault true;
|
||||
gimp.enable = lib.mkDefault true;
|
||||
krita.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.media.images.nomacs.enable) nomacs)
|
||||
(lib.mkIf (config.media.images.gimp.enable) gimp3-with-plugins)
|
||||
(lib.mkIf (config.media.images.krita.enable) krita)
|
||||
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
media = {
|
||||
video = {
|
||||
enable = lib.mkEnableOption "enable all video media";
|
||||
mpv.enable = lib.mkEnableOption "enable mpv";
|
||||
kdenlive.enable = lib.mkEnableOption "enable kdenlive";
|
||||
tsukimi.enable = lib.mkEnableOption "enable tsukimi (jellyfin client)";
|
||||
jellyfin.enable = lib.mkEnableOption "enable jellyin (jellyfin client)";
|
||||
pipeline.enable = lib.mkEnableOption "enable pipeline (you/peertube client)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
media.video = lib.mkIf config.media.video.enable {
|
||||
kdenlive.enable = lib.mkDefault true;
|
||||
mpv.enable = lib.mkDefault true;
|
||||
tsukimi.enable = lib.mkDefault true;
|
||||
jellyfin.enable = lib.mkDefault true;
|
||||
pipeline.enable = lib.mkDefault true;
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
(lib.mkIf (config.media.video.kdenlive.enable) kdePackages.kdenlive)
|
||||
(lib.mkIf (config.media.video.tsukimi.enable) tsukimi)
|
||||
(lib.mkIf (config.media.video.jellyfin.enable) jellyfin-desktop)
|
||||
(lib.mkIf (config.media.video.pipeline.enable) pipeline)
|
||||
];
|
||||
programs = {
|
||||
mpv = lib.mkIf config.media.video.mpv.enable {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
misc = {
|
||||
bitwarden.enable = lib.mkEnableOption "enable bitwarden";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.misc.bitwarden.enable {
|
||||
home.packages = with pkgs; [
|
||||
rbw
|
||||
pinentry-curses
|
||||
(lib.mkIf (config.desktop.rofi.enable) rofi-rbw)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./bitwarden.nix
|
||||
./syncthing.nix
|
||||
./secrets.nix
|
||||
./obsidian.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
misc = {
|
||||
obsidian.enable = lib.mkEnableOption "enable obsidian";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.misc.obsidian.enable {
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
pass
|
||||
gnome-keyring
|
||||
seahorse
|
||||
libsecret
|
||||
gcr
|
||||
];
|
||||
services.gnome-keyring.enable = true;
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
syncthing.devices = lib.mkOption {
|
||||
default = { };
|
||||
description = ''
|
||||
set syncthing devices
|
||||
'';
|
||||
};
|
||||
syncthing.folders = lib.mkOption {
|
||||
default = { };
|
||||
description = ''
|
||||
set syncthing folders
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
home.packages = with pkgs; [
|
||||
localsend
|
||||
];
|
||||
services = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
tray.enable = true;
|
||||
guiAddress = "0.0.0.0:8384";
|
||||
settings = {
|
||||
devices = config.syncthing.devices;
|
||||
folders = config.syncthing.folders;
|
||||
};
|
||||
overrideDevices = lib.mkIf (config.syncthing.devices == { }) false;
|
||||
overrideFolders = lib.mkIf (config.syncthing.folders == { }) false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -8,11 +8,11 @@
|
|||
{
|
||||
options = {
|
||||
domain = lib.mkOption {
|
||||
default = "example.com";
|
||||
default = "marty.tf";
|
||||
description = "set domain name";
|
||||
};
|
||||
email = lib.mkOption {
|
||||
default = "${config.main-user.userName}.${config.domain}";
|
||||
default = "${config.user.userName}@${config.domain}";
|
||||
description = "set email";
|
||||
};
|
||||
nginx = {
|
||||
|
|
|
|||
42
modules/system/boot.nix
Normal file
42
modules/system/boot.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
system = {
|
||||
autoUpgrade = {
|
||||
enable = false;
|
||||
allowReboot = false;
|
||||
};
|
||||
};
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
editor = false;
|
||||
};
|
||||
timeout = 3;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernel = {
|
||||
sysctl = {
|
||||
"vm.swappiness" = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
services = {
|
||||
dbus.implementation = "broker";
|
||||
};
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
18
modules/system/default.nix
Normal file
18
modules/system/default.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./boot.nix
|
||||
./shell.nix
|
||||
./networking.nix
|
||||
./localization.nix
|
||||
./fira-code.nix
|
||||
./nixos-cli.nix
|
||||
./ssh.nix
|
||||
];
|
||||
}
|
||||
10
modules/system/fira-code.nix
Normal file
10
modules/system/fira-code.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
environment.systemPackages = [ pkgs.nerd-fonts.fira-code ];
|
||||
}
|
||||
51
modules/system/localization.nix
Normal file
51
modules/system/localization.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
timezone = config.system.timezone;
|
||||
language = config.system.language;
|
||||
locale = config.system.locale;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
system = {
|
||||
timezone = lib.mkOption {
|
||||
default = "Europe/Berlin";
|
||||
description = "timezone";
|
||||
};
|
||||
language = lib.mkOption {
|
||||
default = "en_GB.UTF-8";
|
||||
description = "language";
|
||||
};
|
||||
locale = lib.mkOption {
|
||||
default = "de_DE.UTF-8";
|
||||
description = "locale";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
time.timeZone = timezone;
|
||||
i18n = {
|
||||
defaultLocale = language;
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = locale;
|
||||
LC_IDENTIFICATION = locale;
|
||||
LC_MEASUREMENT = locale;
|
||||
LC_MONETARY = locale;
|
||||
LC_NAME = locale;
|
||||
LC_NUMERIC = locale;
|
||||
LC_PAPER = locale;
|
||||
LC_TELEPHONE = locale;
|
||||
LC_TIME = locale;
|
||||
};
|
||||
};
|
||||
console.keyMap = builtins.substring 0 2 locale;
|
||||
};
|
||||
}
|
||||
41
modules/system/networking.nix
Normal file
41
modules/system/networking.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedUDPPorts = [
|
||||
config.services.tailscale.port
|
||||
53317
|
||||
16261
|
||||
16262
|
||||
];
|
||||
allowedTCPPorts = [
|
||||
53317
|
||||
16261
|
||||
16262
|
||||
];
|
||||
trustedInterfaces = [ "tailscale0" ];
|
||||
};
|
||||
};
|
||||
services = {
|
||||
tailscale = {
|
||||
enable = true;
|
||||
extraSetFlags = [
|
||||
"--ssh"
|
||||
];
|
||||
};
|
||||
};
|
||||
hardware = {
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
Experimental = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
}
|
||||
programs.nixos-cli.enable = true;
|
||||
}
|
||||
15
modules/system/shell.nix
Normal file
15
modules/system/shell.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
coreutils
|
||||
util-linux
|
||||
];
|
||||
};
|
||||
programs = {
|
||||
fish.enable = true;
|
||||
bash.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
}
|
||||
13
modules/system/ssh.nix
Normal file
13
modules/system/ssh.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = "no";
|
||||
PasswordAuthentication = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./kitty.nix
|
||||
./file-manager.nix
|
||||
./fish.nix
|
||||
./toys.nix
|
||||
|
||||
];
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
terminal = {
|
||||
ranger = {
|
||||
enable = lib.mkEnableOption "enable ranger";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.terminal.ranger.enable {
|
||||
programs = {
|
||||
ranger = {
|
||||
enable = true;
|
||||
extraPackages = [
|
||||
|
||||
];
|
||||
settings = {
|
||||
viewmode = "miller";
|
||||
column_ratios = "1,3,4";
|
||||
show_hidden = true;
|
||||
confirm_on_delete = "multiple";
|
||||
use_preview_script = true;
|
||||
automatically_count_files = true;
|
||||
open_all_images = true;
|
||||
vcs_aware = true;
|
||||
vcs_backend_git = "enabled";
|
||||
vcs_msg_length = 50;
|
||||
preview_images = true;
|
||||
preview_images_method = lib.mkIf config.terminal.kitty.enable "kitty";
|
||||
preview_files = true;
|
||||
preview_directories = true;
|
||||
collapse_preview = false;
|
||||
save_console_history = true;
|
||||
status_bar_on_top = false;
|
||||
draw_progress_bar_in_status_bar = true;
|
||||
draw_borders = "both";
|
||||
dirname_in_tabs = true;
|
||||
mouse_enabled = false;
|
||||
display_size_in_main_column = true;
|
||||
display_size_in_status_bar = true;
|
||||
display_free_space_in_status_bar = true;
|
||||
display_tags_in_all_columns = true;
|
||||
update_title = true;
|
||||
update_tmux_title = true;
|
||||
shorten_title = 10;
|
||||
hostname_in_titlebar = true;
|
||||
tilde_in_titlebar = false;
|
||||
max_history_size = 100;
|
||||
max_console_history_size = 200;
|
||||
scroll_offset = 8;
|
||||
flushinput = true;
|
||||
autosave_bookmarks = true;
|
||||
show_cursor = false;
|
||||
sort = "natural";
|
||||
sort_case_insensitive = true;
|
||||
sort_directories_first = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
unzip
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
terminal = {
|
||||
fish.enable = lib.mkEnableOption "enable fish";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.terminal.fish.enable {
|
||||
programs = {
|
||||
fish = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
terminal = {
|
||||
kitty.enable = lib.mkEnableOption "enable kitty";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.terminal.kitty.enable {
|
||||
programs = {
|
||||
kitty = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
shellIntegration = {
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
font = {
|
||||
name = "FiraCode Nerd Font";
|
||||
size = 16;
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
};
|
||||
settings = {
|
||||
include = "themes/noctalia.conf";
|
||||
wayland_titlebar_color = "system";
|
||||
macos_titlebar_color = "system";
|
||||
# The most important setting of the whole confiG
|
||||
|
||||
confirm_os_window_close = 0;
|
||||
|
||||
# Cursor
|
||||
|
||||
cursor_shape = "underline";
|
||||
|
||||
# Scrollback
|
||||
|
||||
scrollback_lines = 10000;
|
||||
|
||||
# Link Behaviour
|
||||
|
||||
url_style = "straight";
|
||||
open_url_with = "default";
|
||||
|
||||
# Layouts
|
||||
|
||||
remember_window_size = "no";
|
||||
enabled_layouts = "splits, tall";
|
||||
window_resize_step_cells = 3;
|
||||
window_resize_step_lines = 3;
|
||||
window_border_width = "3 pt";
|
||||
draw_minimal_borders = "yes";
|
||||
window_margin_width = 10;
|
||||
window_padding_width = 10;
|
||||
|
||||
# Borders/Appearance
|
||||
|
||||
inactive_text_alpha = 0.5;
|
||||
hide_window_decorations = "no";
|
||||
|
||||
# tab bar
|
||||
|
||||
tab_bar_min_tabs = 1;
|
||||
tab_bar_edge = "bottom";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "slanted";
|
||||
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
||||
};
|
||||
};
|
||||
};
|
||||
home.sessionVariables = {
|
||||
TERM = lib.mkDefault "xterm-kitty";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
terminal = {
|
||||
toys.enable = lib.mkEnableOption "enable terminal toys";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.terminal.toys.enable {
|
||||
home.packages = with pkgs; [
|
||||
asciiquarium-transparent
|
||||
cava
|
||||
bunnyfetch
|
||||
nerdfetch
|
||||
fastfetch
|
||||
cmatrix
|
||||
astroterm
|
||||
];
|
||||
};
|
||||
}
|
||||
47
modules/user/default.nix
Normal file
47
modules/user/default.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
user = {
|
||||
userName = lib.mkOption {
|
||||
default = "marty";
|
||||
description = ''
|
||||
main user name
|
||||
'';
|
||||
};
|
||||
shell = lib.mkOption {
|
||||
default = pkgs.fish;
|
||||
description = ''
|
||||
main user shell
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
users.users.${config.user.userName} = {
|
||||
isNormalUser = true;
|
||||
description = "${config.user.userName}";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"video"
|
||||
"audio"
|
||||
"render"
|
||||
"docker"
|
||||
];
|
||||
shell = config.user.shell;
|
||||
};
|
||||
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
wheelNeedsPassword = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue