nix/home/tiling/default.nix

183 lines
5.7 KiB
Nix

{ pkgs, config, ... }:
{
imports = [
# ./hyprland.nix
./niri.nix
./noctalia.nix
./wallpaper.nix
];
home.packages = with pkgs; [
xdg-desktop-portal
brightnessctl
qt6Packages.qt6ct
libsForQt5.qt5ct
catppuccin-qt5ct
xwayland-satellite
playerctl
];
programs.fuzzel = {
enable = true;
package = pkgs.fuzzel;
settings = {
main = {
terminal = "${pkgs.kitty}/bin/kitty";
layer = "overlay";
font = with config.userOptions.fontMono; name + ":size=" + toString (size + 2);
launch-prefix = "${pkgs.niri}/bin/niri msg action spawn --";
icon-theme = config.gtk.iconTheme.name;
};
border = {
width = 2;
radius = 8;
};
colors = with config.scheme; {
background = base00 + "ff";
text = base05 + "ff";
prompt = base04 + "ff";
placeholder = base04 + "ff";
input = base05 + "ff";
match = config.scheme.withHashtag.${config.colors.accent} + "ff";
selection = base04 + "ff";
selection-text = base00 + "ff";
counter = base04 + "ff";
border = config.scheme.withHashtag.${config.colors.accent} + "ff";
};
};
};
programs.swaylock = with config.scheme; {
enable = true;
package = pkgs.swaylock;
settings = {
# this would sometimes load the previous day's wallpaper
# when it is run before the bing retrieval script finishes
# image = "~/.local/share/wallpaper/daily-colored.jpg";
# effect-blur = "7x5";
color = "000000"; # black
font-size = 24;
indicator-idle-visible = true;
indicator-radius = 100;
show-failed-attempts = true;
bs-hl-color = base09; # peach
caps-lock-bs-hl-color = base09; # peach
caps-lock-key-hl-color = base0E; # mauve
inside-color = base00; # base
inside-clear-color = base00; # base
inside-caps-lock-color = base00; # base
inside-ver-color = base00; # base
inside-wrong-color = base00; # base
key-hl-color = base0D; # blue
layout-bg-color = base00; # base
layout-border-color = base00; # base
layout-text-color = base05; # text
line-color = base00; # base
line-clear-color = base00; # base
line-caps-lock-color = base00; # base
line-ver-color = base00; # base
line-wrong-color = base00; # base
ring-color = base00; # base
ring-clear-color = base09; # peach
ring-caps-lock-color = base00; # base
ring-ver-color = base0B; # green
ring-wrong-color = base00; # base
separator-color = "00000000"; # transparent
text-color = base05; # text
text-clear-color = base09; # peach
text-caps-lock-color = base0E; # mauve
text-ver-color = base05; # text
text-wrong-color = base08; # red
};
};
systemd.user.services.swaylock = {
Unit = {
After = [ "niri.service" ];
PartOf = [ "niri.service" ];
Description = "Screen locker";
Documentation = "https://github.com/swaywm/swaylock";
};
Service = {
ExecStart = "${pkgs.swaylock}/bin/swaylock";
Restart = "on-failure";
};
Install.WantedBy = [ "niri.service" ];
};
xsession = {
enable = true;
windowManager.command = "niri";
};
xdg.mimeApps = {
enable = true;
associations.added = {
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
"x-scheme-handler/spotify" = [ "riff.desktop" ];
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
"image/png" = [ "loupe.desktop" ];
"image/jpeg" = [ "loupe.desktop" ];
};
defaultApplications = {
# Web
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
"text/html" = [ "firefox.desktop" ];
# Communication & Social
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
"x-scheme-handler/spotify" = [ "riff.desktop" ];
# File Management
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
# Torrents
"application/x-bittorrent" = [ "org.qbittorrent.qBittorrent.desktop" ];
"x-scheme-handler/magnet" = [ "org.qbittorrent.qBittorrent.desktop" ];
# Documents
"application/pdf" = [ "firefox.desktop" ]; # Or libreoffice-draw.desktop
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = [
"libreoffice-writer.desktop"
]; # docx
"application/msword" = [ "libreoffice-writer.desktop" ]; # doc
"application/vnd.oasis.opendocument.text" = [ "libreoffice-writer.desktop" ]; # odt
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = [
"libreoffice-calc.desktop"
]; # xlsx
"application/vnd.ms-excel" = [ "libreoffice-calc.desktop" ]; # xls
"application/vnd.oasis.opendocument.spreadsheet" = [ "libreoffice-calc.desktop" ]; # ods
# Text & Code
"text/plain" = [ "nvim.desktop" ];
"text/markdown" = [ "nvim.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" ];
"application/json" = [ "nvim.desktop" ];
"text/x-c" = [ "nvim.desktop" ];
"text/x-c++" = [ "nvim.desktop" ];
"text/x-python" = [ "nvim.desktop" ];
"text/x-makefile" = [ "nvim.desktop" ];
# Media
"video/mp4" = [ "mpv.desktop" ];
"video/mkv" = [ "mpv.desktop" ];
"video/webm" = [ "mpv.desktop" ];
"audio/mpeg" = [ "mpv.desktop" ];
"audio/flac" = [ "mpv.desktop" ];
"audio/wav" = [ "mpv.desktop" ];
# Images
"image/png" = [ "loupe.desktop" ];
"image/jpeg" = [ "loupe.desktop" ];
"image/webp" = [ "loupe.desktop" ];
"image/gif" = [ "loupe.desktop" ];
};
};
}