239 lines
6.2 KiB
Nix
239 lines
6.2 KiB
Nix
|
{ config, pkgs, lib, inputs, ... }:
|
||
|
let
|
||
|
cfg = config.kyouma.graphical;
|
||
|
in {
|
||
|
options = {
|
||
|
kyouma.graphical = {
|
||
|
enable = lib.mkEnableOption "graphical profile";
|
||
|
compositor = lib.mkOption {
|
||
|
type = with lib.types; nullOr (enum [ "hyprland" "niri" ]);
|
||
|
default = null;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
imports = [
|
||
|
inputs.stylix.nixosModules.stylix
|
||
|
./files.nix
|
||
|
./hyprland.nix
|
||
|
./waybar-hyprland.nix
|
||
|
./hyprlock.nix
|
||
|
./nixvim.nix
|
||
|
];
|
||
|
|
||
|
config = lib.mkIf cfg.enable {
|
||
|
|
||
|
kyouma.machine-type.graphical = true;
|
||
|
|
||
|
boot.plymouth.enable = true;
|
||
|
|
||
|
security.pam.services.hyprlock = {};
|
||
|
|
||
|
services.dbus.packages = [ pkgs.gcr ];
|
||
|
services.geoclue2.enable = true;
|
||
|
|
||
|
services.pipewire = {
|
||
|
enable = true;
|
||
|
alsa.enable = true;
|
||
|
pulse.enable = true;
|
||
|
};
|
||
|
|
||
|
services.udisks2.enable = true;
|
||
|
|
||
|
environment.variables = {
|
||
|
CLUTTER_BACKEND = "wayland";
|
||
|
GDK_BACKEND = "wayland,x11";
|
||
|
MOZ_ENABLE_WAYLAND = "1";
|
||
|
QT_QPA_PLATFORM = "wayland;xcb";
|
||
|
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||
|
SDL_VIDEODRIVER = "wayland";
|
||
|
LIBVA_DRIVER_NAME = "radeonsi";
|
||
|
MESA_VK_DEVICE_SELECT = "1002:73df";
|
||
|
WLR_DRM_DEVICES = "$HOME/.config/hypr/external-gpu:$HOME/.config/hypr/internal-gpu";
|
||
|
};
|
||
|
xdg.icons.enable = true;
|
||
|
xdg.portal = {
|
||
|
enable = true;
|
||
|
wlr.enable = true;
|
||
|
configPackages = [ (if cfg.compositor == "hyprland"
|
||
|
then pkgs.xdg-desktop-portal-hyprland
|
||
|
else pkgs.xdg-desktop-portal-wlr
|
||
|
) ];
|
||
|
};
|
||
|
|
||
|
stylix= {
|
||
|
image = pkgs.fetchurl {
|
||
|
url = "https://kyouma.net/wallpaper.png";
|
||
|
sha256 = "1f46b439a864cd28b8ea93563b4762f1efb2648bae0148fd6b45f3033b10b0e8";
|
||
|
};
|
||
|
polarity = "dark";
|
||
|
#base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
|
||
|
fonts = {
|
||
|
sansSerif = {
|
||
|
package = pkgs.noto-fonts;
|
||
|
name = "Noto Sans";
|
||
|
};
|
||
|
serif = config.stylix.fonts.sansSerif;
|
||
|
monospace = {
|
||
|
package = pkgs.jetbrains-mono;
|
||
|
name = "JetBrains Mono Regular";
|
||
|
};
|
||
|
sizes.terminal = 11;
|
||
|
};
|
||
|
cursor = {
|
||
|
package = pkgs.capitaine-cursors;
|
||
|
name = "capitaine";
|
||
|
size = 24;
|
||
|
};
|
||
|
targets = {
|
||
|
console.enable = false;
|
||
|
gnome.enable = true;
|
||
|
fish.enable = false;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
home-manager.users.emily = {
|
||
|
stylix.targets = {
|
||
|
hyprland.enable = false;
|
||
|
sway.enable = false;
|
||
|
kitty.enable = false;
|
||
|
mako.enable = false;
|
||
|
rofi.enable = false;
|
||
|
swaylock.enable = false;
|
||
|
waybar.enable = false;
|
||
|
nixvim.enable = false;
|
||
|
fish.enable = false;
|
||
|
};
|
||
|
home.keyboard = {
|
||
|
layout = "de";
|
||
|
variant = "neo_qwerty";
|
||
|
};
|
||
|
|
||
|
programs.imv.enable = true;
|
||
|
|
||
|
programs.wpaperd = {
|
||
|
enable = true;
|
||
|
settings.default = {
|
||
|
path = "/home/emily/Pictures/wallpapers/sylviaritter/";
|
||
|
duration = "60m";
|
||
|
sorting = "random";
|
||
|
};
|
||
|
};
|
||
|
programs.kitty = {
|
||
|
enable = true;
|
||
|
font.size = 13;
|
||
|
font.name = "JetBrains Mono";
|
||
|
settings = {
|
||
|
enable_audio_bell = false;
|
||
|
scrollback_lines = 65536;
|
||
|
remember_window_size = false;
|
||
|
initial_window_width = 1200;
|
||
|
initial_window_height = 800;
|
||
|
|
||
|
bold_font = "auto";
|
||
|
italic_font = "auto";
|
||
|
bold_italic_font = "auto";
|
||
|
|
||
|
background = "#090312";
|
||
|
background_opacity = "0.7";
|
||
|
};
|
||
|
keybindings = {
|
||
|
"shift+right" = "next_tab";
|
||
|
"ctrl+l" = "next_tab";
|
||
|
"shift+left" = "previous_tab";
|
||
|
"ctrl+h" = "previous_tab";
|
||
|
};
|
||
|
};
|
||
|
programs.rofi = {
|
||
|
enable = true;
|
||
|
package = pkgs.rofi-wayland;
|
||
|
};
|
||
|
|
||
|
programs.zoxide = {
|
||
|
enable = true;
|
||
|
options = [ "--cmd cd" ];
|
||
|
};
|
||
|
programs.fzf.enable = true;
|
||
|
|
||
|
qt = {
|
||
|
enable = true;
|
||
|
platformTheme.name = "qtct";
|
||
|
style.name = "kvantum-dark";
|
||
|
style.package = with pkgs; [
|
||
|
libsForQt5.qtstyleplugin-kvantum
|
||
|
qt6Packages.qtstyleplugin-kvantum
|
||
|
(catppuccin-kvantum.override { accent = "Mauve"; variant = "Macchiato"; })
|
||
|
];
|
||
|
};
|
||
|
gtk.iconTheme.name = "Adwaita";
|
||
|
gtk.iconTheme.package = pkgs.gnome.adwaita-icon-theme;
|
||
|
|
||
|
services.gammastep = {
|
||
|
enable = true;
|
||
|
provider = "geoclue2";
|
||
|
temperature.day = 6500;
|
||
|
temperature.night = 3700;
|
||
|
settings.general.adjustment-method = "wayland";
|
||
|
};
|
||
|
services.mako = {
|
||
|
enable = true;
|
||
|
anchor = "top-right";
|
||
|
backgroundColor = "#24273a";
|
||
|
borderColor = "#c6a0f6";
|
||
|
borderRadius = 15;
|
||
|
borderSize = 2;
|
||
|
defaultTimeout = 5000;
|
||
|
layer = "overlay";
|
||
|
maxIconSize = 48;
|
||
|
padding = "15";
|
||
|
progressColor = "over #B4A1DB";
|
||
|
sort = "-time";
|
||
|
textColor = "#cad3f5";
|
||
|
extraConfig = ''
|
||
|
max-history=100
|
||
|
on-button-left=dismiss
|
||
|
on-button-right=dismiss-all
|
||
|
on-notify=exec ${pkgs.mpv}/bin/mpv /usr/share/sounds/freedesktop/stereo/message.oga
|
||
|
|
||
|
[urgency=low]
|
||
|
border-color=#B4A1DB
|
||
|
default-timeout=2000
|
||
|
|
||
|
[urgency=normal]
|
||
|
border-color=#B4A1DB
|
||
|
default-timeout=5000
|
||
|
|
||
|
[urgency=high]
|
||
|
border-color=#D04E9D
|
||
|
text-color=#D04E9D
|
||
|
default-timeout=0
|
||
|
|
||
|
[category=mpd]
|
||
|
border-color=#E49186
|
||
|
default-timeout=2000
|
||
|
group-by=category
|
||
|
'';
|
||
|
};
|
||
|
services.gpg-agent = {
|
||
|
enable = true;
|
||
|
enableSshSupport = true;
|
||
|
pinentryPackage = pkgs.pinentry-gnome3;
|
||
|
};
|
||
|
services.syncthing = {
|
||
|
enable = true;
|
||
|
tray.enable = true;
|
||
|
tray.command = "syncthingtray --replace";
|
||
|
};
|
||
|
services.udiskie = {
|
||
|
enable = true;
|
||
|
automount = false;
|
||
|
};
|
||
|
systemd.user.services.syncthingtray.Service = {
|
||
|
ExecStartPre = "${pkgs.coreutils-full}/bin/sleep 2";
|
||
|
Restart = "on-failure";
|
||
|
RestartSec = "1s";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|