From 12e6ffc36442967a1987a2470bb3d69f37f379d6 Mon Sep 17 00:00:00 2001 From: Erwin Boskma Date: Sat, 18 Dec 2021 16:23:14 +0100 Subject: [PATCH] Tweaks, added obs, neovim and foot --- flake.lock | 12 +- flake.nix | 1 + home-manager/modules/alacritty/default.nix | 137 ++++++++++-------- home-manager/modules/dunst/default.nix | 5 +- home-manager/modules/firefox/default.nix | 3 + home-manager/modules/fish/default.nix | 12 ++ home-manager/modules/foot/default.nix | 55 +++++++ home-manager/modules/neovim/default.nix | 23 +++ home-manager/modules/obs-studio/default.nix | 19 +++ home-manager/modules/sway/default.nix | 41 ++++++ home-manager/modules/tmux/default.nix | 17 ++- home-manager/modules/vscode/default.nix | 1 + modules/base/default.nix | 5 + modules/base/qmk.rules | 74 ++++++++++ modules/desktop/default.nix | 16 +- modules/greetd/default.nix | 2 +- modules/greetd/sway-config | 10 ++ modules/sound/default.nix | 3 + overlays/default.nix | 4 +- .../cmake_set_version.patch | 85 +++++++++++ pkgs/obs-backgroundremoval/default.nix | 18 +++ pkgs/onnx-runtime/default.nix | 16 ++ pkgs/onnx-runtime/result | 1 + 23 files changed, 482 insertions(+), 78 deletions(-) create mode 100644 home-manager/modules/foot/default.nix create mode 100644 home-manager/modules/neovim/default.nix create mode 100644 home-manager/modules/obs-studio/default.nix create mode 100644 modules/base/qmk.rules create mode 100644 pkgs/obs-backgroundremoval/cmake_set_version.patch create mode 100644 pkgs/obs-backgroundremoval/default.nix create mode 100644 pkgs/onnx-runtime/default.nix create mode 120000 pkgs/onnx-runtime/result diff --git a/flake.lock b/flake.lock index 4fe8cfb..f8e1519 100644 --- a/flake.lock +++ b/flake.lock @@ -49,11 +49,11 @@ ] }, "locked": { - "lastModified": 1638959036, - "narHash": "sha256-d75Ow/rV3nq4penfTJz9H3/OlIHttoKoJUDEfink/8k=", + "lastModified": 1639506187, + "narHash": "sha256-6wcFhEaA14bHbbr7xgpMv2QEXOEp1vleW7pB6siJXrQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "829e89a16f4f96428d1b94e68d4c06107b5491c0", + "rev": "c61fc1c288bd1fdf96261ba5574a12cf8f9be70b", "type": "github" }, "original": { @@ -84,11 +84,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1638986258, - "narHash": "sha256-OceRdctKZRSgqQxVRvvNB0MaEnFMzQqjUffecoDE9eI=", + "lastModified": 1639525045, + "narHash": "sha256-z4GXFNzO+5V4CAUm2DDMAryLOWUKEbQif2ifvv1Ypg4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "581d2d6c9cd5c289002203581d8aa0861963a933", + "rev": "a2e281f5770247855b85d70c43454ba5bff34613", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1b52cd7..0694602 100644 --- a/flake.nix +++ b/flake.nix @@ -144,6 +144,7 @@ devShell = with pkgs; mkShell { nativeBuildInputs = [ sops ssh-to-pgp ]; + packages = [ sops ]; }; } ); diff --git a/home-manager/modules/alacritty/default.nix b/home-manager/modules/alacritty/default.nix index 060be08..16c7a38 100644 --- a/home-manager/modules/alacritty/default.nix +++ b/home-manager/modules/alacritty/default.nix @@ -2,6 +2,14 @@ with lib; let 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 { options.eboskma.programs.alacritty.enable = mkEnableOption "Enable alacritty"; @@ -26,71 +34,72 @@ in }; size = 10.0; }; - colors = { - primary = { - background = "#2e3440"; - foreground = "#d8dee9"; - dim_foreground = "#a5abb6"; - }; - cursor = { - text = "#2e3440"; - cursor = "#d8dee9"; - }; - vi_mode_cursor = { - text = "#2e3440"; - cursor = "#d8dee9"; - }; - selection = { - text = "CellForeground"; - background = "#4c566a"; - }; - search = { - matches = { - foreground = "CellBackground"; - background = "#88c0d0"; - }; - bar = { - background = "#434c5e"; - foreground = "#d8dee9"; - }; - }; - normal = { - black = "#3b4252"; - red = "#bf616a"; - green = "#a3be8c"; - yellow = "#ebcb8b"; - blue = "#81a1c1"; - magenta = "#b48ead"; - cyan = "#88c0d0"; - white = "#e5e9f0"; - }; - bright = { - black = "#4c566a"; - red = "#bf616a"; - green = "#a3be8c"; - yellow = "#ebcb8b"; - blue = "#81a1c1"; - magenta = "#b48ead"; - cyan = "#8fbcbb"; - white = "#eceff4"; - }; - dim = { - black = "#373e4d"; - red = "#94545d"; - green = "#809575"; - yellow = "#b29e75"; - blue = "#68809a"; - magenta = "#8c738c"; - cyan = "#6d96a5"; - white = "#aeb3bb"; - }; - background_opacity = 0.9; - live_config_reload = true; - mouse = { - hide_when_typing = true; - }; - + inherit (theme) colors; + # colors = { + # primary = { + # background = "#2e3440"; + # foreground = "#d8dee9"; + # dim_foreground = "#a5abb6"; + # }; + # cursor = { + # text = "#2e3440"; + # cursor = "#d8dee9"; + # }; + # vi_mode_cursor = { + # text = "#2e3440"; + # cursor = "#d8dee9"; + # }; + # selection = { + # text = "CellForeground"; + # background = "#4c566a"; + # }; + # search = { + # matches = { + # foreground = "CellBackground"; + # background = "#88c0d0"; + # }; + # bar = { + # background = "#434c5e"; + # foreground = "#d8dee9"; + # }; + # }; + # normal = { + # black = "#3b4252"; + # red = "#bf616a"; + # green = "#a3be8c"; + # yellow = "#ebcb8b"; + # blue = "#81a1c1"; + # magenta = "#b48ead"; + # cyan = "#88c0d0"; + # white = "#e5e9f0"; + # }; + # bright = { + # black = "#4c566a"; + # red = "#bf616a"; + # green = "#a3be8c"; + # yellow = "#ebcb8b"; + # blue = "#81a1c1"; + # magenta = "#b48ead"; + # cyan = "#8fbcbb"; + # white = "#eceff4"; + # }; + # dim = { + # black = "#373e4d"; + # red = "#94545d"; + # green = "#809575"; + # yellow = "#b29e75"; + # blue = "#68809a"; + # magenta = "#8c738c"; + # cyan = "#6d96a5"; + # white = "#aeb3bb"; + # }; + # }; + background_opacity = 0.9; + live_config_reload = true; + mouse = { + hide_when_typing = true; }; + }; }; }; diff --git a/home-manager/modules/dunst/default.nix b/home-manager/modules/dunst/default.nix index 91f8735..1c6a661 100644 --- a/home-manager/modules/dunst/default.nix +++ b/home-manager/modules/dunst/default.nix @@ -62,16 +62,17 @@ in urgency_low = { background = "#282a36"; foreground = "#6272a4"; - timeout = 3; + timeout = 10; }; urgency_normal = { background = "#282a36"; foreground = "#bd93f9"; - timeout = 3; + timeout = 10; }; urgency_high = { background = "#ff5555"; foreground = "#f8f8f2"; + frame_color = "#ff5555"; timeout = 0; }; }; diff --git a/home-manager/modules/firefox/default.nix b/home-manager/modules/firefox/default.nix index a390b46..dda07de 100644 --- a/home-manager/modules/firefox/default.nix +++ b/home-manager/modules/firefox/default.nix @@ -13,6 +13,9 @@ let "privacy.webrtc.allowSilencingNotifications" = true; "privacy.webrtc.legacyGlobalIndicator" = false; "browser.shell.checkDefaultBrowser" = false; + "security.tls.enable_0rtt_data" = false; + "media.ffmpeg.vaapi.enabled" = true; + "media.rdd-ffmpeg.enabled" = true; }; nonDefaultDesktop = pkgs.makeDesktopItem { diff --git a/home-manager/modules/fish/default.nix b/home-manager/modules/fish/default.nix index 5e96bfb..26fc412 100644 --- a/home-manager/modules/fish/default.nix +++ b/home-manager/modules/fish/default.nix @@ -31,6 +31,18 @@ in }; }; + plugins = [ + { + name = "dracula"; + src = pkgs.fetchFromGitHub { + owner = "dracula"; + repo = "fish"; + rev = "28db361b55bb49dbfd7a679ebec9140be8c2d593"; + sha256 = "07kz44ln75n4r04wyks1838nhmhr7jqmsc1rh7am7glq9ja9inmx"; + }; + } + ]; + shellAliases = { # code = "${pkgs.vscode}/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland"; ls = "${pkgs.exa}/bin/exa -Fb"; diff --git a/home-manager/modules/foot/default.nix b/home-manager/modules/foot/default.nix new file mode 100644 index 0000000..cab9d99 --- /dev/null +++ b/home-manager/modules/foot/default.nix @@ -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 + }; + }; + }; + }; +} diff --git a/home-manager/modules/neovim/default.nix b/home-manager/modules/neovim/default.nix new file mode 100644 index 0000000..6e1c76d --- /dev/null +++ b/home-manager/modules/neovim/default.nix @@ -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; + }; + }; +} diff --git a/home-manager/modules/obs-studio/default.nix b/home-manager/modules/obs-studio/default.nix new file mode 100644 index 0000000..5ad9561 --- /dev/null +++ b/home-manager/modules/obs-studio/default.nix @@ -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 + ]; + }; + }; +} diff --git a/home-manager/modules/sway/default.nix b/home-manager/modules/sway/default.nix index 5047ebb..92c70a7 100644 --- a/home-manager/modules/sway/default.nix +++ b/home-manager/modules/sway/default.nix @@ -26,6 +26,47 @@ in 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"; down = "e"; up = "i"; diff --git a/home-manager/modules/tmux/default.nix b/home-manager/modules/tmux/default.nix index 8594dfc..8b78ef4 100644 --- a/home-manager/modules/tmux/default.nix +++ b/home-manager/modules/tmux/default.nix @@ -10,11 +10,24 @@ in config = mkIf (cfg.enable) { programs.tmux = { enable = true; - shortcut = "a"; + prefix = "C-a"; terminal = "tmux-256color"; clock24 = true; baseIndex = 1; 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 = '' source ${pkgs.powerline}/share/tmux/powerline.conf @@ -22,7 +35,7 @@ in 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 diff --git a/home-manager/modules/vscode/default.nix b/home-manager/modules/vscode/default.nix index 54d6ec7..cc0254a 100644 --- a/home-manager/modules/vscode/default.nix +++ b/home-manager/modules/vscode/default.nix @@ -45,6 +45,7 @@ in # msaraiva.surface # pgourlain.erlang # phoenixframework.phoenix + rubymaniac.vscode-paste-and-indent # surajbarkale.ninja timonwong.shellcheck # twxs.cmake diff --git a/modules/base/default.nix b/modules/base/default.nix index 9f11366..588d9a3 100644 --- a/modules/base/default.nix +++ b/modules/base/default.nix @@ -3,6 +3,7 @@ with lib; let cfg = config.eboskma.base; + qmkUdevRules = (builtins.readFile ./qmk.rules); in { options.eboskma.base = { @@ -44,5 +45,9 @@ in usbutils ht-rust ]; + + services.udev = { + extraRules = qmkUdevRules; + }; }; } diff --git a/modules/base/qmk.rules b/modules/base/qmk.rules new file mode 100644 index 0000000..57806f9 --- /dev/null +++ b/modules/base/qmk.rules @@ -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" diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index c1d84a4..2d99420 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -52,6 +52,7 @@ in work = config.eboskma.base.work; }; fish.enable = true; + foot.enable = true; git = { enable = true; name = "Erwin Boskma"; @@ -59,6 +60,8 @@ in signingKey = "EE7ADEFE1D943C7B"; }; gpg.enable = true; + neovim.enable = true; + obs-studio.enable = true; rofi.enable = true; vscode.enable = true; sway.enable = true; @@ -77,10 +80,10 @@ in imv (jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; }) mpv - neovim nomachine-client pamedia pass + quintom-cursor-theme procs ripgrep signal-desktop @@ -89,9 +92,10 @@ in steam-tui tdesktop unzip + xdg-utils 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 = { enable = true; @@ -111,6 +115,7 @@ in gtk3.extraConfig = { gtk-application-prefer-dark-theme = true; + gtk-cursor-theme-name = "Quintom_Ink"; }; }; @@ -129,8 +134,11 @@ in ../../home-manager/modules/electron ../../home-manager/modules/firefox ../../home-manager/modules/fish + ../../home-manager/modules/foot ../../home-manager/modules/git ../../home-manager/modules/gpg + ../../home-manager/modules/neovim + ../../home-manager/modules/obs-studio ../../home-manager/modules/rofi ../../home-manager/modules/vscode ../../home-manager/modules/sway @@ -194,5 +202,9 @@ in AMD_VULKAN_ICD = "RADV"; }; + environment.etc = { + "X11/xkb".source = "${pkgs.xkeyboard_config}/etc/X11/xkb"; + }; + }; } diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index afbfb1a..b463606 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -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 = { "greetd/sway-config" = { diff --git a/modules/greetd/sway-config b/modules/greetd/sway-config index f04fad5..a6c0955 100644 --- a/modules/greetd/sway-config +++ b/modules/greetd/sway-config @@ -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' +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/* diff --git a/modules/sound/default.nix b/modules/sound/default.nix index 8189f4a..fbe5009 100644 --- a/modules/sound/default.nix +++ b/modules/sound/default.nix @@ -14,6 +14,9 @@ in media-session.enable = true; }; }; + + security.rtkit.enable = true; + environment.systemPackages = with pkgs; [ pavucontrol ]; users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "audio" ]; diff --git a/overlays/default.nix b/overlays/default.nix index 97d3fd9..0ec7418 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,4 +1,4 @@ -final: prev: { +final: prev: rec { rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland { }; nix-plugins = prev.pkgs.callPackage ../pkgs/nix-plugins { }; lunarvim = prev.pkgs.callPackage ../pkgs/lunarvim { }; @@ -6,4 +6,6 @@ final: prev: { { 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; }; } diff --git a/pkgs/obs-backgroundremoval/cmake_set_version.patch b/pkgs/obs-backgroundremoval/cmake_set_version.patch new file mode 100644 index 0000000..92fb650 --- /dev/null +++ b/pkgs/obs-backgroundremoval/cmake_set_version.patch @@ -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}" ) diff --git a/pkgs/obs-backgroundremoval/default.nix b/pkgs/obs-backgroundremoval/default.nix new file mode 100644 index 0000000..da04a01 --- /dev/null +++ b/pkgs/obs-backgroundremoval/default.nix @@ -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 ]; +} diff --git a/pkgs/onnx-runtime/default.nix b/pkgs/onnx-runtime/default.nix new file mode 100644 index 0000000..89ef24a --- /dev/null +++ b/pkgs/onnx-runtime/default.nix @@ -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/ + ''; +} diff --git a/pkgs/onnx-runtime/result b/pkgs/onnx-runtime/result new file mode 120000 index 0000000..63c336c --- /dev/null +++ b/pkgs/onnx-runtime/result @@ -0,0 +1 @@ +/nix/store/fvn0n4aaj7w9r4xlaf8kg7nsvy1lqbwh-onnx-runtime-1.7.0 \ No newline at end of file