Tweaks, added obs, neovim and foot

This commit is contained in:
Erwin Boskma 2021-12-18 16:23:14 +01:00
parent 0ca2472785
commit 12e6ffc364
Signed by: erwin
GPG key ID: 270B20D17394F7E5
23 changed files with 482 additions and 78 deletions

View file

@ -49,11 +49,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1638959036, "lastModified": 1639506187,
"narHash": "sha256-d75Ow/rV3nq4penfTJz9H3/OlIHttoKoJUDEfink/8k=", "narHash": "sha256-6wcFhEaA14bHbbr7xgpMv2QEXOEp1vleW7pB6siJXrQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "829e89a16f4f96428d1b94e68d4c06107b5491c0", "rev": "c61fc1c288bd1fdf96261ba5574a12cf8f9be70b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -84,11 +84,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1638986258, "lastModified": 1639525045,
"narHash": "sha256-OceRdctKZRSgqQxVRvvNB0MaEnFMzQqjUffecoDE9eI=", "narHash": "sha256-z4GXFNzO+5V4CAUm2DDMAryLOWUKEbQif2ifvv1Ypg4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "581d2d6c9cd5c289002203581d8aa0861963a933", "rev": "a2e281f5770247855b85d70c43454ba5bff34613",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -144,6 +144,7 @@
devShell = with pkgs; mkShell { devShell = with pkgs; mkShell {
nativeBuildInputs = [ sops ssh-to-pgp ]; nativeBuildInputs = [ sops ssh-to-pgp ];
packages = [ sops ];
}; };
} }
); );

View file

@ -2,6 +2,14 @@
with lib; with lib;
let let
cfg = config.eboskma.programs.alacritty; cfg = config.eboskma.programs.alacritty;
importYAML = name: yamlFile: (lib.importJSON ((pkgs.runCommandNoCC name { } ''
mkdir -p $out
${pkgs.yaml2json}/bin/yaml2json < ${yamlFile} | ${pkgs.jq}/bin/jq -a '.' > $out/tmp.json
'').outPath + "/tmp.json"));
theme = importYAML "theme" (builtins.fetchurl {
url = "https://raw.githubusercontent.com/dracula/alacritty/05faff15c0158712be87d200081633d9f4850a7d/dracula.yml";
sha256 = "1366rvvni2shbqlcrbypjv4f7p7ccdr6bvr685jnj8ipwqjjb6rn";
});
in in
{ {
options.eboskma.programs.alacritty.enable = mkEnableOption "Enable alacritty"; options.eboskma.programs.alacritty.enable = mkEnableOption "Enable alacritty";
@ -26,71 +34,72 @@ in
}; };
size = 10.0; size = 10.0;
}; };
colors = { inherit (theme) colors;
primary = { # colors = {
background = "#2e3440"; # primary = {
foreground = "#d8dee9"; # background = "#2e3440";
dim_foreground = "#a5abb6"; # foreground = "#d8dee9";
}; # dim_foreground = "#a5abb6";
cursor = { # };
text = "#2e3440"; # cursor = {
cursor = "#d8dee9"; # text = "#2e3440";
}; # cursor = "#d8dee9";
vi_mode_cursor = { # };
text = "#2e3440"; # vi_mode_cursor = {
cursor = "#d8dee9"; # text = "#2e3440";
}; # cursor = "#d8dee9";
selection = { # };
text = "CellForeground"; # selection = {
background = "#4c566a"; # text = "CellForeground";
}; # background = "#4c566a";
search = { # };
matches = { # search = {
foreground = "CellBackground"; # matches = {
background = "#88c0d0"; # foreground = "CellBackground";
}; # background = "#88c0d0";
bar = { # };
background = "#434c5e"; # bar = {
foreground = "#d8dee9"; # background = "#434c5e";
}; # foreground = "#d8dee9";
}; # };
normal = { # };
black = "#3b4252"; # normal = {
red = "#bf616a"; # black = "#3b4252";
green = "#a3be8c"; # red = "#bf616a";
yellow = "#ebcb8b"; # green = "#a3be8c";
blue = "#81a1c1"; # yellow = "#ebcb8b";
magenta = "#b48ead"; # blue = "#81a1c1";
cyan = "#88c0d0"; # magenta = "#b48ead";
white = "#e5e9f0"; # cyan = "#88c0d0";
}; # white = "#e5e9f0";
bright = { # };
black = "#4c566a"; # bright = {
red = "#bf616a"; # black = "#4c566a";
green = "#a3be8c"; # red = "#bf616a";
yellow = "#ebcb8b"; # green = "#a3be8c";
blue = "#81a1c1"; # yellow = "#ebcb8b";
magenta = "#b48ead"; # blue = "#81a1c1";
cyan = "#8fbcbb"; # magenta = "#b48ead";
white = "#eceff4"; # cyan = "#8fbcbb";
}; # white = "#eceff4";
dim = { # };
black = "#373e4d"; # dim = {
red = "#94545d"; # black = "#373e4d";
green = "#809575"; # red = "#94545d";
yellow = "#b29e75"; # green = "#809575";
blue = "#68809a"; # yellow = "#b29e75";
magenta = "#8c738c"; # blue = "#68809a";
cyan = "#6d96a5"; # magenta = "#8c738c";
white = "#aeb3bb"; # cyan = "#6d96a5";
}; # white = "#aeb3bb";
background_opacity = 0.9; # };
live_config_reload = true; # };
mouse = { background_opacity = 0.9;
hide_when_typing = true; live_config_reload = true;
}; mouse = {
hide_when_typing = true;
}; };
}; };
}; };
}; };

View file

@ -62,16 +62,17 @@ in
urgency_low = { urgency_low = {
background = "#282a36"; background = "#282a36";
foreground = "#6272a4"; foreground = "#6272a4";
timeout = 3; timeout = 10;
}; };
urgency_normal = { urgency_normal = {
background = "#282a36"; background = "#282a36";
foreground = "#bd93f9"; foreground = "#bd93f9";
timeout = 3; timeout = 10;
}; };
urgency_high = { urgency_high = {
background = "#ff5555"; background = "#ff5555";
foreground = "#f8f8f2"; foreground = "#f8f8f2";
frame_color = "#ff5555";
timeout = 0; timeout = 0;
}; };
}; };

View file

@ -13,6 +13,9 @@ let
"privacy.webrtc.allowSilencingNotifications" = true; "privacy.webrtc.allowSilencingNotifications" = true;
"privacy.webrtc.legacyGlobalIndicator" = false; "privacy.webrtc.legacyGlobalIndicator" = false;
"browser.shell.checkDefaultBrowser" = false; "browser.shell.checkDefaultBrowser" = false;
"security.tls.enable_0rtt_data" = false;
"media.ffmpeg.vaapi.enabled" = true;
"media.rdd-ffmpeg.enabled" = true;
}; };
nonDefaultDesktop = pkgs.makeDesktopItem { nonDefaultDesktop = pkgs.makeDesktopItem {

View file

@ -31,6 +31,18 @@ in
}; };
}; };
plugins = [
{
name = "dracula";
src = pkgs.fetchFromGitHub {
owner = "dracula";
repo = "fish";
rev = "28db361b55bb49dbfd7a679ebec9140be8c2d593";
sha256 = "07kz44ln75n4r04wyks1838nhmhr7jqmsc1rh7am7glq9ja9inmx";
};
}
];
shellAliases = { shellAliases = {
# code = "${pkgs.vscode}/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland"; # code = "${pkgs.vscode}/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland";
ls = "${pkgs.exa}/bin/exa -Fb"; ls = "${pkgs.exa}/bin/exa -Fb";

View file

@ -0,0 +1,55 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.eboskma.programs.foot;
in
{
options.eboskma.programs.foot = {
enable = mkEnableOption "activate foot";
server = mkEnableOption "enable foot server";
};
config = mkIf cfg.enable {
programs.foot = {
enable = true;
server.enable = cfg.server;
settings = {
main = {
font = "Iosevka Nerd Font:size=10";
dpi-aware = "yes";
};
mouse = {
hide-when-typing = "yes";
};
cursor = {
color = "282a36 f8f8f2";
};
colors = {
alpha = 0.9;
foreground = "f8f8f2";
background = "282a36";
regular0 = "000000"; # black
regular1 = "ff5555"; # red
regular2 = "50fa7b"; # green
regular3 = "f1fa8c"; # yellow
regular4 = "bd93f9"; # blue
regular5 = "ff79c6"; # magenta
regular6 = "8be9fd"; # cyan
regular7 = "bfbfbf"; # white
bright0 = "4d4d4d"; # bright black
bright1 = "ff6e67"; # bright red
bright2 = "5af78e"; # bright green
bright3 = "f4f99d"; # bright yellow
bright4 = "caa9fa"; # bright blue
bright5 = "ff92d0"; # bright magenta
bright6 = "9aedfe"; # bright cyan
bright7 = "e6e6e6"; # bright white
};
};
};
};
}

View file

@ -0,0 +1,23 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.eboskma.programs.neovim;
in
{
options.eboskma.programs.neovim = { enable = mkEnableOption "activate neovim"; };
config = mkIf cfg.enable {
programs.neovim = {
enable = true;
# Enable some aliases
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
withPython3 = true;
withRuby = true;
};
};
}

View file

@ -0,0 +1,19 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.eboskma.programs.obs-studio;
in
{
options.eboskma.programs.obs-studio = { enable = mkEnableOption "activate obs-studio"; };
config = mkIf cfg.enable {
programs.obs-studio = {
enable = true;
plugins = [
pkgs.obs-studio-plugins.wlrobs
pkgs.obs-studio-plugins.obs-gstreamer
pkgs.obs-backgroundremoval
];
};
};
}

View file

@ -26,6 +26,47 @@ in
command = "${pkgs.waybar}/bin/waybar"; command = "${pkgs.waybar}/bin/waybar";
} }
]; ];
# Dracula theme
colors = {
background = "#f8f8f2";
focused = {
border = "#6272a4";
background = "#6272A4";
text = "#f8f8f2";
indicator = "#6272a4";
childBorder = "#6272a4";
};
focusedInactive = {
border = "#44475a";
background = "#44475a";
text = "#f8f8f2";
indicator = "#44475a";
childBorder = "#44475a";
};
unfocused = {
border = "#282a36";
background = "#282a36";
text = "#bfbfbf";
indicator = "#282a36";
childBorder = "#282a36";
};
urgent = {
border = "#44475a";
background = "#ff5555";
text = "#f8f8f2";
indicator = "#ff5555";
childBorder = "#ff5555";
};
placeholder = {
border = "#282a36";
background = "#282a36";
text = "#f8f8f2";
indicator = "#282a36";
childBorder = "#282a36";
};
};
left = "n"; left = "n";
down = "e"; down = "e";
up = "i"; up = "i";

View file

@ -10,11 +10,24 @@ in
config = mkIf (cfg.enable) { config = mkIf (cfg.enable) {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
shortcut = "a"; prefix = "C-a";
terminal = "tmux-256color"; terminal = "tmux-256color";
clock24 = true; clock24 = true;
baseIndex = 1; baseIndex = 1;
keyMode = "vi"; keyMode = "vi";
plugins = with pkgs.tmuxPlugins; [
sensible
tmux-fzf
{
plugin = dracula;
extraConfig = ''
set -g @dracula-show-battery false
set -g @dracula-show-powerline true
set -g @dracula-show-fahrenheit false
set -g @dracula-refresh-rate 10
'';
}
];
extraConfig = '' extraConfig = ''
source ${pkgs.powerline}/share/tmux/powerline.conf source ${pkgs.powerline}/share/tmux/powerline.conf
@ -22,7 +35,7 @@ in
set -ag update-environment "SWAYSOCK" set -ag update-environment "SWAYSOCK"
bind-key r source ~/.tmux.conf \; display "Reloaded config." bind-key r source ~/.config/tmux/tmux.conf \; display "Reloaded config."
bind-key C-a send-prefix bind-key C-a send-prefix

View file

@ -45,6 +45,7 @@ in
# msaraiva.surface # msaraiva.surface
# pgourlain.erlang # pgourlain.erlang
# phoenixframework.phoenix # phoenixframework.phoenix
rubymaniac.vscode-paste-and-indent
# surajbarkale.ninja # surajbarkale.ninja
timonwong.shellcheck timonwong.shellcheck
# twxs.cmake # twxs.cmake

View file

@ -3,6 +3,7 @@ with lib;
let let
cfg = config.eboskma.base; cfg = config.eboskma.base;
qmkUdevRules = (builtins.readFile ./qmk.rules);
in in
{ {
options.eboskma.base = { options.eboskma.base = {
@ -44,5 +45,9 @@ in
usbutils usbutils
ht-rust ht-rust
]; ];
services.udev = {
extraRules = qmkUdevRules;
};
}; };
} }

74
modules/base/qmk.rules Normal file
View file

@ -0,0 +1,74 @@
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
### AT90USB162
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## pid.codes shared PID
### Keyboardio Atreus 2 Bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# hid_listen
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
# hid bootloaders
## QMK HID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
## PJRC's HalfKay
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"

View file

@ -52,6 +52,7 @@ in
work = config.eboskma.base.work; work = config.eboskma.base.work;
}; };
fish.enable = true; fish.enable = true;
foot.enable = true;
git = { git = {
enable = true; enable = true;
name = "Erwin Boskma"; name = "Erwin Boskma";
@ -59,6 +60,8 @@ in
signingKey = "EE7ADEFE1D943C7B"; signingKey = "EE7ADEFE1D943C7B";
}; };
gpg.enable = true; gpg.enable = true;
neovim.enable = true;
obs-studio.enable = true;
rofi.enable = true; rofi.enable = true;
vscode.enable = true; vscode.enable = true;
sway.enable = true; sway.enable = true;
@ -77,10 +80,10 @@ in
imv imv
(jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; }) (jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; })
mpv mpv
neovim
nomachine-client nomachine-client
pamedia pamedia
pass pass
quintom-cursor-theme
procs procs
ripgrep ripgrep
signal-desktop signal-desktop
@ -89,9 +92,10 @@ in
steam-tui steam-tui
tdesktop tdesktop
unzip unzip
xdg-utils
wl-clipboard wl-clipboard
] ++ ] ++
(with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]); (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
xdg = { xdg = {
enable = true; enable = true;
@ -111,6 +115,7 @@ in
gtk3.extraConfig = { gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true; gtk-application-prefer-dark-theme = true;
gtk-cursor-theme-name = "Quintom_Ink";
}; };
}; };
@ -129,8 +134,11 @@ in
../../home-manager/modules/electron ../../home-manager/modules/electron
../../home-manager/modules/firefox ../../home-manager/modules/firefox
../../home-manager/modules/fish ../../home-manager/modules/fish
../../home-manager/modules/foot
../../home-manager/modules/git ../../home-manager/modules/git
../../home-manager/modules/gpg ../../home-manager/modules/gpg
../../home-manager/modules/neovim
../../home-manager/modules/obs-studio
../../home-manager/modules/rofi ../../home-manager/modules/rofi
../../home-manager/modules/vscode ../../home-manager/modules/vscode
../../home-manager/modules/sway ../../home-manager/modules/sway
@ -194,5 +202,9 @@ in
AMD_VULKAN_ICD = "RADV"; AMD_VULKAN_ICD = "RADV";
}; };
environment.etc = {
"X11/xkb".source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
};
}; };
} }

View file

@ -19,7 +19,7 @@ in
}; };
}; };
}; };
environment.systemPackages = [ pkgs.greetd.gtkgreet ]; environment.systemPackages = with pkgs; [ greetd.gtkgreet quintom-cursor-theme papirus-icon-theme arc-theme ];
environment.etc = { environment.etc = {
"greetd/sway-config" = { "greetd/sway-config" = {

View file

@ -2,4 +2,14 @@ exec "gtkgreet -l; swaymsg exit"
bindsym Mod4+shift+e exec swaynag -t warning -m 'What would you like to do?' -b 'Poweroff' 'systemctl poweroff' -b 'Reboot' 'systemctl reboot' bindsym Mod4+shift+e exec swaynag -t warning -m 'What would you like to do?' -b 'Poweroff' 'systemctl poweroff' -b 'Reboot' 'systemctl reboot'
set $gnome-schema org.gnome.desktop.interface
exec_always {
gsettings set $gnome-schema gtk-theme 'Arc-Dark'
gsettings set $gnome-schema icon-theme 'Papirus-Dark'
gsettings set $gnome-schema cursor-theme 'Quintom_Ink'
gsettings set $gnome-schema font-name 'Recursive Sans Casual Static Medium'
}
include /etc/sway/config.d/* include /etc/sway/config.d/*

View file

@ -14,6 +14,9 @@ in
media-session.enable = true; media-session.enable = true;
}; };
}; };
security.rtkit.enable = true;
environment.systemPackages = with pkgs; [ pavucontrol ]; environment.systemPackages = with pkgs; [ pavucontrol ];
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "audio" ]; users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "audio" ];

View file

@ -1,4 +1,4 @@
final: prev: { final: prev: rec {
rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland { }; rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland { };
nix-plugins = prev.pkgs.callPackage ../pkgs/nix-plugins { }; nix-plugins = prev.pkgs.callPackage ../pkgs/nix-plugins { };
lunarvim = prev.pkgs.callPackage ../pkgs/lunarvim { }; lunarvim = prev.pkgs.callPackage ../pkgs/lunarvim { };
@ -6,4 +6,6 @@ final: prev: {
{ {
inherit (prev.pkgs) gcc cmake opencv curl stdenv git tensorflow-lite flatbuffers; inherit (prev.pkgs) gcc cmake opencv curl stdenv git tensorflow-lite flatbuffers;
}; };
onnx-runtime = prev.pkgs.callPackage ../pkgs/onnx-runtime { inherit (prev.pkgs) stdenv; };
obs-backgroundremoval = prev.pkgs.callPackage ../pkgs/obs-backgroundremoval { inherit (prev.pkgs) stdenv fetchFromGitHub cmake obs-studio opencv onnx-runtime; };
} }

View file

@ -0,0 +1,85 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c470020..c3849c7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.10)
+option(GIT_TAG "The current git tag")
+
include(external/MunkeiVersionFromGit.cmake)
-version_from_git()
+version_from_git(${GIT_TAG})
# Change obs-plugintemplate to your plugin's name in a machine-readable format
# (e.g.: obs-myawesomeplugin) and set
diff --git a/external/MunkeiVersionFromGit.cmake b/external/MunkeiVersionFromGit.cmake
index 15ab0d2..48c48bd 100644
--- a/external/MunkeiVersionFromGit.cmake
+++ b/external/MunkeiVersionFromGit.cmake
@@ -24,64 +24,8 @@ cmake_minimum_required( VERSION 3.0.0 )
include( CMakeParseArguments )
-function( version_from_git )
+function( version_from_git git_tag )
# Parse arguments
- set( options OPTIONAL FAST )
- set( oneValueArgs
- GIT_EXECUTABLE
- INCLUDE_HASH
- LOG
- TIMESTAMP
- )
- set( multiValueArgs )
- cmake_parse_arguments( ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
-
- # Defaults
- if( NOT DEFINED ARG_INCLUDE_HASH )
- set( ARG_INCLUDE_HASH ON )
- endif()
-
- if( DEFINED ARG_GIT_EXECUTABLE )
- set( GIT_EXECUTABLE "${ARG_GIT_EXECUTABLE}" )
- else ()
- # Find Git or bail out
- find_package( Git )
- if( NOT GIT_FOUND )
- message( FATAL_ERROR "[MunkeiVersionFromGit] Git not found" )
- endif( NOT GIT_FOUND )
- endif()
-
- # Git describe
- execute_process(
- COMMAND "${GIT_EXECUTABLE}" describe --tags
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- RESULT_VARIABLE git_result
- OUTPUT_VARIABLE git_describe
- ERROR_VARIABLE git_error
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_STRIP_TRAILING_WHITESPACE
- )
- if( NOT git_result EQUAL 0 )
- message( FATAL_ERROR
- "[MunkeiVersionFromGit] Failed to execute Git: ${git_error}"
- )
- endif()
-
- # Get Git tag
- execute_process(
- COMMAND "${GIT_EXECUTABLE}" describe --tags --abbrev=0
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- RESULT_VARIABLE git_result
- OUTPUT_VARIABLE git_tag
- ERROR_VARIABLE git_error
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_STRIP_TRAILING_WHITESPACE
- )
- if( NOT git_result EQUAL 0 )
- message( FATAL_ERROR
- "[MunkeiVersionFromGit] Failed to execute Git: ${git_error}"
- )
- endif()
if( git_tag MATCHES "^v(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)(-[.0-9A-Za-z-]+)?([+][.0-9A-Za-z-]+)?$" )
set( version_major "${CMAKE_MATCH_1}" )

View file

@ -0,0 +1,18 @@
{ fetchFromGitHub, stdenv, cmake, obs-studio, opencv, onnx-runtime, git }:
stdenv.mkDerivation rec {
pname = "obs-backgroundremoval";
version = "0.4.0";
src = fetchFromGitHub {
owner = "royshil";
repo = "obs-backgroundremoval";
rev = "4f0348a15103cd4e516d94b629851208280cd4d4";
sha256 = "oDgFCc9dpEhjAgpNnGINWgQkPCzUetGwnWbMW2ZbpXw=";
};
cmakeFlags = [ "-DGIT_TAG=v${version}" ];
patches = [ ./cmake_set_version.patch ];
nativeBuildInputs = [ cmake git ];
buildInputs = [ opencv onnx-runtime obs-studio ];
}

View file

@ -0,0 +1,16 @@
{ stdenv }:
stdenv.mkDerivation {
pname = "onnx-runtime";
version = "1.7.0";
# phases = [ "unpackPhase" "installPhase" ];
src = builtins.fetchTarball {
url = "https://github.com/microsoft/onnxruntime/releases/download/v1.7.0/onnxruntime-linux-x64-1.7.0.tgz";
sha256 = "1zzgxn6867g4l9814dgpkc3jsz1qq32j6pjfhn3zv0qyw9cdnvn4";
};
installPhase = ''
mkdir $out
cp -r include lib $out/
'';
}

1
pkgs/onnx-runtime/result Symbolic link
View file

@ -0,0 +1 @@
/nix/store/fvn0n4aaj7w9r4xlaf8kg7nsvy1lqbwh-onnx-runtime-1.7.0