Compare commits
2 Commits
c60b412005
...
4598d10b2e
Author | SHA1 | Date |
---|---|---|
Agatha Lovelace | 4598d10b2e | |
Agatha Lovelace | 3c4a6243a3 |
|
@ -21,7 +21,7 @@
|
|||
serviceConfig = {
|
||||
ExecStart = "${pkgs.noisetorch}/bin/noisetorch -i -s ${
|
||||
if config.networking.hostName == "tears" then
|
||||
"UMC202HD_Left"
|
||||
"US-4x4HR_ch0"
|
||||
else
|
||||
"alsa_input.pci-0000_00_1f.3.analog-stereo"
|
||||
}";
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
services.sxhkd = {
|
||||
enable = true;
|
||||
keybindings = {
|
||||
# Disable middle click paste
|
||||
"~button2" = "echo -n | xclip -in";
|
||||
# Terminal
|
||||
"super + Return" = "kitty";
|
||||
"Caps_Lock" = "kitty";
|
||||
|
@ -62,11 +64,7 @@
|
|||
# Program launcher
|
||||
"super + @space" = "rofi -show drun";
|
||||
# Clipboard
|
||||
"super + v" = ''
|
||||
CM_LAUNCHER=rofi clipmenu \
|
||||
-theme-str 'listview \{ spacing: 0; \}' \
|
||||
-theme-str 'window \{ width: 30em; \}'
|
||||
'';
|
||||
"super + v" = "clipcat-menu";
|
||||
# Calculator
|
||||
"super + shift + c" = ''
|
||||
ROFI_PLUGIN_PATH=${pkgs.rofi-calc}/lib/rofi rofi -show calc -modi calc -calc-command '${pkgs.xdotool}/bin/xdotool type --clearmodifiers "\{result\}'
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
# Persistent clipboard
|
||||
services.clipcat.enable = true;
|
||||
|
||||
home-manager.users.agatha = {
|
||||
xdg.configFile."clipcat/clipcatd.toml".text = ''
|
||||
daemonize = true
|
||||
pid_file = "/run/user/1000/clipcatd.pid"
|
||||
max_history = 50
|
||||
history_file_path = "/home/agatha/.cache/clipcat/clipcatd-history"
|
||||
snippets = []
|
||||
|
||||
[log]
|
||||
emit_journald = true
|
||||
emit_stdout = false
|
||||
emit_stderr = false
|
||||
level = "INFO"
|
||||
|
||||
[watcher]
|
||||
load_current = true
|
||||
enable_clipboard = true
|
||||
enable_primary = false
|
||||
sensitive_x11_atoms = []
|
||||
filter_text_min_length = 1
|
||||
denied_text_regex_patterns = []
|
||||
capture_image = true
|
||||
|
||||
[grpc]
|
||||
enable_http = false
|
||||
enable_local_socket = true
|
||||
local_socket = "/run/user/1000/clipcat/grpc.sock"
|
||||
|
||||
[desktop_notification]
|
||||
enable = true
|
||||
icon = "accessories-clipboard"
|
||||
timeout_ms = 2000
|
||||
long_plaintext_length = 2000
|
||||
'';
|
||||
|
||||
xdg.configFile."clipcat/clipcatctl.toml".text = ''
|
||||
server_endpoint = "/run/user/1000/clipcat/grpc.sock"
|
||||
|
||||
[log]
|
||||
emit_journald = true
|
||||
emit_stdout = false
|
||||
emit_stderr = false
|
||||
level = "INFO"
|
||||
'';
|
||||
|
||||
xdg.configFile."clipcat/clipcat-menu.toml".text = ''
|
||||
server_endpoint = "/run/user/1000/clipcat/grpc.sock"
|
||||
finder = "rofi"
|
||||
|
||||
[rofi]
|
||||
line_length = 35
|
||||
menu_length = 15
|
||||
menu_prompt = "Clipboard"
|
||||
extra_arguments = []
|
||||
|
||||
[log]
|
||||
emit_journald = true
|
||||
emit_stdout = false
|
||||
emit_stderr = false
|
||||
level = "INFO"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -3,6 +3,7 @@
|
|||
../restic.nix
|
||||
./audio.nix
|
||||
./bspwm.nix
|
||||
./clipboard.nix
|
||||
./dunst.nix
|
||||
./element.nix
|
||||
./iosevka.nix
|
||||
|
@ -32,7 +33,6 @@
|
|||
brightnessctl
|
||||
broot
|
||||
bspm
|
||||
clipmenu
|
||||
colmena
|
||||
darktable
|
||||
element-desktop
|
||||
|
|
|
@ -54,43 +54,36 @@
|
|||
hardware.cpu.amd.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
# Workaround for UMC202HD only exposing a single stereo input
|
||||
environment.etc."pipewire/pipewire.conf.d/91-umc202hd.conf".text = ''
|
||||
# Creating separate mono sources for Tascam US-4x4HR
|
||||
environment.etc."pipewire/pipewire.conf.d/91-us-4x4hr.conf".text = let
|
||||
name = "US-4x4HR";
|
||||
target = "alsa_input.usb-TASCAM_US-4x4HR_no_serial_number-00.pro-input-0";
|
||||
input = ch: ''
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.description = "${name} Input ${toString ch} Mono"
|
||||
capture.props = {
|
||||
node.name = "capture.${name}_ch${toString ch}"
|
||||
audio.position = [ AUX${toString ch} ]
|
||||
stream.dont-remix = true
|
||||
target.object = "${target}"
|
||||
node.passive = true
|
||||
}
|
||||
playback.props = {
|
||||
node.name = "${name}_ch${toString ch}"
|
||||
media.class = "Audio/Source"
|
||||
audio.position = [ MONO ]
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
in ''
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.description = "UMC202HD Left Input Mono"
|
||||
capture.props = {
|
||||
node.name = "capture.UMC202HD_Left"
|
||||
audio.position = [ AUX0 ]
|
||||
stream.dont-remix = true
|
||||
target.object = "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-stereo"
|
||||
node.passive = true
|
||||
}
|
||||
playback.props = {
|
||||
node.name = "UMC202HD_Left"
|
||||
media.class = "Audio/Source"
|
||||
audio.position = [ MONO ]
|
||||
}
|
||||
}
|
||||
}
|
||||
{ name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.description = "UMC202HD Right Input Mono"
|
||||
capture.props = {
|
||||
node.name = "capture.UMC_202HD_Right"
|
||||
audio.position = [ AUX1 ]
|
||||
stream.dont-remix = true
|
||||
target.object = "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-stereo"
|
||||
node.passive = true
|
||||
}
|
||||
playback.props = {
|
||||
node.name = "UMC202HD_Right"
|
||||
media.class = "Audio/Source"
|
||||
audio.position = [ MONO ]
|
||||
}
|
||||
}
|
||||
}
|
||||
${input 0}
|
||||
${input 1}
|
||||
${input 2}
|
||||
${input 3}
|
||||
]
|
||||
'';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue