Manage mimeapps via home-manager

This commit is contained in:
2026-02-04 17:15:27 -08:00
committed by Kat Huang
parent b7fd7e60ba
commit d3d7eb3586
4 changed files with 68 additions and 24 deletions

View File

@@ -5,6 +5,7 @@ makeEnable config "myModules.desktop" true {
./fonts.nix
./hyprland.nix
./keyd.nix
./xremap.nix
];
services.xserver = {
@@ -62,6 +63,7 @@ makeEnable config "myModules.desktop" true {
kdePackages.dolphin
feh
gthumb
firefox
cheese
kdePackages.kleopatra
@@ -82,8 +84,7 @@ makeEnable config "myModules.desktop" true {
simplescreenrecorder
skippy-xd
synergy
# TODO: reenable
# transmission_3-gtk
transmission_4-gtk
vlc
thunar

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, lib, nixos, ... }:
{
# Automatic garbage collection of old home-manager generations
nix.gc = {
@@ -20,6 +20,38 @@
static_history = []
'';
xdg.mimeApps = lib.mkIf nixos.config.myModules.desktop.enable {
enable = true;
associations.added = {
"video/x-matroska" = "vlc.desktop";
"audio/flac" = "vlc.desktop";
"image/jpeg" = "feh.desktop";
"video/x-msvideo" = "vlc.desktop";
"text/vnd.trolltech.linguist" = "vlc.desktop";
"audio/mpeg" = "vlc.desktop";
"application/pdf" = "okularApplication_pdf.desktop";
"image/png" = "okularApplication_kimgio.desktop";
"video/mp4" = [ "vlc.desktop" "org.gnome.Totem.desktop" ];
"x-scheme-handler/magnet" = "userapp-transmission-gtk-24GQLZ.desktop";
"element" = "element-desktop.desktop";
};
defaultApplications = {
"text/html" = "google-chrome.desktop";
"x-scheme-handler/http" = "google-chrome.desktop";
"x-scheme-handler/https" = "google-chrome.desktop";
"x-scheme-handler/about" = "google-chrome.desktop";
"x-scheme-handler/unknown" = "google-chrome.desktop";
"x-scheme-handler/magnet" = "userapp-transmission-gtk-24GQLZ.desktop";
"x-scheme-handler/element" = "element-desktop.desktop";
};
defaultApplicationPackages = [
pkgs.gthumb
];
};
xsession = {
enable = true;
preferStatusNotifierItems = true;

32
nixos/xremap.nix Normal file
View File

@@ -0,0 +1,32 @@
{ config, lib, pkgs, makeEnable, ... }:
makeEnable config "myModules.xremap" true {
hardware.uinput.enable = true;
boot.kernelModules = [ "uinput" ];
services.udev.extraRules = lib.mkAfter ''
KERNEL=="uinput", GROUP="input", TAG+="uaccess"
'';
environment.etc."xremap/config.yml".text = ''
keymap:
- name: Chrome emacs-ish
application:
only: [Google-chrome, Google-chrome-stable, google-chrome, Chromium, chromium]
remap:
C-a: Home
C-e: End
Alt-b: C-Left
Alt-f: C-Right
'';
environment.systemPackages = [ pkgs.xremap ];
systemd.user.services.xremap = {
description = "xremap key remapper";
wantedBy = [ "default.target" ];
serviceConfig = {
ExecStart = "${pkgs.xremap}/bin/xremap /etc/xremap/config.yml --watch";
Restart = "on-failure";
};
};
}