Compare commits

...

2 Commits

Author SHA1 Message Date
98ac550582 Add some packages 2024-06-19 10:53:53 +02:00
c84146f761 Put functionalities into modules 2024-06-19 10:53:36 +02:00
9 changed files with 167 additions and 40 deletions

View File

@ -41,6 +41,7 @@
nix-helper.enable = true;
desktop.enable = true;
gammastep.enable = true;
};
home.packages =
@ -100,13 +101,6 @@
services.syncthing.enable = true;
services.gammastep = {
enable = true;
latitude = 47.92;
longitude = 10.12;
provider = "manual";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;

View File

@ -165,4 +165,5 @@ with pkgs;
frajul.edit-config
nheko
conda
]

View File

@ -26,6 +26,7 @@ in
];
config = lib.mkIf cfg.enable {
# systemd.user.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
prism = {
enable = true;
wallpapers = ./wallpapers;

View File

@ -65,6 +65,7 @@ in
black # python
unstable.rustfmt # rust
shfmt
pyright
graphviz
# Lsps for use with doom emacs

View File

@ -0,0 +1,41 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
host,
...
}:
with lib;
let
cfg = config.modules.gammastep;
in
{
options.modules.gammastep = {
enable = mkOption { default = false; };
};
config = mkIf cfg.enable {
services.gammastep = {
enable = true;
latitude = 47.92;
longitude = 10.12;
provider = "manual";
};
};
}

View File

@ -0,0 +1,37 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
let
cfg = config.modules.hyprland;
in
{
options.modules.hyprland = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
programs.hyprland.enable = true;
programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland;
programs.hyprland.xwayland.enable = true;
security.pam.services.hyprlock = { };
};
}

View File

@ -0,0 +1,42 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
let
cfg = config.modules.thunar;
in
{
options.modules.thunar = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
programs.thunar.enable = true;
programs.xfconf.enable = true; # Persist saved preferences
programs.thunar.plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
thunar-media-tags-plugin
];
services.gvfs.enable = true; # Mount, trash, and other functionalities
services.tumbler.enable = true; # Thumbnail support for images
};
}

View File

@ -0,0 +1,39 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
let
cfg = config.modules.wayland;
in
{
options.modules.wayland = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Hint electron apps to use wayland
environment.systemPackages = with pkgs; [
kdePackages.qtwayland
wl-clipboard
];
};
}

View File

@ -66,14 +66,11 @@
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Set location used by redshift
location.provider = "manual";
location.latitude = 47.92;
location.longitude = 10.12;
modules = {
locales.enable = true;
# greetd.enable = true;
thunar.enable = true;
wayland.enable = true;
hyprland.enable = true;
};
nix.settings.auto-optimise-store = true;
@ -121,9 +118,7 @@
# services.xserver.windowManager.i3.enable = true;
# services.xserver.windowManager.i3.package = pkgs.i3-gaps;
programs.hyprland.enable = true;
programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland;
programs.hyprland.xwayland.enable = true;
programs.kdeconnect.enable = true;
# Configure keymap in X11
services.xserver = {
@ -159,8 +154,6 @@
};
};
security.pam.services.hyprlock = { };
# Sound
security.rtkit.enable = true;
services.pipewire = {
@ -246,18 +239,8 @@
# };
# };
# x11 only, for wayland use gammastep (home-manager)
# services.redshift.enable = true;
services.flatpak.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Hint electron apps to use wayland
# TODO: connect with desktop home manager module
environment.variables = {
GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
};
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
# hyprland desktop portal added automatically
@ -275,24 +258,12 @@
htop
mc
xorg.xhost
kdePackages.qtwayland
pavucontrol
frajul.pulseaudio-popup
gparted-xhost # needs to be installed as system package so it can be actually opened
wl-clipboard
xclip
];
programs.thunar.enable = true;
programs.xfconf.enable = true; # Persist saved preferences
programs.thunar.plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
thunar-media-tags-plugin
];
services.gvfs.enable = true; # Mount, trash, and other functionalities
services.tumbler.enable = true; # Thumbnail support for images
virtualisation.docker.enable = true;
virtualisation.virtualbox.host.enable = true;