treewide: restructure modules

make every module contain config attribute
and if module doesn't use module arguments,
don't make it a function
This commit is contained in:
Wroclaw 2025-04-07 12:54:34 +02:00
parent 4dab0aff15
commit 27b241adff
10 changed files with 490 additions and 477 deletions

View file

@ -4,44 +4,46 @@
imports = [
./unstable-packages.nix
];
users.users.wroclaw = {
isNormalUser = true;
description = "Rafał";
group = "wroclaw";
extraGroups = [
"users"
"wheel"
] ++ lib.optional config.programs.adb.enable "adbusers";
linger = true;
initialPassword = "nixos";
packages = with pkgs; [
firefox
(vivaldi.override {
proprietaryCodecs = true;
commandLineArgs = [ "--ozone-platform=wayland" ];
})
vesktop
unstablePkgs.vscode
gimp
inkscape
jitsi-meet-electron
krita
telegram-desktop
unstablePkgs.zettlr
];
};
users.groups.wroclaw.gid = 1000;
config = {
users.users.wroclaw = {
isNormalUser = true;
description = "Rafał";
group = "wroclaw";
extraGroups = [
"users"
"wheel"
] ++ lib.optional config.programs.adb.enable "adbusers";
linger = true;
initialPassword = "nixos";
packages = with pkgs; [
firefox
(vivaldi.override {
proprietaryCodecs = true;
commandLineArgs = [ "--ozone-platform=wayland" ];
})
vesktop
unstablePkgs.vscode
gimp
inkscape
jitsi-meet-electron
krita
telegram-desktop
unstablePkgs.zettlr
];
};
users.groups.wroclaw.gid = 1000;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
services.syncthing = {
enable = true;
user = "wroclaw";
group = "wroclaw";
dataDir = "/home/wroclaw";
configDir = "/home/wroclaw/.config/syncthing";
services.syncthing = {
enable = true;
user = "wroclaw";
group = "wroclaw";
dataDir = "/home/wroclaw";
configDir = "/home/wroclaw/.config/syncthing";
};
};
}

View file

@ -10,78 +10,80 @@
./module-overrides.nix
./nix.nix
];
config = {
# kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# Enable networking
networking.networkmanager.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
nix = {
channel.enable = false;
settings.experimental-features = [
"no-url-literals"
];
nixPath = [
"nixpkgs=${pkgs.selfExpr { useConfig = false; }}"
"systemNixpkgs=${pkgs.selfExpr { useConfig = true; name = "systemNixpkgs-self"; }}"
# don't garbage collect the nixpkgs input
"inputsNixpkgs=${inputs.nixpkgs}"
"nixos-system=/etc/nixos/default.nix"
];
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
waypipe
wget
ffmpeg
yt-dlp
htop
btop
fastfetch
smartmontools
ddrescue
];
programs.git.enable = true;
programs.git.config = {
commit.verbose = true;
init.defaultBranch = "main";
merge.conflictstyle = "diff3";
rerere.enabled = true;
};
# Use nix-index for command-not-found handler
programs.command-not-found.enable = false;
programs.nix-index = {
package = pkgs.nix-index.override {
nix-index-unwrapped = pkgs.nix-index-unwrapped.overrideAttrs (oldAttrs: {
patches = oldAttrs.patches or [] ++ [
../pkgs/by-name/ni/nix-index/cnfOutput.patch
];
});
# Enable networking
networking.networkmanager.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
nix = {
channel.enable = false;
settings.experimental-features = [
"no-url-literals"
];
nixPath = [
"nixpkgs=${pkgs.selfExpr { useConfig = false; }}"
"systemNixpkgs=${pkgs.selfExpr { useConfig = true; name = "systemNixpkgs-self"; }}"
# don't garbage collect the nixpkgs input
"inputsNixpkgs=${inputs.nixpkgs}"
"nixos-system=/etc/nixos/default.nix"
];
};
enable = true;
enableBashIntegration = true;
};
# Enable fail2ban because of the OpenSSH server
services.fail2ban = {
enable = true;
maxretry = 10;
bantime = "7d";
};
# Enable the OpenSSH daemon.
services.openssh = {
enable = true;
ports = [
22
8022
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
waypipe
wget
ffmpeg
yt-dlp
htop
btop
fastfetch
smartmontools
ddrescue
];
programs.git.enable = true;
programs.git.config = {
commit.verbose = true;
init.defaultBranch = "main";
merge.conflictstyle = "diff3";
rerere.enabled = true;
};
# Use nix-index for command-not-found handler
programs.command-not-found.enable = false;
programs.nix-index = {
package = pkgs.nix-index.override {
nix-index-unwrapped = pkgs.nix-index-unwrapped.overrideAttrs (oldAttrs: {
patches = oldAttrs.patches or [] ++ [
../pkgs/by-name/ni/nix-index/cnfOutput.patch
];
});
};
enable = true;
enableBashIntegration = true;
};
# Enable fail2ban because of the OpenSSH server
services.fail2ban = {
enable = true;
maxretry = 10;
bantime = "7d";
};
# Enable the OpenSSH daemon.
services.openssh = {
enable = true;
ports = [
22
8022
];
};
};
}

View file

@ -1,39 +1,41 @@
{ lib, config, pkgs, ... }:
{
config.virtualisation.docker = {
enable = true;
enableOnBoot = true;
storageDriver = if config.fileSystems."/".fsType == "btrfs" then "btrfs" else null;
rootless.enable = true;
rootless.setSocketVariable = true;
daemon.settings = {
default-address-pools = [
{base = "10.64.0.0/10"; size = 24;}
];
bip = "10.127.0.1/16";
config = {
virtualisation.docker = {
enable = true;
enableOnBoot = true;
storageDriver = if config.fileSystems."/".fsType == "btrfs" then "btrfs" else null;
rootless.enable = true;
rootless.setSocketVariable = true;
daemon.settings = {
default-address-pools = [
{base = "10.64.0.0/10"; size = 24;}
];
bip = "10.127.0.1/16";
};
};
users.users.indocker = {
isSystemUser = true;
hashedPassword = "!";
uid = 900;
group = "indocker";
};
users.groups.indocker = {
gid = 900;
};
environment.systemPackages = with pkgs; [
docker-compose
];
# Docker enables firewall anyway, let's enable the firewall for it if it's disabled
# TODO: Apply only when config.networking.firewall is false
networking.firewall = {
enable = lib.mkOverride 90 true;
allowedTCPPorts = lib.mkOverride 90 [];
allowedUDPPorts = lib.mkOverride 90 [];
allowedTCPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}];
allowedUDPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}];
};
};
config.users.users.indocker = {
isSystemUser = true;
hashedPassword = "!";
uid = 900;
group = "indocker";
};
config.users.groups.indocker = {
gid = 900;
};
config.environment.systemPackages = with pkgs; [
docker-compose
];
# Docker enables firewall anyway, let's enable the firewall for it if it's disabled
# TODO: Apply only when config.networking.firewall is false
config.networking.firewall = {
enable = lib.mkOverride 90 true;
allowedTCPPorts = lib.mkOverride 90 [];
allowedUDPPorts = lib.mkOverride 90 [];
allowedTCPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}];
allowedUDPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}];
};
}

View file

@ -1,5 +1,3 @@
{ ... }:
{
config = {
# Set your time zone.

View file

@ -1,28 +1,30 @@
{ config, lib, pkgs, ...}:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# Workaround for nvidia driver ghost display
boot.kernelParams = [ "nvidia_drm.fbdev=1" ];
services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "570.133.07";
sha256_64bit = "sha256-LUPmTFgb5e9VTemIixqpADfvbUX1QoTT2dztwI3E3CY=";
sha256_aarch64 = "sha256-yTovUno/1TkakemRlNpNB91U+V04ACTMwPEhDok7jI0=";
openSha256 = "sha256-9l8N83Spj0MccA8+8R1uqiXBS0Ag4JrLPjrU3TaXHnM=";
settingsSha256 = "sha256-XMk+FvTlGpMquM8aE8kgYK2PIEszUZD2+Zmj2OpYrzU=";
persistencedSha256 = "sha256-G1V7JtHQbfnSRfVjz/LE2fYTlh9okpCbE4dfX9oYSg8=";
config = {
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# Workaround for nvidia driver ghost display
boot.kernelParams = [ "nvidia_drm.fbdev=1" ];
services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "570.133.07";
sha256_64bit = "sha256-LUPmTFgb5e9VTemIixqpADfvbUX1QoTT2dztwI3E3CY=";
sha256_aarch64 = "sha256-yTovUno/1TkakemRlNpNB91U+V04ACTMwPEhDok7jI0=";
openSha256 = "sha256-9l8N83Spj0MccA8+8R1uqiXBS0Ag4JrLPjrU3TaXHnM=";
settingsSha256 = "sha256-XMk+FvTlGpMquM8aE8kgYK2PIEszUZD2+Zmj2OpYrzU=";
persistencedSha256 = "sha256-G1V7JtHQbfnSRfVjz/LE2fYTlh9okpCbE4dfX9oYSg8=";
};
};
nixpkgs.config.nvidia.acceptLicense = true;
};
nixpkgs.config.nvidia.acceptLicense = true;
}

View file

@ -1,44 +1,44 @@
{ ... }:
{
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
polkit.log("action=" + action);
polkit.log("subject=" + subject);
if (
action.id == "org.freedesktop.login1.halt" ||
action.id == "org.freedesktop.login1.halt-ignore-inhibit" ||
action.id == "org.freedesktop.login1.halt-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.login1.inhibit-block-idle" ||
action.id == "org.freedesktop.login1.inhibit-block-shutdown" ||
action.id == "org.freedesktop.login1.inhibit-block-sleep" ||
action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" ||
action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" ||
action.id == "org.freedesktop.login1.inhibit-handle-power-key" ||
action.id == "org.freedesktop.login1.inhibit-handle-reboot-key" ||
action.id == "org.freedesktop.login1.inhibit-handle-suspend-key" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-ignore-inhibit" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-ignore-inhibit" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.set-reboot-parameter" ||
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-entry" ||
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-menu" ||
action.id == "org.freedesktop.login1.set-reboot-to-firmware-setup" ||
action.id == "org.freedesktop.login1.set-self-linger" ||
action.id == "org.freedesktop.login1.set-user-linger" ||
action.id == "org.freedesktop.login1.set-wall-message" ||
action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-ignore-inhibit" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions"
) {
return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO;
};
});
'';
config = {
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
polkit.log("action=" + action);
polkit.log("subject=" + subject);
if (
action.id == "org.freedesktop.login1.halt" ||
action.id == "org.freedesktop.login1.halt-ignore-inhibit" ||
action.id == "org.freedesktop.login1.halt-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.login1.inhibit-block-idle" ||
action.id == "org.freedesktop.login1.inhibit-block-shutdown" ||
action.id == "org.freedesktop.login1.inhibit-block-sleep" ||
action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" ||
action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" ||
action.id == "org.freedesktop.login1.inhibit-handle-power-key" ||
action.id == "org.freedesktop.login1.inhibit-handle-reboot-key" ||
action.id == "org.freedesktop.login1.inhibit-handle-suspend-key" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-ignore-inhibit" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-ignore-inhibit" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.set-reboot-parameter" ||
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-entry" ||
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-menu" ||
action.id == "org.freedesktop.login1.set-reboot-to-firmware-setup" ||
action.id == "org.freedesktop.login1.set-self-linger" ||
action.id == "org.freedesktop.login1.set-user-linger" ||
action.id == "org.freedesktop.login1.set-wall-message" ||
action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-ignore-inhibit" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions"
) {
return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO;
};
});
'';
};
}

View file

@ -18,29 +18,31 @@
})
];
hardware.openrazer = {
enable = true;
users = [
"wroclaw"
];
# NIXPKGS-PR: 384992
packages = let
oldVersion = pkgs.python3Packages.openrazer-daemon.version;
version = "3.10.1";
in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: {
version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version;
src = pkgs.fetchFromGitHub {
owner = "openrazer";
repo = "openrazer";
tag = "v${version}";
hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU=";
config = {
hardware.openrazer = {
enable = true;
users = [
"wroclaw"
];
# NIXPKGS-PR: 384992
packages = let
oldVersion = pkgs.python3Packages.openrazer-daemon.version;
version = "3.10.1";
in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: {
version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version;
src = pkgs.fetchFromGitHub {
owner = "openrazer";
repo = "openrazer";
tag = "v${version}";
hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU=";
};
})) {
kernel = config.boot.kernelPackages.openrazer;
daemon = pkgs.python3Packages.openrazer-daemon;
};
})) {
kernel = config.boot.kernelPackages.openrazer;
daemon = pkgs.python3Packages.openrazer-daemon;
};
environment.systemPackages = with pkgs; [
polychromatic
];
};
environment.systemPackages = with pkgs; [
polychromatic
];
}

View file

@ -25,136 +25,139 @@ in
imports = [
./unstable-packages.nix
];
environment.systemPackages = with pkgs; [
aliasDrag
rangerGit
ripgrep
kitty
zoxide
];
programs.bash.shellInit = ''
HISTCONTROL=ignoreboth
'';
config = {
environment.systemPackages = with pkgs; [
aliasDrag
rangerGit
ripgrep
kitty
zoxide
];
programs.bash.interactiveShellInit = ''
HISTCONTROL=ignoreboth
if test -n "$KITTY_INSTALLATION_DIR"; then
export KITTY_SHELL_INTEGRATION="enabled,no-sudo"
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"
fi
eval "''$(zoxide init bash)"
alias bye=exit
'';
programs.bash.shellInit = ''
HISTCONTROL=ignoreboth
'';
environment.etc."xdg/kitty/kitty.conf".text = ''
font_family MesloLGS Nerd Font
font_size 10.0
scrollback_lines 10000
window_border_width 0.5
window_padding_width 3
${if config.services.xserver.desktopManager.gnome.enable then "hide_window_decorations yes" else ""}
background_opacity 0.8
dynamic_background_opacity yes
programs.bash.interactiveShellInit = ''
HISTCONTROL=ignoreboth
if test -n "$KITTY_INSTALLATION_DIR"; then
export KITTY_SHELL_INTEGRATION="enabled,no-sudo"
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"
fi
eval "''$(zoxide init bash)"
alias bye=exit
'';
map kitty_mod+alt+c copy_ansi_to_clipboard
'';
environment.etc."xdg/kitty/kitty.conf".text = ''
font_family MesloLGS Nerd Font
font_size 10.0
scrollback_lines 10000
window_border_width 0.5
window_padding_width 3
${if config.services.xserver.desktopManager.gnome.enable then "hide_window_decorations yes" else ""}
background_opacity 0.8
dynamic_background_opacity yes
environment.etc."ranger/rc.conf".text = ''
eval import os; fm.set_option_from_string("preview_images", "true") if "KITTY_INSTALLATION_DIR" in os.environ else None;
eval import os; fm.set_option_from_string("preview_images_method", "kitty") if "KITTY_INSTALLATION_DIR" in os.environ else None;
set vcs_aware true
set show_hidden true
map kitty_mod+alt+c copy_ansi_to_clipboard
'';
alias drag shell ${pkgs.ripdrag}/bin/ripdrag -Axd %p &
map <C-d> drag
'';
environment.etc."ranger/rc.conf".text = ''
eval import os; fm.set_option_from_string("preview_images", "true") if "KITTY_INSTALLATION_DIR" in os.environ else None;
eval import os; fm.set_option_from_string("preview_images_method", "kitty") if "KITTY_INSTALLATION_DIR" in os.environ else None;
set vcs_aware true
set show_hidden true
environment.etc."ranger/plugins/zoxide.py".source = pkgs.fetchFromGitHub {
owner = "jchook";
repo = "ranger-zoxide";
rev = "281828de060299f73fe0b02fcabf4f2f2bd78ab3";
hash = "sha256-JEuyYSVa1NS3aftezEJx/k19lwwzf7XhqBCL0jH6VT4=";
} + /__init__.py;
alias drag shell ${pkgs.ripdrag}/bin/ripdrag -Axd %p &
map <C-d> drag
'';
programs.direnv.enable = true;
environment.etc."ranger/plugins/zoxide.py".source = pkgs.fetchFromGitHub {
owner = "jchook";
repo = "ranger-zoxide";
rev = "281828de060299f73fe0b02fcabf4f2f2bd78ab3";
hash = "sha256-JEuyYSVa1NS3aftezEJx/k19lwwzf7XhqBCL0jH6VT4=";
} + /__init__.py;
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
configure = {
customRC = ''
set number
set hlsearch
set incsearch
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
set updatetime=500
colorscheme vim
programs.direnv.enable = true;
syntax on
set encoding=utf-8
set wildmode=longest,list,full
set listchars=space:·,tab:»
set indentkeys-=0#
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
configure = {
customRC = ''
set number
set hlsearch
set incsearch
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
set updatetime=500
colorscheme vim
" rainbow-delimeters-nvim
let g:rainbow_delimiters = {
\ 'strategy': {
\ ${"''"}: rainbow_delimiters#strategy.global,
\ },
\ }
syntax on
set encoding=utf-8
set wildmode=longest,list,full
set listchars=space:·,tab:»
set indentkeys-=0#
" vim-gitguter
set signcolumn=yes
highlight SignColumn NONE
highlight GitGutterAdd ctermfg=2 guifg=#2ea043
highlight GitGutterChange ctermfg=4 guifg=#0078d4
highlight GitGutterDelete ctermfg=1 guifg=#f85149
" rainbow-delimeters-nvim
let g:rainbow_delimiters = {
\ 'strategy': {
\ ${"''"}: rainbow_delimiters#strategy.global,
\ },
\ }
lua require('guess-indent').setup {}
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [
guess-indent-nvim
vim-visual-multi
autoclose-nvim
rainbow-delimiters-nvim
vimagit
vim-gitgutter
];
" vim-gitguter
set signcolumn=yes
highlight SignColumn NONE
highlight GitGutterAdd ctermfg=2 guifg=#2ea043
highlight GitGutterChange ctermfg=4 guifg=#0078d4
highlight GitGutterDelete ctermfg=1 guifg=#f85149
lua require('guess-indent').setup {}
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [
guess-indent-nvim
vim-visual-multi
autoclose-nvim
rainbow-delimiters-nvim
vimagit
vim-gitgutter
];
};
};
};
};
environment.variables = lib.mkIf config.programs.neovim.enable rec {
EDITOR = "/run/current-system/sw/bin/nvim";
VISUAL = EDITOR;
};
environment.variables = lib.mkIf config.programs.neovim.enable rec {
EDITOR = "/run/current-system/sw/bin/nvim";
VISUAL = EDITOR;
};
programs.starship = {
enable = true;
settings = {
format = "$all$line_break\${custom.ranger}$jobs$battery$time$status$os$container$shell$character";
directory = {
truncation_length = 5;
truncation_symbol = "/";
};
hostname = {
ssh_only = false;
};
username = {
show_always = true;
};
status.disabled = false;
custom.ranger = {
when = "test $RANGER_LEVEL";
command = "echo \"\"";
style = "bold 208";
programs.starship = {
enable = true;
settings = {
format = "$all$line_break\${custom.ranger}$jobs$battery$time$status$os$container$shell$character";
directory = {
truncation_length = 5;
truncation_symbol = "/";
};
hostname = {
ssh_only = false;
};
username = {
show_always = true;
};
status.disabled = false;
custom.ranger = {
when = "test $RANGER_LEVEL";
command = "echo \"\"";
style = "bold 208";
};
};
};
};

View file

@ -2,15 +2,17 @@
{ lib, config, pkgs, ... }:
{
#virtualisation.waydroid.enable = true;
programs.virt-manager.enable = true;
virtualisation.libvirtd = {
enable = true;
qemu.ovmf = {
config = {
#virtualisation.waydroid.enable = true;
programs.virt-manager.enable = true;
virtualisation.libvirtd = {
enable = true;
packages = [
pkgs.OVMFFull.fd
];
qemu.ovmf = {
enable = true;
packages = [
pkgs.OVMFFull.fd
];
};
};
};
}

View file

@ -1,137 +1,137 @@
{ ... }:
{
xdg.mime.enable = true;
xdg.mime.defaultApplications = {
# Browser
"x-scheme-handler/http" = "vivaldi-stable.desktop";
"application/xhtml+xml" = "vivaldi-stable.desktop";
"text/html" = "vivaldi-stable.desktop";
"x-scheme-handler/https" = "vivaldi-stable.desktop";
"application/pdf" = "vivaldi-stable.desktop";
config = {
xdg.mime.enable = true;
xdg.mime.defaultApplications = {
# Browser
"x-scheme-handler/http" = "vivaldi-stable.desktop";
"application/xhtml+xml" = "vivaldi-stable.desktop";
"text/html" = "vivaldi-stable.desktop";
"x-scheme-handler/https" = "vivaldi-stable.desktop";
"application/pdf" = "vivaldi-stable.desktop";
# Audio
"audio/aiff" = "mpv.desktop";
"audio/basic" = "mpv.desktop";
"audio/it" = "mpv.desktop";
"audio/make" = "mpv.desktop";
"audio/make.my.funk" = "mpv.desktop";
"audio/mid" = "mpv.desktop";
"audio/midi" = "mpv.desktop";
"audio/mod" = "mpv.desktop";
"audio/mpeg" = "mpv.desktop";
"audio/mpeg3" = "mpv.desktop";
"audio/nspaudio" = "mpv.desktop";
"audio/s3m" = "mpv.desktop";
"audio/tsp-audio" = "mpv.desktop";
"audio/tsplayer" = "mpv.desktop";
"audio/vnd.qcelp" = "mpv.desktop";
"audio/voc" = "mpv.desktop";
"audio/voxware" = "mpv.desktop";
"audio/wav" = "mpv.desktop";
"audio/x-adpcm" = "mpv.desktop";
"audio/x-aiff" = "mpv.desktop";
"audio/x-au" = "mpv.desktop";
"audio/x-gsm" = "mpv.desktop";
"audio/x-jam" = "mpv.desktop";
"audio/x-liveaudio" = "mpv.desktop";
"audio/x-mid" = "mpv.desktop";
"audio/x-midi" = "mpv.desktop";
"audio/x-mod" = "mpv.desktop";
"audio/x-mpeg" = "mpv.desktop";
"audio/x-mpeg-3" = "mpv.desktop";
"audio/x-mpequrl" = "mpv.desktop";
"audio/x-nspaudio" = "mpv.desktop";
"audio/x-pn-realaudio" = "mpv.desktop";
"audio/x-pn-realaudio-plugin" = "mpv.desktop";
"audio/x-psid" = "mpv.desktop";
"audio/x-realaudio" = "mpv.desktop";
"audio/x-twinvq" = "mpv.desktop";
"audio/x-twinvq-plugin" = "mpv.desktop";
"audio/x-vnd.audioexplosion.mjuicemediafile" = "mpv.desktop";
"audio/x-voc" = "mpv.desktop";
"audio/x-wav" = "mpv.desktop";
"audio/xm" = "mpv.desktop";
# Audio
"audio/aiff" = "mpv.desktop";
"audio/basic" = "mpv.desktop";
"audio/it" = "mpv.desktop";
"audio/make" = "mpv.desktop";
"audio/make.my.funk" = "mpv.desktop";
"audio/mid" = "mpv.desktop";
"audio/midi" = "mpv.desktop";
"audio/mod" = "mpv.desktop";
"audio/mpeg" = "mpv.desktop";
"audio/mpeg3" = "mpv.desktop";
"audio/nspaudio" = "mpv.desktop";
"audio/s3m" = "mpv.desktop";
"audio/tsp-audio" = "mpv.desktop";
"audio/tsplayer" = "mpv.desktop";
"audio/vnd.qcelp" = "mpv.desktop";
"audio/voc" = "mpv.desktop";
"audio/voxware" = "mpv.desktop";
"audio/wav" = "mpv.desktop";
"audio/x-adpcm" = "mpv.desktop";
"audio/x-aiff" = "mpv.desktop";
"audio/x-au" = "mpv.desktop";
"audio/x-gsm" = "mpv.desktop";
"audio/x-jam" = "mpv.desktop";
"audio/x-liveaudio" = "mpv.desktop";
"audio/x-mid" = "mpv.desktop";
"audio/x-midi" = "mpv.desktop";
"audio/x-mod" = "mpv.desktop";
"audio/x-mpeg" = "mpv.desktop";
"audio/x-mpeg-3" = "mpv.desktop";
"audio/x-mpequrl" = "mpv.desktop";
"audio/x-nspaudio" = "mpv.desktop";
"audio/x-pn-realaudio" = "mpv.desktop";
"audio/x-pn-realaudio-plugin" = "mpv.desktop";
"audio/x-psid" = "mpv.desktop";
"audio/x-realaudio" = "mpv.desktop";
"audio/x-twinvq" = "mpv.desktop";
"audio/x-twinvq-plugin" = "mpv.desktop";
"audio/x-vnd.audioexplosion.mjuicemediafile" = "mpv.desktop";
"audio/x-voc" = "mpv.desktop";
"audio/x-wav" = "mpv.desktop";
"audio/xm" = "mpv.desktop";
# Video
"video/animaflex" = "mpv.desktop";
"video/avi" = "mpv.desktop";
"video/avs-video" = "mpv.desktop";
"video/dl" = "mpv.desktop";
"video/fli" = "mpv.desktop";
"video/gl" = "mpv.desktop";
"video/mpeg" = "mpv.desktop";
"video/msvideo" = "mpv.desktop";
"video/quicktime" = "mpv.desktop";
"video/vdo" = "mpv.desktop";
"video/vivo" = "mpv.desktop";
"video/vnd.rn-realvideo" = "mpv.desktop";
"video/vnd.vivo" = "mpv.desktop";
"video/vosaic" = "mpv.desktop";
"video/x-amt-demorun" = "mpv.desktop";
"video/x-amt-showrun" = "mpv.desktop";
"video/x-atomic3d-feature" = "mpv.desktop";
"video/x-dl" = "mpv.desktop";
"video/x-dv" = "mpv.desktop";
"video/x-fli" = "mpv.desktop";
"video/x-gl" = "mpv.desktop";
"video/x-isvideo" = "mpv.desktop";
"video/x-motion-jpeg" = "mpv.desktop";
"video/x-mpeg" = "mpv.desktop";
"video/x-mpeq2a" = "mpv.desktop";
"video/x-ms-asf" = "mpv.desktop";
"video/x-ms-asf-plugin" = "mpv.desktop";
"video/x-msvideo" = "mpv.desktop";
"video/x-qtc" = "mpv.desktop";
"video/x-scm" = "mpv.desktop";
"video/x-sgi-movie" = "mpv.desktop";
# Video
"video/animaflex" = "mpv.desktop";
"video/avi" = "mpv.desktop";
"video/avs-video" = "mpv.desktop";
"video/dl" = "mpv.desktop";
"video/fli" = "mpv.desktop";
"video/gl" = "mpv.desktop";
"video/mpeg" = "mpv.desktop";
"video/msvideo" = "mpv.desktop";
"video/quicktime" = "mpv.desktop";
"video/vdo" = "mpv.desktop";
"video/vivo" = "mpv.desktop";
"video/vnd.rn-realvideo" = "mpv.desktop";
"video/vnd.vivo" = "mpv.desktop";
"video/vosaic" = "mpv.desktop";
"video/x-amt-demorun" = "mpv.desktop";
"video/x-amt-showrun" = "mpv.desktop";
"video/x-atomic3d-feature" = "mpv.desktop";
"video/x-dl" = "mpv.desktop";
"video/x-dv" = "mpv.desktop";
"video/x-fli" = "mpv.desktop";
"video/x-gl" = "mpv.desktop";
"video/x-isvideo" = "mpv.desktop";
"video/x-motion-jpeg" = "mpv.desktop";
"video/x-mpeg" = "mpv.desktop";
"video/x-mpeq2a" = "mpv.desktop";
"video/x-ms-asf" = "mpv.desktop";
"video/x-ms-asf-plugin" = "mpv.desktop";
"video/x-msvideo" = "mpv.desktop";
"video/x-qtc" = "mpv.desktop";
"video/x-scm" = "mpv.desktop";
"video/x-sgi-movie" = "mpv.desktop";
# Image
"image/bmp" = "qimgv.desktop";
"image/cmu-raster" = "qimgv.desktop";
"image/fif" = "qimgv.desktop";
"image/florian" = "qimgv.desktop";
"image/g3fax" = "qimgv.desktop";
"image/gif" = "qimgv.desktop";
"image/ief" = "qimgv.desktop";
"image/jpeg" = "qimgv.desktop";
"image/jutvision" = "qimgv.desktop";
"image/naplps" = "qimgv.desktop";
"image/pict" = "qimgv.desktop";
"image/pjpeg" = "qimgv.desktop";
"image/png" = "qimgv.desktop";
"image/tiff" = "qimgv.desktop";
"image/vasa" = "qimgv.desktop";
"image/vnd.dwg" = "qimgv.desktop";
"image/vnd.fpx" = "qimgv.desktop";
"image/vnd.net-fpx" = "qimgv.desktop";
"image/vnd.rn-realflash" = "qimgv.desktop";
"image/vnd.rn-realpix" = "qimgv.desktop";
"image/vnd.wap.wbmp" = "qimgv.desktop";
"image/vnd.xiff" = "qimgv.desktop";
"image/x-cmu-raster" = "qimgv.desktop";
"image/x-dwg" = "qimgv.desktop";
"image/x-icon" = "qimgv.desktop";
"image/x-jg" = "qimgv.desktop";
"image/x-jps" = "qimgv.desktop";
"image/x-niff" = "qimgv.desktop";
"image/x-pcx" = "qimgv.desktop";
"image/x-pict" = "qimgv.desktop";
"image/x-portable-anymap" = "qimgv.desktop";
"image/x-portable-bitmap" = "qimgv.desktop";
"image/x-portable-graymap" = "qimgv.desktop";
"image/x-portable-greymap" = "qimgv.desktop";
"image/x-portable-pixmap" = "qimgv.desktop";
"image/x-quicktime" = "qimgv.desktop";
"image/x-rgb" = "qimgv.desktop";
"image/x-tiff" = "qimgv.desktop";
"image/x-windows-bmp" = "qimgv.desktop";
"image/x-xbitmap" = "qimgv.desktop";
"image/x-xbm" = "qimgv.desktop";
"image/x-xpixmap" = "qimgv.desktop";
"image/x-xwd" = "qimgv.desktop";
"image/x-xwindowdump" = "qimgv.desktop";
"image/xbm" = "qimgv.desktop";
"image/xpm" = "qimgv.desktop";
# Image
"image/bmp" = "qimgv.desktop";
"image/cmu-raster" = "qimgv.desktop";
"image/fif" = "qimgv.desktop";
"image/florian" = "qimgv.desktop";
"image/g3fax" = "qimgv.desktop";
"image/gif" = "qimgv.desktop";
"image/ief" = "qimgv.desktop";
"image/jpeg" = "qimgv.desktop";
"image/jutvision" = "qimgv.desktop";
"image/naplps" = "qimgv.desktop";
"image/pict" = "qimgv.desktop";
"image/pjpeg" = "qimgv.desktop";
"image/png" = "qimgv.desktop";
"image/tiff" = "qimgv.desktop";
"image/vasa" = "qimgv.desktop";
"image/vnd.dwg" = "qimgv.desktop";
"image/vnd.fpx" = "qimgv.desktop";
"image/vnd.net-fpx" = "qimgv.desktop";
"image/vnd.rn-realflash" = "qimgv.desktop";
"image/vnd.rn-realpix" = "qimgv.desktop";
"image/vnd.wap.wbmp" = "qimgv.desktop";
"image/vnd.xiff" = "qimgv.desktop";
"image/x-cmu-raster" = "qimgv.desktop";
"image/x-dwg" = "qimgv.desktop";
"image/x-icon" = "qimgv.desktop";
"image/x-jg" = "qimgv.desktop";
"image/x-jps" = "qimgv.desktop";
"image/x-niff" = "qimgv.desktop";
"image/x-pcx" = "qimgv.desktop";
"image/x-pict" = "qimgv.desktop";
"image/x-portable-anymap" = "qimgv.desktop";
"image/x-portable-bitmap" = "qimgv.desktop";
"image/x-portable-graymap" = "qimgv.desktop";
"image/x-portable-greymap" = "qimgv.desktop";
"image/x-portable-pixmap" = "qimgv.desktop";
"image/x-quicktime" = "qimgv.desktop";
"image/x-rgb" = "qimgv.desktop";
"image/x-tiff" = "qimgv.desktop";
"image/x-windows-bmp" = "qimgv.desktop";
"image/x-xbitmap" = "qimgv.desktop";
"image/x-xbm" = "qimgv.desktop";
"image/x-xpixmap" = "qimgv.desktop";
"image/x-xwd" = "qimgv.desktop";
"image/x-xwindowdump" = "qimgv.desktop";
"image/xbm" = "qimgv.desktop";
"image/xpm" = "qimgv.desktop";
};
};
}