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:
parent
4dab0aff15
commit
27b241adff
10 changed files with 490 additions and 477 deletions
|
@ -4,44 +4,46 @@
|
||||||
imports = [
|
imports = [
|
||||||
./unstable-packages.nix
|
./unstable-packages.nix
|
||||||
];
|
];
|
||||||
users.users.wroclaw = {
|
config = {
|
||||||
isNormalUser = true;
|
users.users.wroclaw = {
|
||||||
description = "Rafał";
|
isNormalUser = true;
|
||||||
group = "wroclaw";
|
description = "Rafał";
|
||||||
extraGroups = [
|
group = "wroclaw";
|
||||||
"users"
|
extraGroups = [
|
||||||
"wheel"
|
"users"
|
||||||
] ++ lib.optional config.programs.adb.enable "adbusers";
|
"wheel"
|
||||||
linger = true;
|
] ++ lib.optional config.programs.adb.enable "adbusers";
|
||||||
initialPassword = "nixos";
|
linger = true;
|
||||||
packages = with pkgs; [
|
initialPassword = "nixos";
|
||||||
firefox
|
packages = with pkgs; [
|
||||||
(vivaldi.override {
|
firefox
|
||||||
proprietaryCodecs = true;
|
(vivaldi.override {
|
||||||
commandLineArgs = [ "--ozone-platform=wayland" ];
|
proprietaryCodecs = true;
|
||||||
})
|
commandLineArgs = [ "--ozone-platform=wayland" ];
|
||||||
vesktop
|
})
|
||||||
unstablePkgs.vscode
|
vesktop
|
||||||
gimp
|
unstablePkgs.vscode
|
||||||
inkscape
|
gimp
|
||||||
jitsi-meet-electron
|
inkscape
|
||||||
krita
|
jitsi-meet-electron
|
||||||
telegram-desktop
|
krita
|
||||||
unstablePkgs.zettlr
|
telegram-desktop
|
||||||
];
|
unstablePkgs.zettlr
|
||||||
};
|
];
|
||||||
users.groups.wroclaw.gid = 1000;
|
};
|
||||||
|
users.groups.wroclaw.gid = 1000;
|
||||||
|
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "wroclaw";
|
user = "wroclaw";
|
||||||
group = "wroclaw";
|
group = "wroclaw";
|
||||||
dataDir = "/home/wroclaw";
|
dataDir = "/home/wroclaw";
|
||||||
configDir = "/home/wroclaw/.config/syncthing";
|
configDir = "/home/wroclaw/.config/syncthing";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
136
nix-os/core.nix
136
nix-os/core.nix
|
@ -10,78 +10,80 @@
|
||||||
./module-overrides.nix
|
./module-overrides.nix
|
||||||
./nix.nix
|
./nix.nix
|
||||||
];
|
];
|
||||||
|
config = {
|
||||||
|
|
||||||
# kernel
|
# kernel
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
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
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
|
# 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
|
# List packages installed in system profile. To search, run:
|
||||||
services.fail2ban = {
|
# $ nix search wget
|
||||||
enable = true;
|
environment.systemPackages = with pkgs; [
|
||||||
maxretry = 10;
|
waypipe
|
||||||
bantime = "7d";
|
wget
|
||||||
};
|
ffmpeg
|
||||||
|
yt-dlp
|
||||||
# Enable the OpenSSH daemon.
|
htop
|
||||||
services.openssh = {
|
btop
|
||||||
enable = true;
|
fastfetch
|
||||||
ports = [
|
smartmontools
|
||||||
22
|
ddrescue
|
||||||
8022
|
|
||||||
];
|
];
|
||||||
|
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
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,39 +1,41 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
config.virtualisation.docker = {
|
config = {
|
||||||
enable = true;
|
virtualisation.docker = {
|
||||||
enableOnBoot = true;
|
enable = true;
|
||||||
storageDriver = if config.fileSystems."/".fsType == "btrfs" then "btrfs" else null;
|
enableOnBoot = true;
|
||||||
rootless.enable = true;
|
storageDriver = if config.fileSystems."/".fsType == "btrfs" then "btrfs" else null;
|
||||||
rootless.setSocketVariable = true;
|
rootless.enable = true;
|
||||||
daemon.settings = {
|
rootless.setSocketVariable = true;
|
||||||
default-address-pools = [
|
daemon.settings = {
|
||||||
{base = "10.64.0.0/10"; size = 24;}
|
default-address-pools = [
|
||||||
];
|
{base = "10.64.0.0/10"; size = 24;}
|
||||||
bip = "10.127.0.1/16";
|
];
|
||||||
|
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;}];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
config = {
|
config = {
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
|
|
|
@ -1,28 +1,30 @@
|
||||||
{ config, lib, pkgs, ...}:
|
{ config, lib, pkgs, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
hardware.graphics = {
|
config = {
|
||||||
enable = true;
|
hardware.graphics = {
|
||||||
enable32Bit = true;
|
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=";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# 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;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,44 +1,44 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
security.polkit.extraConfig = ''
|
config = {
|
||||||
polkit.addRule(function(action, subject) {
|
security.polkit.extraConfig = ''
|
||||||
polkit.log("action=" + action);
|
polkit.addRule(function(action, subject) {
|
||||||
polkit.log("subject=" + subject);
|
polkit.log("action=" + action);
|
||||||
if (
|
polkit.log("subject=" + subject);
|
||||||
action.id == "org.freedesktop.login1.halt" ||
|
if (
|
||||||
action.id == "org.freedesktop.login1.halt-ignore-inhibit" ||
|
action.id == "org.freedesktop.login1.halt" ||
|
||||||
action.id == "org.freedesktop.login1.halt-multiple-sessions" ||
|
action.id == "org.freedesktop.login1.halt-ignore-inhibit" ||
|
||||||
action.id == "org.freedesktop.login1.hibernate" ||
|
action.id == "org.freedesktop.login1.halt-multiple-sessions" ||
|
||||||
action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" ||
|
action.id == "org.freedesktop.login1.hibernate" ||
|
||||||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
|
action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-block-idle" ||
|
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-block-shutdown" ||
|
action.id == "org.freedesktop.login1.inhibit-block-idle" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-block-sleep" ||
|
action.id == "org.freedesktop.login1.inhibit-block-shutdown" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" ||
|
action.id == "org.freedesktop.login1.inhibit-block-sleep" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" ||
|
action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-handle-power-key" ||
|
action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-handle-reboot-key" ||
|
action.id == "org.freedesktop.login1.inhibit-handle-power-key" ||
|
||||||
action.id == "org.freedesktop.login1.inhibit-handle-suspend-key" ||
|
action.id == "org.freedesktop.login1.inhibit-handle-reboot-key" ||
|
||||||
action.id == "org.freedesktop.login1.power-off" ||
|
action.id == "org.freedesktop.login1.inhibit-handle-suspend-key" ||
|
||||||
action.id == "org.freedesktop.login1.power-off-ignore-inhibit" ||
|
action.id == "org.freedesktop.login1.power-off" ||
|
||||||
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
|
action.id == "org.freedesktop.login1.power-off-ignore-inhibit" ||
|
||||||
action.id == "org.freedesktop.login1.reboot" ||
|
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
|
||||||
action.id == "org.freedesktop.login1.reboot-ignore-inhibit" ||
|
action.id == "org.freedesktop.login1.reboot" ||
|
||||||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
action.id == "org.freedesktop.login1.reboot-ignore-inhibit" ||
|
||||||
action.id == "org.freedesktop.login1.set-reboot-parameter" ||
|
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
||||||
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-entry" ||
|
action.id == "org.freedesktop.login1.set-reboot-parameter" ||
|
||||||
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-menu" ||
|
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-entry" ||
|
||||||
action.id == "org.freedesktop.login1.set-reboot-to-firmware-setup" ||
|
action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-menu" ||
|
||||||
action.id == "org.freedesktop.login1.set-self-linger" ||
|
action.id == "org.freedesktop.login1.set-reboot-to-firmware-setup" ||
|
||||||
action.id == "org.freedesktop.login1.set-user-linger" ||
|
action.id == "org.freedesktop.login1.set-self-linger" ||
|
||||||
action.id == "org.freedesktop.login1.set-wall-message" ||
|
action.id == "org.freedesktop.login1.set-user-linger" ||
|
||||||
action.id == "org.freedesktop.login1.suspend" ||
|
action.id == "org.freedesktop.login1.set-wall-message" ||
|
||||||
action.id == "org.freedesktop.login1.suspend-ignore-inhibit" ||
|
action.id == "org.freedesktop.login1.suspend" ||
|
||||||
action.id == "org.freedesktop.login1.suspend-multiple-sessions"
|
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;
|
) {
|
||||||
};
|
return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO;
|
||||||
});
|
};
|
||||||
'';
|
});
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,29 +18,31 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.openrazer = {
|
config = {
|
||||||
enable = true;
|
hardware.openrazer = {
|
||||||
users = [
|
enable = true;
|
||||||
"wroclaw"
|
users = [
|
||||||
];
|
"wroclaw"
|
||||||
# NIXPKGS-PR: 384992
|
];
|
||||||
packages = let
|
# NIXPKGS-PR: 384992
|
||||||
oldVersion = pkgs.python3Packages.openrazer-daemon.version;
|
packages = let
|
||||||
version = "3.10.1";
|
oldVersion = pkgs.python3Packages.openrazer-daemon.version;
|
||||||
in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: {
|
version = "3.10.1";
|
||||||
version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version;
|
in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: {
|
||||||
src = pkgs.fetchFromGitHub {
|
version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version;
|
||||||
owner = "openrazer";
|
src = pkgs.fetchFromGitHub {
|
||||||
repo = "openrazer";
|
owner = "openrazer";
|
||||||
tag = "v${version}";
|
repo = "openrazer";
|
||||||
hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU=";
|
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
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
229
nix-os/shell.nix
229
nix-os/shell.nix
|
@ -25,136 +25,139 @@ in
|
||||||
imports = [
|
imports = [
|
||||||
./unstable-packages.nix
|
./unstable-packages.nix
|
||||||
];
|
];
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
aliasDrag
|
|
||||||
rangerGit
|
|
||||||
ripgrep
|
|
||||||
kitty
|
|
||||||
zoxide
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.bash.shellInit = ''
|
config = {
|
||||||
HISTCONTROL=ignoreboth
|
environment.systemPackages = with pkgs; [
|
||||||
'';
|
aliasDrag
|
||||||
|
rangerGit
|
||||||
|
ripgrep
|
||||||
|
kitty
|
||||||
|
zoxide
|
||||||
|
];
|
||||||
|
|
||||||
programs.bash.interactiveShellInit = ''
|
programs.bash.shellInit = ''
|
||||||
HISTCONTROL=ignoreboth
|
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
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.etc."xdg/kitty/kitty.conf".text = ''
|
programs.bash.interactiveShellInit = ''
|
||||||
font_family MesloLGS Nerd Font
|
HISTCONTROL=ignoreboth
|
||||||
font_size 10.0
|
if test -n "$KITTY_INSTALLATION_DIR"; then
|
||||||
scrollback_lines 10000
|
export KITTY_SHELL_INTEGRATION="enabled,no-sudo"
|
||||||
window_border_width 0.5
|
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"
|
||||||
window_padding_width 3
|
fi
|
||||||
${if config.services.xserver.desktopManager.gnome.enable then "hide_window_decorations yes" else ""}
|
eval "''$(zoxide init bash)"
|
||||||
background_opacity 0.8
|
alias bye=exit
|
||||||
dynamic_background_opacity yes
|
'';
|
||||||
|
|
||||||
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 = ''
|
map kitty_mod+alt+c copy_ansi_to_clipboard
|
||||||
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
|
|
||||||
|
|
||||||
alias drag shell ${pkgs.ripdrag}/bin/ripdrag -Axd %p &
|
environment.etc."ranger/rc.conf".text = ''
|
||||||
map <C-d> drag
|
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 {
|
alias drag shell ${pkgs.ripdrag}/bin/ripdrag -Axd %p &
|
||||||
owner = "jchook";
|
map <C-d> drag
|
||||||
repo = "ranger-zoxide";
|
'';
|
||||||
rev = "281828de060299f73fe0b02fcabf4f2f2bd78ab3";
|
|
||||||
hash = "sha256-JEuyYSVa1NS3aftezEJx/k19lwwzf7XhqBCL0jH6VT4=";
|
|
||||||
} + /__init__.py;
|
|
||||||
|
|
||||||
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 = {
|
programs.direnv.enable = true;
|
||||||
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
|
|
||||||
|
|
||||||
syntax on
|
programs.neovim = {
|
||||||
set encoding=utf-8
|
enable = true;
|
||||||
set wildmode=longest,list,full
|
viAlias = true;
|
||||||
set listchars=space:·,tab:┄┄»
|
vimAlias = true;
|
||||||
set indentkeys-=0#
|
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
|
syntax on
|
||||||
let g:rainbow_delimiters = {
|
set encoding=utf-8
|
||||||
\ 'strategy': {
|
set wildmode=longest,list,full
|
||||||
\ ${"''"}: rainbow_delimiters#strategy.global,
|
set listchars=space:·,tab:┄┄»
|
||||||
\ },
|
set indentkeys-=0#
|
||||||
\ }
|
|
||||||
|
|
||||||
" vim-gitguter
|
" rainbow-delimeters-nvim
|
||||||
set signcolumn=yes
|
let g:rainbow_delimiters = {
|
||||||
highlight SignColumn NONE
|
\ 'strategy': {
|
||||||
highlight GitGutterAdd ctermfg=2 guifg=#2ea043
|
\ ${"''"}: rainbow_delimiters#strategy.global,
|
||||||
highlight GitGutterChange ctermfg=4 guifg=#0078d4
|
\ },
|
||||||
highlight GitGutterDelete ctermfg=1 guifg=#f85149
|
\ }
|
||||||
|
|
||||||
lua require('guess-indent').setup {}
|
" vim-gitguter
|
||||||
'';
|
set signcolumn=yes
|
||||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
highlight SignColumn NONE
|
||||||
start = [
|
highlight GitGutterAdd ctermfg=2 guifg=#2ea043
|
||||||
guess-indent-nvim
|
highlight GitGutterChange ctermfg=4 guifg=#0078d4
|
||||||
vim-visual-multi
|
highlight GitGutterDelete ctermfg=1 guifg=#f85149
|
||||||
autoclose-nvim
|
|
||||||
rainbow-delimiters-nvim
|
lua require('guess-indent').setup {}
|
||||||
vimagit
|
'';
|
||||||
vim-gitgutter
|
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 {
|
environment.variables = lib.mkIf config.programs.neovim.enable rec {
|
||||||
EDITOR = "/run/current-system/sw/bin/nvim";
|
EDITOR = "/run/current-system/sw/bin/nvim";
|
||||||
VISUAL = EDITOR;
|
VISUAL = EDITOR;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
format = "$all$line_break\${custom.ranger}$jobs$battery$time$status$os$container$shell$character";
|
format = "$all$line_break\${custom.ranger}$jobs$battery$time$status$os$container$shell$character";
|
||||||
directory = {
|
directory = {
|
||||||
truncation_length = 5;
|
truncation_length = 5;
|
||||||
truncation_symbol = "…/";
|
truncation_symbol = "…/";
|
||||||
};
|
};
|
||||||
hostname = {
|
hostname = {
|
||||||
ssh_only = false;
|
ssh_only = false;
|
||||||
};
|
};
|
||||||
username = {
|
username = {
|
||||||
show_always = true;
|
show_always = true;
|
||||||
};
|
};
|
||||||
status.disabled = false;
|
status.disabled = false;
|
||||||
custom.ranger = {
|
custom.ranger = {
|
||||||
when = "test $RANGER_LEVEL";
|
when = "test $RANGER_LEVEL";
|
||||||
command = "echo \"✦\"";
|
command = "echo \"✦\"";
|
||||||
style = "bold 208";
|
style = "bold 208";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,15 +2,17 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
#virtualisation.waydroid.enable = true;
|
config = {
|
||||||
programs.virt-manager.enable = true;
|
#virtualisation.waydroid.enable = true;
|
||||||
virtualisation.libvirtd = {
|
programs.virt-manager.enable = true;
|
||||||
enable = true;
|
virtualisation.libvirtd = {
|
||||||
qemu.ovmf = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
packages = [
|
qemu.ovmf = {
|
||||||
pkgs.OVMFFull.fd
|
enable = true;
|
||||||
];
|
packages = [
|
||||||
|
pkgs.OVMFFull.fd
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,137 +1,137 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
xdg.mime.enable = true;
|
config = {
|
||||||
xdg.mime.defaultApplications = {
|
xdg.mime.enable = true;
|
||||||
# Browser
|
xdg.mime.defaultApplications = {
|
||||||
"x-scheme-handler/http" = "vivaldi-stable.desktop";
|
# Browser
|
||||||
"application/xhtml+xml" = "vivaldi-stable.desktop";
|
"x-scheme-handler/http" = "vivaldi-stable.desktop";
|
||||||
"text/html" = "vivaldi-stable.desktop";
|
"application/xhtml+xml" = "vivaldi-stable.desktop";
|
||||||
"x-scheme-handler/https" = "vivaldi-stable.desktop";
|
"text/html" = "vivaldi-stable.desktop";
|
||||||
"application/pdf" = "vivaldi-stable.desktop";
|
"x-scheme-handler/https" = "vivaldi-stable.desktop";
|
||||||
|
"application/pdf" = "vivaldi-stable.desktop";
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
"audio/aiff" = "mpv.desktop";
|
"audio/aiff" = "mpv.desktop";
|
||||||
"audio/basic" = "mpv.desktop";
|
"audio/basic" = "mpv.desktop";
|
||||||
"audio/it" = "mpv.desktop";
|
"audio/it" = "mpv.desktop";
|
||||||
"audio/make" = "mpv.desktop";
|
"audio/make" = "mpv.desktop";
|
||||||
"audio/make.my.funk" = "mpv.desktop";
|
"audio/make.my.funk" = "mpv.desktop";
|
||||||
"audio/mid" = "mpv.desktop";
|
"audio/mid" = "mpv.desktop";
|
||||||
"audio/midi" = "mpv.desktop";
|
"audio/midi" = "mpv.desktop";
|
||||||
"audio/mod" = "mpv.desktop";
|
"audio/mod" = "mpv.desktop";
|
||||||
"audio/mpeg" = "mpv.desktop";
|
"audio/mpeg" = "mpv.desktop";
|
||||||
"audio/mpeg3" = "mpv.desktop";
|
"audio/mpeg3" = "mpv.desktop";
|
||||||
"audio/nspaudio" = "mpv.desktop";
|
"audio/nspaudio" = "mpv.desktop";
|
||||||
"audio/s3m" = "mpv.desktop";
|
"audio/s3m" = "mpv.desktop";
|
||||||
"audio/tsp-audio" = "mpv.desktop";
|
"audio/tsp-audio" = "mpv.desktop";
|
||||||
"audio/tsplayer" = "mpv.desktop";
|
"audio/tsplayer" = "mpv.desktop";
|
||||||
"audio/vnd.qcelp" = "mpv.desktop";
|
"audio/vnd.qcelp" = "mpv.desktop";
|
||||||
"audio/voc" = "mpv.desktop";
|
"audio/voc" = "mpv.desktop";
|
||||||
"audio/voxware" = "mpv.desktop";
|
"audio/voxware" = "mpv.desktop";
|
||||||
"audio/wav" = "mpv.desktop";
|
"audio/wav" = "mpv.desktop";
|
||||||
"audio/x-adpcm" = "mpv.desktop";
|
"audio/x-adpcm" = "mpv.desktop";
|
||||||
"audio/x-aiff" = "mpv.desktop";
|
"audio/x-aiff" = "mpv.desktop";
|
||||||
"audio/x-au" = "mpv.desktop";
|
"audio/x-au" = "mpv.desktop";
|
||||||
"audio/x-gsm" = "mpv.desktop";
|
"audio/x-gsm" = "mpv.desktop";
|
||||||
"audio/x-jam" = "mpv.desktop";
|
"audio/x-jam" = "mpv.desktop";
|
||||||
"audio/x-liveaudio" = "mpv.desktop";
|
"audio/x-liveaudio" = "mpv.desktop";
|
||||||
"audio/x-mid" = "mpv.desktop";
|
"audio/x-mid" = "mpv.desktop";
|
||||||
"audio/x-midi" = "mpv.desktop";
|
"audio/x-midi" = "mpv.desktop";
|
||||||
"audio/x-mod" = "mpv.desktop";
|
"audio/x-mod" = "mpv.desktop";
|
||||||
"audio/x-mpeg" = "mpv.desktop";
|
"audio/x-mpeg" = "mpv.desktop";
|
||||||
"audio/x-mpeg-3" = "mpv.desktop";
|
"audio/x-mpeg-3" = "mpv.desktop";
|
||||||
"audio/x-mpequrl" = "mpv.desktop";
|
"audio/x-mpequrl" = "mpv.desktop";
|
||||||
"audio/x-nspaudio" = "mpv.desktop";
|
"audio/x-nspaudio" = "mpv.desktop";
|
||||||
"audio/x-pn-realaudio" = "mpv.desktop";
|
"audio/x-pn-realaudio" = "mpv.desktop";
|
||||||
"audio/x-pn-realaudio-plugin" = "mpv.desktop";
|
"audio/x-pn-realaudio-plugin" = "mpv.desktop";
|
||||||
"audio/x-psid" = "mpv.desktop";
|
"audio/x-psid" = "mpv.desktop";
|
||||||
"audio/x-realaudio" = "mpv.desktop";
|
"audio/x-realaudio" = "mpv.desktop";
|
||||||
"audio/x-twinvq" = "mpv.desktop";
|
"audio/x-twinvq" = "mpv.desktop";
|
||||||
"audio/x-twinvq-plugin" = "mpv.desktop";
|
"audio/x-twinvq-plugin" = "mpv.desktop";
|
||||||
"audio/x-vnd.audioexplosion.mjuicemediafile" = "mpv.desktop";
|
"audio/x-vnd.audioexplosion.mjuicemediafile" = "mpv.desktop";
|
||||||
"audio/x-voc" = "mpv.desktop";
|
"audio/x-voc" = "mpv.desktop";
|
||||||
"audio/x-wav" = "mpv.desktop";
|
"audio/x-wav" = "mpv.desktop";
|
||||||
"audio/xm" = "mpv.desktop";
|
"audio/xm" = "mpv.desktop";
|
||||||
|
|
||||||
# Video
|
# Video
|
||||||
"video/animaflex" = "mpv.desktop";
|
"video/animaflex" = "mpv.desktop";
|
||||||
"video/avi" = "mpv.desktop";
|
"video/avi" = "mpv.desktop";
|
||||||
"video/avs-video" = "mpv.desktop";
|
"video/avs-video" = "mpv.desktop";
|
||||||
"video/dl" = "mpv.desktop";
|
"video/dl" = "mpv.desktop";
|
||||||
"video/fli" = "mpv.desktop";
|
"video/fli" = "mpv.desktop";
|
||||||
"video/gl" = "mpv.desktop";
|
"video/gl" = "mpv.desktop";
|
||||||
"video/mpeg" = "mpv.desktop";
|
"video/mpeg" = "mpv.desktop";
|
||||||
"video/msvideo" = "mpv.desktop";
|
"video/msvideo" = "mpv.desktop";
|
||||||
"video/quicktime" = "mpv.desktop";
|
"video/quicktime" = "mpv.desktop";
|
||||||
"video/vdo" = "mpv.desktop";
|
"video/vdo" = "mpv.desktop";
|
||||||
"video/vivo" = "mpv.desktop";
|
"video/vivo" = "mpv.desktop";
|
||||||
"video/vnd.rn-realvideo" = "mpv.desktop";
|
"video/vnd.rn-realvideo" = "mpv.desktop";
|
||||||
"video/vnd.vivo" = "mpv.desktop";
|
"video/vnd.vivo" = "mpv.desktop";
|
||||||
"video/vosaic" = "mpv.desktop";
|
"video/vosaic" = "mpv.desktop";
|
||||||
"video/x-amt-demorun" = "mpv.desktop";
|
"video/x-amt-demorun" = "mpv.desktop";
|
||||||
"video/x-amt-showrun" = "mpv.desktop";
|
"video/x-amt-showrun" = "mpv.desktop";
|
||||||
"video/x-atomic3d-feature" = "mpv.desktop";
|
"video/x-atomic3d-feature" = "mpv.desktop";
|
||||||
"video/x-dl" = "mpv.desktop";
|
"video/x-dl" = "mpv.desktop";
|
||||||
"video/x-dv" = "mpv.desktop";
|
"video/x-dv" = "mpv.desktop";
|
||||||
"video/x-fli" = "mpv.desktop";
|
"video/x-fli" = "mpv.desktop";
|
||||||
"video/x-gl" = "mpv.desktop";
|
"video/x-gl" = "mpv.desktop";
|
||||||
"video/x-isvideo" = "mpv.desktop";
|
"video/x-isvideo" = "mpv.desktop";
|
||||||
"video/x-motion-jpeg" = "mpv.desktop";
|
"video/x-motion-jpeg" = "mpv.desktop";
|
||||||
"video/x-mpeg" = "mpv.desktop";
|
"video/x-mpeg" = "mpv.desktop";
|
||||||
"video/x-mpeq2a" = "mpv.desktop";
|
"video/x-mpeq2a" = "mpv.desktop";
|
||||||
"video/x-ms-asf" = "mpv.desktop";
|
"video/x-ms-asf" = "mpv.desktop";
|
||||||
"video/x-ms-asf-plugin" = "mpv.desktop";
|
"video/x-ms-asf-plugin" = "mpv.desktop";
|
||||||
"video/x-msvideo" = "mpv.desktop";
|
"video/x-msvideo" = "mpv.desktop";
|
||||||
"video/x-qtc" = "mpv.desktop";
|
"video/x-qtc" = "mpv.desktop";
|
||||||
"video/x-scm" = "mpv.desktop";
|
"video/x-scm" = "mpv.desktop";
|
||||||
"video/x-sgi-movie" = "mpv.desktop";
|
"video/x-sgi-movie" = "mpv.desktop";
|
||||||
|
|
||||||
# Image
|
# Image
|
||||||
"image/bmp" = "qimgv.desktop";
|
"image/bmp" = "qimgv.desktop";
|
||||||
"image/cmu-raster" = "qimgv.desktop";
|
"image/cmu-raster" = "qimgv.desktop";
|
||||||
"image/fif" = "qimgv.desktop";
|
"image/fif" = "qimgv.desktop";
|
||||||
"image/florian" = "qimgv.desktop";
|
"image/florian" = "qimgv.desktop";
|
||||||
"image/g3fax" = "qimgv.desktop";
|
"image/g3fax" = "qimgv.desktop";
|
||||||
"image/gif" = "qimgv.desktop";
|
"image/gif" = "qimgv.desktop";
|
||||||
"image/ief" = "qimgv.desktop";
|
"image/ief" = "qimgv.desktop";
|
||||||
"image/jpeg" = "qimgv.desktop";
|
"image/jpeg" = "qimgv.desktop";
|
||||||
"image/jutvision" = "qimgv.desktop";
|
"image/jutvision" = "qimgv.desktop";
|
||||||
"image/naplps" = "qimgv.desktop";
|
"image/naplps" = "qimgv.desktop";
|
||||||
"image/pict" = "qimgv.desktop";
|
"image/pict" = "qimgv.desktop";
|
||||||
"image/pjpeg" = "qimgv.desktop";
|
"image/pjpeg" = "qimgv.desktop";
|
||||||
"image/png" = "qimgv.desktop";
|
"image/png" = "qimgv.desktop";
|
||||||
"image/tiff" = "qimgv.desktop";
|
"image/tiff" = "qimgv.desktop";
|
||||||
"image/vasa" = "qimgv.desktop";
|
"image/vasa" = "qimgv.desktop";
|
||||||
"image/vnd.dwg" = "qimgv.desktop";
|
"image/vnd.dwg" = "qimgv.desktop";
|
||||||
"image/vnd.fpx" = "qimgv.desktop";
|
"image/vnd.fpx" = "qimgv.desktop";
|
||||||
"image/vnd.net-fpx" = "qimgv.desktop";
|
"image/vnd.net-fpx" = "qimgv.desktop";
|
||||||
"image/vnd.rn-realflash" = "qimgv.desktop";
|
"image/vnd.rn-realflash" = "qimgv.desktop";
|
||||||
"image/vnd.rn-realpix" = "qimgv.desktop";
|
"image/vnd.rn-realpix" = "qimgv.desktop";
|
||||||
"image/vnd.wap.wbmp" = "qimgv.desktop";
|
"image/vnd.wap.wbmp" = "qimgv.desktop";
|
||||||
"image/vnd.xiff" = "qimgv.desktop";
|
"image/vnd.xiff" = "qimgv.desktop";
|
||||||
"image/x-cmu-raster" = "qimgv.desktop";
|
"image/x-cmu-raster" = "qimgv.desktop";
|
||||||
"image/x-dwg" = "qimgv.desktop";
|
"image/x-dwg" = "qimgv.desktop";
|
||||||
"image/x-icon" = "qimgv.desktop";
|
"image/x-icon" = "qimgv.desktop";
|
||||||
"image/x-jg" = "qimgv.desktop";
|
"image/x-jg" = "qimgv.desktop";
|
||||||
"image/x-jps" = "qimgv.desktop";
|
"image/x-jps" = "qimgv.desktop";
|
||||||
"image/x-niff" = "qimgv.desktop";
|
"image/x-niff" = "qimgv.desktop";
|
||||||
"image/x-pcx" = "qimgv.desktop";
|
"image/x-pcx" = "qimgv.desktop";
|
||||||
"image/x-pict" = "qimgv.desktop";
|
"image/x-pict" = "qimgv.desktop";
|
||||||
"image/x-portable-anymap" = "qimgv.desktop";
|
"image/x-portable-anymap" = "qimgv.desktop";
|
||||||
"image/x-portable-bitmap" = "qimgv.desktop";
|
"image/x-portable-bitmap" = "qimgv.desktop";
|
||||||
"image/x-portable-graymap" = "qimgv.desktop";
|
"image/x-portable-graymap" = "qimgv.desktop";
|
||||||
"image/x-portable-greymap" = "qimgv.desktop";
|
"image/x-portable-greymap" = "qimgv.desktop";
|
||||||
"image/x-portable-pixmap" = "qimgv.desktop";
|
"image/x-portable-pixmap" = "qimgv.desktop";
|
||||||
"image/x-quicktime" = "qimgv.desktop";
|
"image/x-quicktime" = "qimgv.desktop";
|
||||||
"image/x-rgb" = "qimgv.desktop";
|
"image/x-rgb" = "qimgv.desktop";
|
||||||
"image/x-tiff" = "qimgv.desktop";
|
"image/x-tiff" = "qimgv.desktop";
|
||||||
"image/x-windows-bmp" = "qimgv.desktop";
|
"image/x-windows-bmp" = "qimgv.desktop";
|
||||||
"image/x-xbitmap" = "qimgv.desktop";
|
"image/x-xbitmap" = "qimgv.desktop";
|
||||||
"image/x-xbm" = "qimgv.desktop";
|
"image/x-xbm" = "qimgv.desktop";
|
||||||
"image/x-xpixmap" = "qimgv.desktop";
|
"image/x-xpixmap" = "qimgv.desktop";
|
||||||
"image/x-xwd" = "qimgv.desktop";
|
"image/x-xwd" = "qimgv.desktop";
|
||||||
"image/x-xwindowdump" = "qimgv.desktop";
|
"image/x-xwindowdump" = "qimgv.desktop";
|
||||||
"image/xbm" = "qimgv.desktop";
|
"image/xbm" = "qimgv.desktop";
|
||||||
"image/xpm" = "qimgv.desktop";
|
"image/xpm" = "qimgv.desktop";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue