Compare commits
9 Commits
35856afcad
...
68dbe9a7ff
| Author | SHA1 | Date | |
|---|---|---|---|
|
68dbe9a7ff
|
|||
|
3027f71a4b
|
|||
|
7bcf61cfbf
|
|||
|
35e224f09f
|
|||
|
e0928bccd2
|
|||
|
e997790e06
|
|||
|
9109f9cce5
|
|||
|
39d5cb1ada
|
|||
|
fa6ed5655a
|
@@ -82,6 +82,7 @@
|
||||
};
|
||||
sound = {
|
||||
enable = true;
|
||||
noisetorch = true;
|
||||
jack = true;
|
||||
scarlett.enable = true;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
obs-studio,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: rec {
|
||||
pname = "obs-image-reaction";
|
||||
version = "0.1.0";
|
||||
# https://github.com/scaledteam/obs-image-reaction
|
||||
src = fetchFromGitHub {
|
||||
owner = "scaledteam";
|
||||
repo = pname;
|
||||
rev = "4cd345e78c714e80e894cfb51c72b94135a6014d";
|
||||
hash = "sha256-mC1B8tveHx35pfbAcOlosB8YKaBVg87MjXbr79sf7+k=";
|
||||
};
|
||||
nativeBuildInputs = [cmake];
|
||||
buildInputs = [obs-studio];
|
||||
postInstall = "rm -rf $out/obs-plugins $out/data";
|
||||
|
||||
meta = {
|
||||
description = "OBS Plugin with image that reacts to sound source";
|
||||
homepage = "https://github.com/scaledteam/obs-image-reaction";
|
||||
license = lib.licenses.gpl2;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -20,6 +20,9 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
mySystem.users.phundrak = mkIf cfg.mySystem.users.phundrak.enable {
|
||||
extraGroups = ["docker"] ++ lists.optional cfg.podman.enable "podman";
|
||||
};
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
dive # A tool for exploring each layer in a docker image
|
||||
@@ -29,7 +32,7 @@ in {
|
||||
podman-compose
|
||||
podman-desktop
|
||||
];
|
||||
virtualisation = mkIf cfg.enable {
|
||||
virtualisation = {
|
||||
docker = mkIf (!cfg.podman.enable) {
|
||||
enable = true;
|
||||
enableNvidia = cfg.nvidia.enable;
|
||||
|
||||
@@ -9,6 +9,7 @@ with lib; let
|
||||
in {
|
||||
options.mySystem.hardware.sound = {
|
||||
enable = mkEnableOption "Whether to enable sounds with Pipewire";
|
||||
noisetorch = mkEnableOption "Whether to activate noisetorch support";
|
||||
scarlett.enable = mkEnableOption "Activate support for Scarlett sound card";
|
||||
alsa = mkOption {
|
||||
type = types.bool;
|
||||
@@ -44,7 +45,7 @@ in {
|
||||
pulseaudio.enable = false;
|
||||
};
|
||||
programs.noisetorch = mkIf cfg.enable {
|
||||
inherit (cfg) enable;
|
||||
enable = cfg.noisetorch;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,12 +11,8 @@ in {
|
||||
enable = mkEnableOption "Enable Flatpak support";
|
||||
builder.enable = mkEnableOption "Enable Flatpak builder";
|
||||
};
|
||||
config = {
|
||||
services.flatpak = mkIf cfg.enable {
|
||||
inherit (cfg) enable;
|
||||
};
|
||||
environment.systemPackages = mkIf cfg.builder.enable [
|
||||
pkgs.flatpak-buildR
|
||||
];
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = lists.optional cfg.builder.enable pkgs.flatpak-builder;
|
||||
services.flatpak.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,13 +10,20 @@ in {
|
||||
options.mySystem.users.phundrak = {
|
||||
enable = mkEnableOption "Enables user phundrak";
|
||||
trusted = mkEnableOption "Mark the user as trusted by Nix";
|
||||
extraGroups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = ["feedbackd"];
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
users.users.phundrak = mkIf cfg.enable {
|
||||
isNormalUser = true;
|
||||
description = "Lucien Cartier-Tilet";
|
||||
extraGroups = ["networkmanager" "wheel" "docker" "dialout" "podman" "plugdev" "games" "audio" "input" "uinput"];
|
||||
extraGroups =
|
||||
["networkmanager" "wheel" "dialout" "plugdev" "games" "audio" "input"]
|
||||
++ cfg.extraGroups;
|
||||
shell = pkgs.zsh;
|
||||
openssh.authorizedKeys.keyFiles = lib.filesystem.listFilesRecursive ../../users/phundrak/keys;
|
||||
};
|
||||
|
||||
@@ -68,6 +68,11 @@ in {
|
||||
hibernate = ["systemctl" "hibernate"];
|
||||
reboot = ["systemctl" "reboot"];
|
||||
};
|
||||
utilities.toasts = {
|
||||
capsLockChanged = false;
|
||||
numLockChanged = false;
|
||||
kbLayoutChanged = false;
|
||||
};
|
||||
};
|
||||
cli = {
|
||||
enable = true;
|
||||
|
||||
@@ -70,6 +70,7 @@ in {
|
||||
{
|
||||
"marpa" = [
|
||||
"DP-1, 3440x1440@144, 1080x550, 1"
|
||||
# "DP-1, 2560x1440@144, 1080x550, 1" # streaming
|
||||
"DP-2, 2560x1080@60, 0x0, 1, transform, 1"
|
||||
];
|
||||
"gampo" = [];
|
||||
@@ -87,8 +88,9 @@ in {
|
||||
new_status = "inherit";
|
||||
};
|
||||
workspace = [
|
||||
"10, layoutopt:orientation:bottom"
|
||||
"1, layoutopt:orientation:bottom"
|
||||
"9, layoutopt:orientation:bottom"
|
||||
"10, layoutopt:orientation:bottom"
|
||||
];
|
||||
decoration = {
|
||||
rounding = 20;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.desktop.obs;
|
||||
obs-image-reaction = pkgs.callPackage ../../../packages/obs-image-reaction.nix {};
|
||||
in {
|
||||
options.home.desktop.obs.enable = mkEnableOption "Enables OBS Studio";
|
||||
config.programs.obs-studio = mkIf cfg.enable {
|
||||
@@ -13,11 +14,14 @@ in {
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
input-overlay
|
||||
obs-backgroundremoval
|
||||
obs-markdown
|
||||
obs-mute-filter
|
||||
obs-pipewire-audio-capture
|
||||
obs-scale-to-sound
|
||||
obs-source-clone
|
||||
obs-source-record
|
||||
obs-tuna
|
||||
obs-image-reaction
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ in {
|
||||
./mpd.nix
|
||||
./mpd-mpris.nix
|
||||
./mpv.nix
|
||||
./ncmpcpp.nix
|
||||
];
|
||||
|
||||
options.home.media.fullDesktop = mkEnableOption "Enables everything";
|
||||
@@ -18,5 +19,6 @@ in {
|
||||
mopidy.enable = mkDefault cfg.fullDesktop;
|
||||
mpd.enable = mkDefault (cfg.fullDesktop or cfg.mpd-mpris.enable);
|
||||
mpv.enable = mkDefault cfg.fullDesktop;
|
||||
ncmpcpp.enable = mkDefault config.home.media.mpd.enable;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -19,6 +19,11 @@ in {
|
||||
bind_to_address "localhost"
|
||||
auto_update "yes"
|
||||
|
||||
audio_output {
|
||||
type "pipewire"
|
||||
name "PipeWire"
|
||||
}
|
||||
|
||||
audio_output {
|
||||
type "fifo"
|
||||
name "my_fifo"
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.media.ncmpcpp;
|
||||
in {
|
||||
options.home.media.ncmpcpp.enable = mkEnableOption "Enable ncmpcpp";
|
||||
config.programs.ncmpcpp = let
|
||||
musicDir = config.services.mpd.musicDirectory;
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
inherit (cfg) enable;
|
||||
mpdMusicDir = musicDir;
|
||||
settings = {
|
||||
# directories
|
||||
ncmpcpp_directory = "${config.home.homeDirectory}/.config/ncmpcpp";
|
||||
lyrics_directory = "${musicDir}/.lyrics";
|
||||
|
||||
# MPD
|
||||
mpd_host = "localhost";
|
||||
mpd_port = 6600;
|
||||
mpd_connection_timeout = 5;
|
||||
mpd_crossfade_time = 0;
|
||||
|
||||
# music visualizer
|
||||
visualizer_output_name = "my_fifo";
|
||||
visualizer_in_stereo = "yes";
|
||||
# visualizer_type = "spectrum";
|
||||
visualizer_look = "+|";
|
||||
visualizer_color = "blue, cyan, green, yellow, magenta, red";
|
||||
|
||||
system_encoding = "UTF-8";
|
||||
|
||||
# song format
|
||||
song_list_format = "(6)[]{} (23)[red]{a} (26)[yellow]{t|f} (40)[green]{b} (4)[blue]{l}";
|
||||
now_playing_prefix = "$b";
|
||||
now_playing_suffix = "$8$/b";
|
||||
|
||||
# columns settings
|
||||
song_columns_list_format = "(6)[]{} (23)[red]{a} (26)[yellow]{t|f} (40)[green]{b} (4)[blue]{l}";
|
||||
|
||||
playlist_shorten_total_times = "yes";
|
||||
playlist_display_mode = "columns";
|
||||
browser_display_mode = "columns";
|
||||
search_engine_display_mode = "columns";
|
||||
playlist_editor_display_mode = "columns";
|
||||
autocenter_mode = "yes";
|
||||
centered_cursor = "yes";
|
||||
|
||||
progressbar_look = "─> ";
|
||||
header_visibility = "no";
|
||||
statusbar_visibility = "no";
|
||||
titles_visibility = "no";
|
||||
allow_for_physical_item_deletion = "yes";
|
||||
|
||||
lastfm_preferred_language = "en";
|
||||
space_add_mode = "add_remove";
|
||||
|
||||
locked_screen_width_part = "50";
|
||||
ask_for_locked_screen_width_part = "yes";
|
||||
jump_to_now_playing_song_at_start = "yes";
|
||||
ask_before_clearing_playlists = "yes";
|
||||
clock_display_seconds = "no";
|
||||
display_volume_level = "yes";
|
||||
display_bitrate = "no";
|
||||
display_remaining_time = "yes";
|
||||
regular_expressions = "extended";
|
||||
ignore_leading_the = "yes";
|
||||
ignore_diacritics = "yes";
|
||||
mouse_support = "no";
|
||||
tags_separator = ";";
|
||||
enable_window_title = "yes";
|
||||
search_engine_default_search_mode = 1;
|
||||
external_editor = "emacsclient -c";
|
||||
use_console_editor = "yes";
|
||||
|
||||
# colours
|
||||
colors_enabled = "yes";
|
||||
volume_color = "default";
|
||||
progressbar_color = "black";
|
||||
progressbar_elapsed_color = "white";
|
||||
statusbar_color = "white";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -77,8 +77,10 @@
|
||||
general = {
|
||||
# first eight chars to select areas, last three chars
|
||||
# for left, right, middle click
|
||||
# First eigh chars to select areas: auiectsr
|
||||
# last three chars for left, right, and middle click: tsr
|
||||
home_row_keys = "auiectsrtsr";
|
||||
modes = "tile,bisect";
|
||||
modes = "tile,bisect,click";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -242,10 +242,18 @@
|
||||
];
|
||||
}
|
||||
]
|
||||
++ lib.lists.optional config.home.desktop.wl-kbptr.enable {
|
||||
++ lib.lists.optionals config.home.desktop.wl-kbptr.enable [
|
||||
{
|
||||
key = "m";
|
||||
desc = "Mouse Warp";
|
||||
cmd = "wl-kbptr";
|
||||
};
|
||||
}
|
||||
{
|
||||
key = "M";
|
||||
desc = "Mouse click";
|
||||
# cmd = "wl-kbptr -o modes=floating,click";
|
||||
cmd = "wl-kbptr -o modes=floating,click -o mode_floating.source=detect";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user