nixos/system/hyprland.nix
Evie Litherland-Smith 077b04ca73 Remove teams-for-linux, update chromium config and add package
teams-for-linux seems to have support issues with new teams updates,
so switching to just using chromium as my browser as that should work
better

Add chromium package back, also waybar rewrite and window rules, set
as default browser for mimeapps

Update chromium configs; Add ManagedBookmarks and alphabetise the
other config options. Add ublock-origin, simplelogin and catppuccin
theme plugins
2024-04-03 11:02:26 +01:00

138 lines
3.7 KiB
Nix

{
lib,
pkgs,
...
}: {
imports = [./desktop.nix ./chromium.nix];
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
environment = {
sessionVariables = {
NIXOS_OZONE_WL = "1";
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP = "Hyprland";
XDG_CURRENT_DESKTOP = "Hyprland";
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
};
systemPackages = with pkgs; [
swaylock-effects
hyprpaper
xdg-utils
wtype
wl-clipboard
swayimg
pamixer
pavucontrol
playerctl
brightnessctl
mpv
streamlink
];
};
security.pam.services = {
swaylock = {};
hyprlock = {};
};
services = {
xserver.enable = false;
blueman.enable = true;
udisks2.enable = true;
tumbler.enable = true;
gvfs = {
enable = true;
package = lib.mkForce pkgs.gnome3.gvfs;
};
greetd.settings = let
command = "Hyprland";
in {
default_session = {inherit command;};
initial_session = {inherit command;};
};
};
xdg.portal.enable = true;
xdg.mime = let
emacs = ["emacsclient.desktop" "emacs.desktop"];
browser = ["chromium.desktop"];
applications = {
"inode/directory" = emacs;
"inode/symlink" = emacs;
"image/jpeg" = ["swayimg.desktop"] ++ emacs;
"image/png" = ["swayimg.desktop"] ++ emacs;
"video/mp4" = ["mpv.desktop"];
"text/plain" = emacs;
"text/richtext" = emacs;
"text/org" = emacs;
"text/markdown" = emacs;
"text/rust" = emacs;
"text/csv" = emacs;
"text/html" = emacs;
"text/css" = emacs;
"text/tab-separated-values" = emacs;
"text/x-emacs-lisp" = emacs;
"text/x-fortran" = emacs;
"text/x-idl" = emacs;
"text/x-log" = emacs;
"text/x-lua" = emacs;
"text/x-makefile" = emacs;
"text/x-python" = emacs;
"text/x-python3" = emacs;
"text/x-readme" = emacs;
"text/x-scheme" = emacs;
"text/x-tex" = emacs;
"text/x-texinfo" = emacs;
"application/json" = emacs;
"application/toml" = emacs;
"application/yaml" = emacs;
"application/xml" = emacs;
"application/pdf" = emacs;
"application/epub+zip" = emacs;
"application/rss+xml" = emacs;
"application/oxps" = emacs;
# "application/msword" = emacs;
"application/xhtml+xml" = browser;
"application/x-shellscript" = emacs;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xhtml" = browser;
"application/x-extension-xht" = browser;
"application/x-mozilla-bookmarks" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/webcal" = browser;
"x-scheme-handler/unknown" = emacs;
# "x-scheme-handler/ms-word" = emacs;
# "x-scheme-handler/ms-powerpoint" = emacs;
# "x-scheme-handler/ms-excel" = emacs;
# "x-scheme-handler/msteams" = ["teams-for-linux.desktop"];
};
in {
enable = true;
defaultApplications = applications;
addedAssociations = applications;
removedAssociations = {
"x-scheme-handler/msteams" = browser;
"x-scheme-handler/zoomus" = browser;
};
};
programs = {
dconf.enable = true;
light.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
};
hyprland = {
enable = true;
xwayland.enable = true;
};
};
}