Mime types + move some packages around
This commit is contained in:
@ -28,7 +28,7 @@ rec {
|
|||||||
../modules
|
../modules
|
||||||
|
|
||||||
# inputs.nixvim.homeManagerModules.nixvim
|
# inputs.nixvim.homeManagerModules.nixvim
|
||||||
# inputs.hyprland.homeManagerModules.default # NOTE: Use System module, this one doesn't (can't) add the SDDM entry
|
# inputs.hyprland.homeManagerModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
@ -264,7 +264,6 @@ rec {
|
|||||||
# exa # ls in cool (enabled as program)
|
# exa # ls in cool (enabled as program)
|
||||||
# delta # diffier diff differ (enabled as program)
|
# delta # diffier diff differ (enabled as program)
|
||||||
# fzf # fuzzy find (enabled as program in fish module)
|
# fzf # fuzzy find (enabled as program in fish module)
|
||||||
procs # Better ps
|
|
||||||
tokei # Text file statistics in a project
|
tokei # Text file statistics in a project
|
||||||
rsync # cp on steroids
|
rsync # cp on steroids
|
||||||
rclone # Rsync for cloud
|
rclone # Rsync for cloud
|
||||||
@ -291,7 +290,6 @@ rec {
|
|||||||
lazygit # can always use another git client
|
lazygit # can always use another git client
|
||||||
geteltorito # extreact boot image from iso
|
geteltorito # extreact boot image from iso
|
||||||
gitbatch # overview over multiple repos
|
gitbatch # overview over multiple repos
|
||||||
mprocs # run multiple processes in single terminal window, screen alternative
|
|
||||||
# TODO: Maybe general document/typesetting module?
|
# TODO: Maybe general document/typesetting module?
|
||||||
graphviz # generate graphs from code
|
graphviz # generate graphs from code
|
||||||
xdot # .dot file viewer
|
xdot # .dot file viewer
|
||||||
@ -307,14 +305,13 @@ rec {
|
|||||||
# TODO: Programming languages module
|
# TODO: Programming languages module
|
||||||
alejandra # nix code formatter
|
alejandra # nix code formatter
|
||||||
nil # nix language server
|
nil # nix language server
|
||||||
parted # partition manager
|
|
||||||
libnotify
|
libnotify
|
||||||
procps # pgrep, pkill
|
|
||||||
inotifyTools # inotifywait etc.
|
inotifyTools # inotifywait etc.
|
||||||
atool # Archive preview
|
atool # Archive preview
|
||||||
ffmpegthumbnailer # Video thumbnails
|
ffmpegthumbnailer # Video thumbnails
|
||||||
mediainfo
|
mediainfo
|
||||||
tree # Folder preview
|
tree # Folder preview
|
||||||
|
# gnome.zenity # Popups from terminal
|
||||||
|
|
||||||
# Xooooorg/Desktop environment stuff
|
# Xooooorg/Desktop environment stuff
|
||||||
# xclip
|
# xclip
|
||||||
|
@ -74,7 +74,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Polkit
|
# Polkit
|
||||||
home.file.".config/hypr/polkit.conf".text = ''exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-agent-1 &'';
|
home.file.".config/hypr/polkit.conf".text = ''exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1'';
|
||||||
|
|
||||||
home.file.".config/hypr/waybar-reload.conf".text = let
|
home.file.".config/hypr/waybar-reload.conf".text = let
|
||||||
waybar-reload = pkgs.writeScript "waybar-reload" ''
|
waybar-reload = pkgs.writeScript "waybar-reload" ''
|
||||||
@ -122,9 +122,10 @@ in {
|
|||||||
clipman # Clipboard manager (wl-paste)
|
clipman # Clipboard manager (wl-paste)
|
||||||
|
|
||||||
imv # Image viewer
|
imv # Image viewer
|
||||||
|
moc # Audio player
|
||||||
|
ncpamixer # ncurses pavucontrol
|
||||||
slurp # Region selector for screensharing
|
slurp # Region selector for screensharing
|
||||||
grim # Grab images from compositor
|
grim # Grab images from compositor
|
||||||
ncpamixer # ncurses pavucontrol
|
|
||||||
|
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
xfce.tumbler # Thunar thumbnails
|
xfce.tumbler # Thunar thumbnails
|
||||||
@ -145,9 +146,10 @@ in {
|
|||||||
plugins = [
|
plugins = [
|
||||||
pkgs.keepmenu # TODO: Rofi KeepassXC frontend
|
pkgs.keepmenu # TODO: Rofi KeepassXC frontend
|
||||||
];
|
];
|
||||||
terminal = "${pkgs.kitty}/bin/kitty";
|
|
||||||
|
|
||||||
font = "JetBrains Mono 14";
|
# NOTE: Don't use this, use the configfile for hot-reload
|
||||||
|
# terminal = "${pkgs.kitty}/bin/kitty";
|
||||||
|
# font = "JetBrains Mono 14";
|
||||||
# theme =
|
# theme =
|
||||||
# extraConfig = '''';
|
# extraConfig = '''';
|
||||||
};
|
};
|
||||||
|
@ -243,6 +243,7 @@
|
|||||||
|
|
||||||
trustedInterfaces = [
|
trustedInterfaces = [
|
||||||
"podman0"
|
"podman0"
|
||||||
|
"docker0"
|
||||||
];
|
];
|
||||||
|
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [
|
||||||
@ -297,20 +298,93 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# XDG
|
# XDG
|
||||||
# NOTE: I think only the fitting portal is required
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = with pkgs; [
|
extraPortals = with pkgs; [
|
||||||
# xdg-desktop-portal-wlr # For wlroots based desktops
|
# xdg-desktop-portal-wlr # For wlroots based desktops
|
||||||
# xdg-desktop-portal-hyprland # Already enabled by hyprland system module
|
# xdg-desktop-portal-hyprland # Already enabled by hyprland system module
|
||||||
# xdg-desktop-portal-kde
|
# xdg-desktop-portal-kde
|
||||||
# xdg-desktop-portal-gtk # TODO: Keep for GTK apps? E.g. for font antialiasing?
|
xdg-desktop-portal-gtk # TODO: Keep for GTK apps? E.g. for font antialiasing? Might be required for flatpak GTK apps?
|
||||||
# xdg-desktop-portal-gnome # Gnome
|
# xdg-desktop-portal-gnome # Gnome
|
||||||
xdg-desktop-portal-termfilechooser # Filepicker using nnn
|
# xdg-desktop-portal-termfilechooser # Filepicker using nnn
|
||||||
];
|
];
|
||||||
# gtkUsePortal = true; # Deprecated, don't use (gdm takes ages to load and other fishy stuff)
|
# gtkUsePortal = true; # Deprecated, don't use (gdm takes ages to load and other fishy stuff)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
|
||||||
|
xdg.mime = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# TODO: This stuff depends on the used desktop...should I use a complementary system module for each DE?
|
||||||
|
addedAssociations = {
|
||||||
|
"application/pdf" = "zathura.desktop";
|
||||||
|
"application/x-sh" = "helix.desktop";
|
||||||
|
"application/xhtml+xml" = "helix.desktop";
|
||||||
|
"application/xml" = "helix.desktop";
|
||||||
|
|
||||||
|
"image/bmp" = "imv.desktop";
|
||||||
|
"image/jpeg" = "imv.desktop";
|
||||||
|
"image/png" = "imv.desktop";
|
||||||
|
"image/svg+xml" = "imv.desktop";
|
||||||
|
"image/tiff" = "imv.desktop";
|
||||||
|
"image/webp" = "imv.desktop";
|
||||||
|
|
||||||
|
"video/mp2t" = "mpv.desktop";
|
||||||
|
"video/mp4" = "mpv.desktop";
|
||||||
|
"video/mpeg" = "mpv.desktop";
|
||||||
|
"video/ogg" = "mpv.desktop";
|
||||||
|
"video/webm" = "mpv.desktop";
|
||||||
|
"video/x-msvideo" = "mpv.desktop";
|
||||||
|
|
||||||
|
"text/css" = "helix.desktop";
|
||||||
|
"text/csv" = "helix.desktop";
|
||||||
|
"text/javascript" = "helix.desktop";
|
||||||
|
"text/json" = "helix.desktop";
|
||||||
|
"text/plain" = "helix.desktop";
|
||||||
|
"text/xml" = "helix.desktop";
|
||||||
|
|
||||||
|
"audio/mpeg" = "moc.desktop";
|
||||||
|
"audio/ogg" = "moc.desktop";
|
||||||
|
"audio/opus" = "moc.desktop";
|
||||||
|
"audio/wav" = "moc.desktop";
|
||||||
|
"audio/webm" = "moc.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultApplications = {
|
||||||
|
"application/pdf" = "zathura.desktop";
|
||||||
|
"application/x-sh" = "helix.desktop";
|
||||||
|
"application/xhtml+xml" = "helix.desktop";
|
||||||
|
"application/xml" = "helix.desktop";
|
||||||
|
|
||||||
|
"image/bmp" = "imv.desktop";
|
||||||
|
"image/jpeg" = "imv.desktop";
|
||||||
|
"image/png" = "imv.desktop";
|
||||||
|
"image/svg+xml" = "imv.desktop";
|
||||||
|
"image/tiff" = "imv.desktop";
|
||||||
|
"image/webp" = "imv.desktop";
|
||||||
|
|
||||||
|
"video/mp2t" = "mpv.desktop";
|
||||||
|
"video/mp4" = "mpv.desktop";
|
||||||
|
"video/mpeg" = "mpv.desktop";
|
||||||
|
"video/ogg" = "mpv.desktop";
|
||||||
|
"video/webm" = "mpv.desktop";
|
||||||
|
"video/x-msvideo" = "mpv.desktop";
|
||||||
|
|
||||||
|
"text/css" = "helix.desktop";
|
||||||
|
"text/csv" = "helix.desktop";
|
||||||
|
"text/javascript" = "helix.desktop";
|
||||||
|
"text/json" = "helix.desktop";
|
||||||
|
"text/plain" = "helix.desktop";
|
||||||
|
"text/xml" = "helix.desktop";
|
||||||
|
|
||||||
|
"audio/mpeg" = "moc.desktop";
|
||||||
|
"audio/ogg" = "moc.desktop";
|
||||||
|
"audio/opus" = "moc.desktop";
|
||||||
|
"audio/wav" = "moc.desktop";
|
||||||
|
"audio/webm" = "moc.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
sound.enable = false; # Alsa, seems to conflict with PipeWire
|
sound.enable = false; # Alsa, seems to conflict with PipeWire
|
||||||
hardware.pulseaudio.enable = false; # Get off my lawn
|
hardware.pulseaudio.enable = false; # Get off my lawn
|
||||||
@ -397,7 +471,7 @@
|
|||||||
];
|
];
|
||||||
shell = pkgs.fish; # TODO: Is this needed if programs.fish.enable = true?
|
shell = pkgs.fish; # TODO: Is this needed if programs.fish.enable = true?
|
||||||
# We do this with HomeManager
|
# We do this with HomeManager
|
||||||
packages = with pkgs; [];
|
# packages = with pkgs; [];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Generate a list of installed system packages in /etc/current-system-packages
|
# Generate a list of installed system packages in /etc/current-system-packages
|
||||||
@ -411,9 +485,13 @@
|
|||||||
# We want these packages to be available even when no user profile is active
|
# We want these packages to be available even when no user profile is active
|
||||||
# Empty since we basically only need git + editor which is enabled below
|
# Empty since we basically only need git + editor which is enabled below
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
killall
|
|
||||||
wireguard-tools
|
|
||||||
iw
|
iw
|
||||||
|
mprocs # run multiple processes in single terminal window, screen alternative
|
||||||
|
parted # partition manager
|
||||||
|
procs # Better ps
|
||||||
|
procps # pgrep, pkill
|
||||||
|
slirp4netns # user network namespaces
|
||||||
|
wireguard-tools
|
||||||
];
|
];
|
||||||
|
|
||||||
# NOTE: Gnome
|
# NOTE: Gnome
|
||||||
@ -500,19 +578,25 @@
|
|||||||
docker = {
|
docker = {
|
||||||
enable = false;
|
enable = false;
|
||||||
autoPrune.enable = true;
|
autoPrune.enable = true;
|
||||||
|
|
||||||
|
rootless = {
|
||||||
|
enable = true;
|
||||||
|
setSocketVariable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
podman = {
|
podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoPrune.enable = true;
|
autoPrune.enable = true;
|
||||||
dockerCompat = true;
|
dockerCompat = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
defaultNetwork.settings.dns_enabled = true;
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [];
|
# extraPackages = with pkgs; [];
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: This (or even single containers) should have their own system modules
|
# TODO: This (or even single containers) should have their own system modules
|
||||||
oci-containers.backend = "podman";
|
oci-containers.backend = "podman"; # "docker" or "podman"
|
||||||
oci-containers.containers = {
|
oci-containers.containers = {
|
||||||
jellyfin = {
|
jellyfin = {
|
||||||
image = "linuxserver/jellyfin";
|
image = "linuxserver/jellyfin";
|
||||||
|
Reference in New Issue
Block a user