149 lines
3.3 KiB
Nix
149 lines
3.3 KiB
Nix
# Copyright 2025 Emile Clark-Boman
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
pkgs-unstable,
|
|
...
|
|
} @ args: let
|
|
getModule = name: "../modules/homemanager/${name}.nix";
|
|
getModules = map (x: getModule x);
|
|
in {
|
|
imports = getModules [
|
|
"term/foot"
|
|
"editor/vscode"
|
|
|
|
"wm/hyprland"
|
|
"wm/hyprland/hyprlock"
|
|
|
|
"dm/sddm"
|
|
"dm/sddm/themes/corners"
|
|
|
|
"apps/firefox"
|
|
"apps/thunderbird"
|
|
"apps/obsidian"
|
|
"apps/rider"
|
|
"apps/winbox"
|
|
"apps/gitkraken"
|
|
"apps/thunar"
|
|
|
|
"wm/kanshi"
|
|
"wm/mako"
|
|
];
|
|
|
|
home = {
|
|
pointerCursor = {
|
|
gtk.enable = true;
|
|
# x11.enable = true # dont enable since im on hyprland
|
|
package = pkgs.bibata-cursors;
|
|
name = "Bibata-Modern-Ice";
|
|
size = 16;
|
|
};
|
|
|
|
packages = with pkgs; [
|
|
# for services.gnome-keyring
|
|
(
|
|
if config.cerulean.isGraphical
|
|
then seahorse # gui
|
|
else null
|
|
)
|
|
|
|
fuzzel
|
|
];
|
|
};
|
|
|
|
gtk = {
|
|
enable = true;
|
|
font.name = "Victor Mono SemiBold 12";
|
|
theme = {
|
|
name = "Dracula";
|
|
package = pkgs.dracula-theme;
|
|
};
|
|
iconTheme = {
|
|
name = "kora";
|
|
package = pkgs.kora-icon-theme;
|
|
};
|
|
# TODO: use a variable to mirror this cursor size
|
|
# with the `home.pointerCurser.size`
|
|
cursorTheme = {
|
|
package = pkgs.bibata-cursors;
|
|
name = "Bibata-Modern-Ice";
|
|
size = 16;
|
|
};
|
|
};
|
|
|
|
qt = {
|
|
enable = true;
|
|
platformTheme.name = "gtk2";
|
|
style.name = "gtk2";
|
|
};
|
|
|
|
services = {
|
|
# Set display manager (login screen)
|
|
displayManager = {
|
|
# sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects
|
|
sddm = {
|
|
enable = true;
|
|
wayland.enable = true; # experimental
|
|
theme = "corners";
|
|
};
|
|
defaultSession =
|
|
"hyprland"
|
|
+ (
|
|
if config.programs.hyprland.withUWSM
|
|
then "-uwsm"
|
|
else null
|
|
);
|
|
};
|
|
|
|
# Multimedia Framework
|
|
# With backwards compatability for alsa/pulseaudio/jack
|
|
pipewire = {
|
|
enable = true;
|
|
wireplumber.enable = true;
|
|
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
jack.enable = true;
|
|
};
|
|
};
|
|
|
|
# ---- ENVIRONMENT ----
|
|
environment = {
|
|
sessionVariables = {
|
|
# Hint Electron apps to use support Wayland
|
|
NIXOS_OZONE_WL = "1";
|
|
};
|
|
};
|
|
|
|
# ---- SYSTEM PACKAGES ----
|
|
environment.systemPackages = with pkgs; [
|
|
# User Environment
|
|
swww
|
|
helvum
|
|
easyeffects
|
|
pavucontrol
|
|
hyprpicker # colour picking utility
|
|
hyprshot # screenshot utility
|
|
qbittorrent
|
|
signal-desktop # MAKE THIS ONLY FOR THE DESKTOP FOR END USERS, NOT SERVERS
|
|
kdePackages.gwenview # image viewer
|
|
libreoffice
|
|
wl-clipboard # clipboard for wayland
|
|
];
|
|
|
|
security.rtkit.enable = true; # I *think* this is for pipewire
|
|
}
|