Compare commits
11 Commits
2667fa7c6c
...
9797eff134
| Author | SHA1 | Date | |
|---|---|---|---|
|
9797eff134
|
|||
|
f235537289
|
|||
|
51839f4268
|
|||
|
26235cd05b
|
|||
|
5769ed0911
|
|||
|
451e6fe017
|
|||
|
cf5f432fc5
|
|||
|
86144349ab
|
|||
|
3dfed89e0b
|
|||
|
63c4dceff5
|
|||
|
291825429a
|
@ -115,6 +115,10 @@ rec {
|
||||
# Java:
|
||||
# gradle
|
||||
|
||||
# Python:
|
||||
# hatch
|
||||
# py-spy
|
||||
|
||||
# Qt:
|
||||
# qt6.wrapQtAppsHook # For the shellHook
|
||||
];
|
||||
@ -203,6 +207,9 @@ rec {
|
||||
# QT imports to use with "qmlls -E"
|
||||
# QML_IMPORT_PATH = "${pkgs.qt6.full}/lib/qt-6/qml";
|
||||
|
||||
# Set PYTHONPATH
|
||||
# PYTHONPATH = ".";
|
||||
|
||||
# =========================================================================================
|
||||
# Define shell environment
|
||||
# =========================================================================================
|
||||
@ -264,6 +271,11 @@ rec {
|
||||
|
||||
# Clojure:
|
||||
# abbr -a clojure-deps "deps-lock --lein"
|
||||
|
||||
# Python:
|
||||
# abbr -a run "python ./app/main.py"
|
||||
# abbr -a profile "py-spy record -o profile.svg -- python ./app/main.py && firefox profile.svg"
|
||||
# abbr -a ptop "py-spy top -- python ./app/main.py"
|
||||
'';
|
||||
in
|
||||
builtins.concatStringsSep "\n" [
|
||||
|
||||
84
flake.lock
generated
84
flake.lock
generated
@ -9,11 +9,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751041811,
|
||||
"narHash": "sha256-NGty9sYgiB5gSa1r0nN4vfaRZcARCQ5TgbpSAPq+umk=",
|
||||
"lastModified": 1751619699,
|
||||
"narHash": "sha256-3Si+Gi0e8PDIzUrV6LYCUN21EvaQyPaOU64kF6KT824=",
|
||||
"owner": "Aylur",
|
||||
"repo": "ags",
|
||||
"rev": "5ee4f3c40f47e12334187ba9305f7c80ee1543fa",
|
||||
"rev": "e5e2efaf2e05e077190cfddabf5b827edae5ef8b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -104,11 +104,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751040887,
|
||||
"narHash": "sha256-fN0wK9vObApD6M0nBJFk687MLuobzO805hBkHM3eRAM=",
|
||||
"lastModified": 1751126708,
|
||||
"narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
|
||||
"owner": "aylur",
|
||||
"repo": "astal",
|
||||
"rev": "71e88fcb57ea80b42efb7bff75a914e0b682059e",
|
||||
"rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -143,11 +143,11 @@
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751041558,
|
||||
"narHash": "sha256-uSfdzrgBAZweKqRfMcioRK1QxDz2mjc73MxVI+fbAGA=",
|
||||
"lastModified": 1751735311,
|
||||
"narHash": "sha256-PvW5QG99yo1caA3YEMHuDHTDaa+kPo4VLqo3h48Ja6A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "50a1de22af011ea05433453f29c445050c4a747c",
|
||||
"rev": "ab81896fac2f4238718d42248af2cba678050963",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -341,11 +341,11 @@
|
||||
"gnim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750803500,
|
||||
"narHash": "sha256-6eM7gaRneUW+Zzg6xZtz6dllaFtUNDVnYH+dPx6XYP4=",
|
||||
"lastModified": 1751120710,
|
||||
"narHash": "sha256-sT1ILM8m1QG8CeMmqLHhW/8T/MzUq3JL9jO3V7FMa4w=",
|
||||
"owner": "aylur",
|
||||
"repo": "gnim",
|
||||
"rev": "ab86c755d5c610999ab0ddcb0f4d60b1ccf5c9c6",
|
||||
"rev": "5d2b734be452e2819f3a7313dbb34fa43c23e5d9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -356,11 +356,11 @@
|
||||
},
|
||||
"hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1750837715,
|
||||
"narHash": "sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA=",
|
||||
"lastModified": 1751432711,
|
||||
"narHash": "sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE+J9w=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "98236410ea0fe204d0447149537a924fb71a6d4f",
|
||||
"rev": "497ae1357f1ac97f1aea31a4cb74ad0d534ef41f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -376,11 +376,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750973805,
|
||||
"narHash": "sha256-BZXgag7I0rnL/HMHAsBz3tQrfKAibpY2vovexl2lS+Y=",
|
||||
"lastModified": 1751729568,
|
||||
"narHash": "sha256-ay7O1jjalUxkL23QWLv9C2s8rdVGs3hUOPZClIbUHKs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "080e8b48b0318b38143d5865de9334f46d51fce3",
|
||||
"rev": "f117b383dd591fd579bce5ee7bac07a3fdc1d050",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1121,11 +1121,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1750646418,
|
||||
"narHash": "sha256-4UAN+W0Lp4xnUiHYXUXAPX18t+bn6c4Btry2RqM9JHY=",
|
||||
"lastModified": 1751274312,
|
||||
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1f426f65ac4e6bf808923eb6f8b8c2bfba3d18c5",
|
||||
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1169,11 +1169,11 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1750776420,
|
||||
"narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
|
||||
"lastModified": 1751637120,
|
||||
"narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
|
||||
"rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1206,11 +1206,11 @@
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751053139,
|
||||
"narHash": "sha256-FMcWdec8fAXs7kiOQBsD+vA/RzjqoDz3zoYgPDQpZlA=",
|
||||
"lastModified": 1751492444,
|
||||
"narHash": "sha256-26NgRXwhNM2x4hrok0C3CqSf2v0vi9byONNON5PzbHQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "c39f5f39c32e0a8fe91bff1cda847de7a0269411",
|
||||
"rev": "239d331bb48673dfd00d7187654892471cd60d44",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1247,15 +1247,14 @@
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751060810,
|
||||
"narHash": "sha256-8lU/u/LhfCr8/0SmQBsAMwtj3IrMgybSQzY3FzEYpwc=",
|
||||
"lastModified": 1751736169,
|
||||
"narHash": "sha256-JTsW3PPda6YWT7dlNZP7wiNhRmZ9qG09aBzvpInDyQE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "539d77173dba7799eafe4b77f993e1ad7419c28e",
|
||||
"rev": "179e95cda1a895ed05b22e8eba14fc61ce28ac2f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1413,27 +1412,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733222881,
|
||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"v4l2loopback-pinned": {
|
||||
"locked": {
|
||||
"lastModified": 1748124733,
|
||||
|
||||
@ -39,8 +39,6 @@ rec {
|
||||
};
|
||||
|
||||
modules = {
|
||||
ags.enable = false; # TODO: Configure
|
||||
|
||||
chromium = {
|
||||
enable = true;
|
||||
google = false;
|
||||
@ -53,6 +51,8 @@ rec {
|
||||
font = "JetBrainsMono Nerd Font Mono";
|
||||
};
|
||||
|
||||
docs.enable = true;
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
@ -108,6 +108,7 @@ rec {
|
||||
"nextcloud --background"
|
||||
"keepassxc"
|
||||
"ferdium"
|
||||
"kdeconnect-indicator"
|
||||
];
|
||||
};
|
||||
|
||||
@ -205,7 +206,6 @@ rec {
|
||||
|
||||
hyprpanel.enable = true;
|
||||
kitty.enable = true;
|
||||
latex.enable = true;
|
||||
|
||||
neovim = {
|
||||
enable = true;
|
||||
@ -215,6 +215,8 @@ rec {
|
||||
|
||||
nnn.enable = false;
|
||||
|
||||
rmpc.enable = true;
|
||||
|
||||
rofi = {
|
||||
enable = true;
|
||||
# theme = "Three-Bears";
|
||||
@ -281,6 +283,7 @@ rec {
|
||||
|
||||
# Files to generate in the home directory are specified here.
|
||||
file = let
|
||||
# NOTE: SSH public key
|
||||
sshPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAoJac+GdGtzblCMA0lBfMdSR6aQ4YyovrNglCFGIny christoph.urlacher@protonmail.com";
|
||||
in {
|
||||
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
||||
@ -355,10 +358,12 @@ rec {
|
||||
lm_sensors # Readout hardware sensors
|
||||
acpica-tools # Dump ACPI tables etc.
|
||||
|
||||
# Video/Image utils
|
||||
# Video/Image/Audio utils
|
||||
ffmpeg_7-full # I love ffmpeg (including ffplay)
|
||||
ffmpeg-normalize # Normalize audio
|
||||
imagemagick # Convert image (magic)
|
||||
mp3val # Validate mp3 files
|
||||
flac # Validate flac files
|
||||
|
||||
# Document utils
|
||||
poppler_utils # pdfunite
|
||||
@ -458,6 +463,64 @@ rec {
|
||||
};
|
||||
};
|
||||
|
||||
# Music taggins and mpd stats collection
|
||||
beets = {
|
||||
enable = true;
|
||||
mpdIntegration = {
|
||||
host = "127.0.0.1";
|
||||
port = config.services.mpd.network.port;
|
||||
enableUpdate = true;
|
||||
enableStats = true;
|
||||
};
|
||||
|
||||
# https://beets.readthedocs.io/en/stable/reference/config.html
|
||||
settings = {
|
||||
directory = "${home.homeDirectory}/Music";
|
||||
threaded = "yes";
|
||||
art_filename = "cover";
|
||||
|
||||
ui = {
|
||||
color = "yes";
|
||||
};
|
||||
|
||||
import = {
|
||||
write = "yes"; # Write metadata to files
|
||||
copy = "yes"; # Move files to the music directory when importing
|
||||
log = "${home.homeDirectory}/Music/.beetslog.txt";
|
||||
};
|
||||
|
||||
paths = {
|
||||
default = "$albumartist/$albumartist - $album/$track $title";
|
||||
singleton = "$arist/0 Singles/$artist - $title"; # Single songs
|
||||
comp = "1 Various Arists/$album/$track $title";
|
||||
};
|
||||
|
||||
plugins = [
|
||||
"badfiles" # check audio file integrity
|
||||
"duplicates"
|
||||
"fetchart" # pickup local cover art or search online
|
||||
"fish" # beet fish generates ~/.config/fish/completions file
|
||||
"lyrics" # fetch song lyrics
|
||||
"replaygain" # write replaygain tags for automatic loudness adjustments
|
||||
];
|
||||
|
||||
fetchart = {
|
||||
auto = "yes";
|
||||
sources = "filesystem coverart itunes amazon albumart"; # sources are queried in this order
|
||||
};
|
||||
|
||||
lyrics = {
|
||||
synced = "yes"; # prefer synced lyrics if provided
|
||||
};
|
||||
|
||||
replaygain = {
|
||||
auto = "yes"; # analyze on import automatically
|
||||
backend = "ffmpeg";
|
||||
overwrite = true; # re-analyze files with existing replaygain tags on import
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
btop.enable = true;
|
||||
|
||||
direnv = {
|
||||
@ -621,6 +684,7 @@ rec {
|
||||
};
|
||||
|
||||
nushell.enable = false;
|
||||
|
||||
ssh = {
|
||||
enable = true; # NOTE: Do NOT generate .ssh/config using HM, as it will have invalid permissions!
|
||||
compression = true;
|
||||
@ -873,7 +937,63 @@ rec {
|
||||
};
|
||||
|
||||
services = {
|
||||
# kdeconnect.enable = true; # Note: This does not setup the firewall at all
|
||||
kdeconnect.enable = nixosConfig.programs.kdeconnect.enable; # Only the system package sets up the firewall
|
||||
|
||||
mpd = {
|
||||
enable = true;
|
||||
dataDir = "${home.homeDirectory}/Music/.mpd";
|
||||
musicDirectory = "${home.homeDirectory}/Music";
|
||||
network = {
|
||||
listenAddress = "127.0.0.1"; # Listen on all addresses: "any"
|
||||
port = 6600;
|
||||
};
|
||||
extraArgs = ["--verbose"];
|
||||
|
||||
extraConfig = ''
|
||||
# Refresh the database whenever files in the musicDirectory change
|
||||
auto_update "yes"
|
||||
|
||||
# Don't start playback after startup
|
||||
restore_paused "yes"
|
||||
|
||||
# Use track tags on shuffle and album tags on album play
|
||||
replaygain "auto"
|
||||
|
||||
# PipeWire main output
|
||||
audio_output {
|
||||
type "pipewire"
|
||||
name "PipeWire Sound Server"
|
||||
|
||||
mixer_type "hardware"
|
||||
|
||||
# Use hardware mixer instead of software volume filter (replaygain_handler "software")
|
||||
replay_gain_handler "mixer"
|
||||
}
|
||||
|
||||
# FiFo output for cava visualization
|
||||
audio_output {
|
||||
type "fifo"
|
||||
name "my_fifo"
|
||||
path "/tmp/mpd.fifo"
|
||||
format "44100:16:2"
|
||||
}
|
||||
|
||||
# Pre-cache 1GB of the queue
|
||||
# input_cache {
|
||||
# size "1 GB"
|
||||
# }
|
||||
|
||||
# follow_outside_symlinks "no" # If mpd should follow symlinks pointing outside the musicDirectory
|
||||
# follow_inside_symlinks "yes" # If mpd should follow symlinks pointing inside the musicDirectory
|
||||
'';
|
||||
};
|
||||
|
||||
# MPD integration with mpris (used by player-ctl).
|
||||
# We want to use mpris as it also supports other players (e.g. Spotify) or browsers.
|
||||
mpd-mpris = {
|
||||
enable = true;
|
||||
mpd.useLocal = true;
|
||||
};
|
||||
|
||||
flatpak = {
|
||||
# FlatHub stable is only added by default if no custom remotes are specified
|
||||
|
||||
14
home/modules/1_deprecated/ags/config/tsconfig.json
Normal file
14
home/modules/1_deprecated/ags/config/tsconfig.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"compilerOptions": {
|
||||
"experimentalDecorators": true,
|
||||
"strict": true,
|
||||
"target": "ES2022",
|
||||
"module": "ES2022",
|
||||
"moduleResolution": "Bundler",
|
||||
// "checkJs": true,
|
||||
// "allowJs": true,
|
||||
"jsx": "react-jsx",
|
||||
"jsxImportSource": "astal/gtk4",
|
||||
}
|
||||
}
|
||||
@ -3,18 +3,18 @@
|
||||
# Obsolete modules are kept in "1_deprecated" for reference.
|
||||
|
||||
# My own HM modules
|
||||
./ags
|
||||
./chromium
|
||||
./color
|
||||
./docs
|
||||
./firefox
|
||||
./fish
|
||||
./hyprland
|
||||
./hyprpanel
|
||||
./kitty
|
||||
./latex
|
||||
./neovim
|
||||
./nnn
|
||||
./paths
|
||||
./rmpc
|
||||
./rofi
|
||||
./waybar
|
||||
./zathura
|
||||
|
||||
@ -5,11 +5,11 @@
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.modules) latex;
|
||||
inherit (config.modules) docs;
|
||||
in {
|
||||
options.modules.latex = import ./options.nix {inherit lib mylib;};
|
||||
options.modules.docs = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = lib.mkIf latex.enable {
|
||||
config = lib.mkIf docs.enable {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
texliveFull
|
||||
9
home/modules/docs/options.nix
Normal file
9
home/modules/docs/options.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOption "Enable Document Support (e.g. LaTeX)";
|
||||
}
|
||||
@ -125,7 +125,7 @@ in {
|
||||
don-t-fuck-with-paste
|
||||
enhancer-for-youtube
|
||||
fastforwardteam # skip URL shorteners
|
||||
faststream # replace video players with a faster one
|
||||
# faststream # replace video players with a faster one
|
||||
frankerfacez # twitch emotes
|
||||
indie-wiki-buddy
|
||||
keepassxc-browser
|
||||
|
||||
@ -475,6 +475,9 @@ in {
|
||||
disable_hyprland_logo = true;
|
||||
force_default_wallpaper = 0;
|
||||
|
||||
# Say no to the "Application not responding" window
|
||||
enable_anr_dialog = false;
|
||||
|
||||
disable_splash_rendering = true;
|
||||
font_family = "${color.font}";
|
||||
};
|
||||
|
||||
361
home/modules/rmpc/default.nix
Normal file
361
home/modules/rmpc/default.nix
Normal file
@ -0,0 +1,361 @@
|
||||
{
|
||||
config,
|
||||
nixosConfig,
|
||||
lib,
|
||||
mylib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.modules) rmpc;
|
||||
in {
|
||||
options.modules.rmpc = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = lib.mkIf rmpc.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.services.mpd.enable;
|
||||
message = "Enabling rmpc requires mpd!";
|
||||
}
|
||||
];
|
||||
|
||||
programs.rmpc.enable = true;
|
||||
|
||||
home.file = {
|
||||
".config/rmpc/config.ron".text = ''
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
#![enable(unwrap_variant_newtypes)]
|
||||
(
|
||||
address: "127.0.0.1:${builtins.toString config.services.mpd.network.port}",
|
||||
password: None,
|
||||
theme: "chriphost",
|
||||
cache_dir: None,
|
||||
on_song_change: None,
|
||||
volume_step: 5,
|
||||
max_fps: 30,
|
||||
scrolloff: 0,
|
||||
wrap_navigation: false,
|
||||
enable_mouse: true,
|
||||
enable_config_hot_reload: true,
|
||||
status_update_interval_ms: 1000,
|
||||
rewind_to_start_sec: 30,
|
||||
|
||||
// Keep this on false, otherwise queue changes will be applied to the current playlist
|
||||
reflect_changes_to_playlist: false,
|
||||
|
||||
select_current_song_on_change: false,
|
||||
browser_song_sort: [Disc, Track, Artist, Title],
|
||||
directories_sort: SortFormat(group_by_type: true, reverse: false),
|
||||
album_art: (
|
||||
method: Auto,
|
||||
max_size_px: (width: 1200, height: 1200),
|
||||
disabled_protocols: ["http://", "https://"],
|
||||
vertical_align: Center,
|
||||
horizontal_align: Center,
|
||||
),
|
||||
keybinds: (
|
||||
global: {
|
||||
":": CommandMode,
|
||||
",": VolumeDown,
|
||||
"s": Stop,
|
||||
".": VolumeUp,
|
||||
"<Tab>": NextTab,
|
||||
"<S-Tab>": PreviousTab,
|
||||
"1": SwitchToTab("Queue"),
|
||||
"2": SwitchToTab("Directories"),
|
||||
"3": SwitchToTab("Artists"),
|
||||
"4": SwitchToTab("Album Artists"),
|
||||
"5": SwitchToTab("Albums"),
|
||||
"6": SwitchToTab("Playlists"),
|
||||
"7": SwitchToTab("Search"),
|
||||
"q": Quit,
|
||||
">": NextTrack,
|
||||
"p": TogglePause,
|
||||
"<": PreviousTrack,
|
||||
"f": SeekForward,
|
||||
"z": ToggleRepeat,
|
||||
"x": ToggleRandom,
|
||||
"c": ToggleConsume,
|
||||
"v": ToggleSingle,
|
||||
"b": SeekBack,
|
||||
"~": ShowHelp,
|
||||
"u": Update,
|
||||
"U": Rescan,
|
||||
"I": ShowCurrentSongInfo,
|
||||
"O": ShowOutputs,
|
||||
"P": ShowDecoders,
|
||||
"R": AddRandom,
|
||||
},
|
||||
navigation: {
|
||||
"k": Up,
|
||||
"j": Down,
|
||||
"h": Left,
|
||||
"l": Right,
|
||||
"<Up>": Up,
|
||||
"<Down>": Down,
|
||||
"<Left>": Left,
|
||||
"<Right>": Right,
|
||||
"<C-k>": PaneUp,
|
||||
"<C-j>": PaneDown,
|
||||
"<C-h>": PaneLeft,
|
||||
"<C-l>": PaneRight,
|
||||
"<C-u>": UpHalf,
|
||||
"N": PreviousResult,
|
||||
"a": Add,
|
||||
"A": AddAll,
|
||||
"r": Rename,
|
||||
"n": NextResult,
|
||||
"g": Top,
|
||||
"<Space>": Select,
|
||||
"<C-Space>": InvertSelection,
|
||||
"G": Bottom,
|
||||
"<CR>": Confirm,
|
||||
"i": FocusInput,
|
||||
"J": MoveDown,
|
||||
"<C-d>": DownHalf,
|
||||
"/": EnterSearch,
|
||||
"<C-c>": Close,
|
||||
"<Esc>": Close,
|
||||
"K": MoveUp,
|
||||
"D": Delete,
|
||||
"B": ShowInfo,
|
||||
},
|
||||
queue: {
|
||||
"D": DeleteAll,
|
||||
"<CR>": Play,
|
||||
"<C-s>": Save,
|
||||
"a": AddToPlaylist,
|
||||
"d": Delete,
|
||||
"C": JumpToCurrent,
|
||||
"X": Shuffle,
|
||||
},
|
||||
),
|
||||
search: (
|
||||
case_sensitive: false,
|
||||
mode: Contains,
|
||||
tags: [
|
||||
(value: "any", label: "Any Tag"),
|
||||
(value: "artist", label: "Artist"),
|
||||
(value: "album", label: "Album"),
|
||||
(value: "albumartist", label: "Album Artist"),
|
||||
(value: "title", label: "Title"),
|
||||
(value: "filename", label: "Filename"),
|
||||
(value: "genre", label: "Genre"),
|
||||
],
|
||||
),
|
||||
artists: (
|
||||
album_display_mode: SplitByDate,
|
||||
album_sort_by: Date,
|
||||
),
|
||||
tabs: [
|
||||
(
|
||||
name: "Queue",
|
||||
pane: Split(
|
||||
direction: Horizontal,
|
||||
panes: [(size: "40%", pane: Pane(AlbumArt)), (size: "60%", pane: Pane(Queue))],
|
||||
),
|
||||
),
|
||||
(
|
||||
name: "Directories",
|
||||
pane: Pane(Directories),
|
||||
),
|
||||
(
|
||||
name: "Artists",
|
||||
pane: Pane(Artists),
|
||||
),
|
||||
(
|
||||
name: "Album Artists",
|
||||
pane: Pane(AlbumArtists),
|
||||
),
|
||||
(
|
||||
name: "Albums",
|
||||
pane: Pane(Albums),
|
||||
),
|
||||
(
|
||||
name: "Playlists",
|
||||
pane: Pane(Playlists),
|
||||
),
|
||||
(
|
||||
name: "Search",
|
||||
pane: Pane(Search),
|
||||
),
|
||||
],
|
||||
)
|
||||
'';
|
||||
|
||||
".config/rmpc/themes/chriphost.ron".text = ''
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
#![enable(unwrap_variant_newtypes)]
|
||||
(
|
||||
default_album_art_path: None,
|
||||
show_song_table_header: true,
|
||||
draw_borders: true,
|
||||
format_tag_separator: " | ",
|
||||
browser_column_widths: [20, 38, 42],
|
||||
background_color: None,
|
||||
text_color: None,
|
||||
header_background_color: None,
|
||||
modal_background_color: None,
|
||||
modal_backdrop: false,
|
||||
preview_label_style: (fg: "yellow"),
|
||||
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
|
||||
tab_bar: (
|
||||
enabled: true,
|
||||
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
||||
inactive_style: (),
|
||||
),
|
||||
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
|
||||
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
||||
borders_style: (fg: "blue"),
|
||||
highlight_border_style: (fg: "blue"),
|
||||
symbols: (
|
||||
song: "S",
|
||||
dir: "D",
|
||||
playlist: "P",
|
||||
marker: "M",
|
||||
ellipsis: "...",
|
||||
song_style: None,
|
||||
dir_style: None,
|
||||
playlist_style: None,
|
||||
),
|
||||
level_styles: (
|
||||
info: (fg: "blue", bg: "black"),
|
||||
warn: (fg: "yellow", bg: "black"),
|
||||
error: (fg: "red", bg: "black"),
|
||||
debug: (fg: "light_green", bg: "black"),
|
||||
trace: (fg: "magenta", bg: "black"),
|
||||
),
|
||||
progress_bar: (
|
||||
symbols: ["[", "-", ">", " ", "]"],
|
||||
track_style: (fg: "#1e2030"),
|
||||
elapsed_style: (fg: "blue"),
|
||||
thumb_style: (fg: "blue", bg: "#1e2030"),
|
||||
),
|
||||
scrollbar: (
|
||||
symbols: ["│", "█", "▲", "▼"],
|
||||
track_style: (),
|
||||
ends_style: (),
|
||||
thumb_style: (fg: "blue"),
|
||||
),
|
||||
song_table_format: [
|
||||
(
|
||||
prop: (kind: Property(Artist),
|
||||
default: (kind: Text("Unknown"))
|
||||
),
|
||||
width: "20%",
|
||||
),
|
||||
(
|
||||
prop: (kind: Property(Title),
|
||||
default: (kind: Text("Unknown"))
|
||||
),
|
||||
width: "35%",
|
||||
),
|
||||
(
|
||||
prop: (kind: Property(Album), style: (fg: "white"),
|
||||
default: (kind: Text("Unknown Album"), style: (fg: "white"))
|
||||
),
|
||||
width: "30%",
|
||||
),
|
||||
(
|
||||
prop: (kind: Property(Duration),
|
||||
default: (kind: Text("-"))
|
||||
),
|
||||
width: "15%",
|
||||
alignment: Right,
|
||||
),
|
||||
],
|
||||
components: {},
|
||||
layout: Split(
|
||||
direction: Vertical,
|
||||
panes: [
|
||||
(
|
||||
pane: Pane(Header),
|
||||
size: "2",
|
||||
),
|
||||
(
|
||||
pane: Pane(Tabs),
|
||||
size: "3",
|
||||
),
|
||||
(
|
||||
pane: Pane(TabContent),
|
||||
size: "100%",
|
||||
),
|
||||
(
|
||||
pane: Pane(ProgressBar),
|
||||
size: "1",
|
||||
),
|
||||
],
|
||||
),
|
||||
header: (
|
||||
rows: [
|
||||
(
|
||||
left: [
|
||||
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
|
||||
(kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))), style: (fg: "yellow", modifiers: "Bold")),
|
||||
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold"))
|
||||
],
|
||||
center: [
|
||||
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
|
||||
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
|
||||
)
|
||||
],
|
||||
right: [
|
||||
(kind: Property(Widget(ScanStatus)), style: (fg: "blue")),
|
||||
(kind: Property(Widget(Volume)), style: (fg: "blue"))
|
||||
]
|
||||
),
|
||||
(
|
||||
left: [
|
||||
(kind: Property(Status(Elapsed))),
|
||||
(kind: Text(" / ")),
|
||||
(kind: Property(Status(Duration))),
|
||||
(kind: Text(" (")),
|
||||
(kind: Property(Status(Bitrate))),
|
||||
(kind: Text(" kbps)"))
|
||||
],
|
||||
center: [
|
||||
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
|
||||
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))
|
||||
),
|
||||
(kind: Text(" - ")),
|
||||
(kind: Property(Song(Album)),
|
||||
default: (kind: Text("Unknown Album"))
|
||||
)
|
||||
],
|
||||
right: [
|
||||
(
|
||||
kind: Property(Widget(States(
|
||||
active_style: (fg: "white", modifiers: "Bold"),
|
||||
separator_style: (fg: "white")))
|
||||
),
|
||||
style: (fg: "dark_gray")
|
||||
),
|
||||
]
|
||||
),
|
||||
],
|
||||
),
|
||||
browser_song_format: [
|
||||
(
|
||||
kind: Group([
|
||||
(kind: Property(Track)),
|
||||
(kind: Text(" ")),
|
||||
])
|
||||
),
|
||||
(
|
||||
kind: Group([
|
||||
(kind: Property(Artist)),
|
||||
(kind: Text(" - ")),
|
||||
(kind: Property(Title)),
|
||||
]),
|
||||
default: (kind: Property(Filename))
|
||||
),
|
||||
],
|
||||
lyrics: (
|
||||
timestamp: false
|
||||
)
|
||||
)
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -5,5 +5,5 @@
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOption "Enable LaTeX";
|
||||
enable = mkEnableOption "rmpc";
|
||||
}
|
||||
@ -430,7 +430,7 @@ with mylib.networking; {
|
||||
fish.enable = true;
|
||||
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
||||
git.enable = true;
|
||||
kdeconnect.enable = false; # Use this instead of HM for firewall setup
|
||||
kdeconnect.enable = true; # Use this instead of HM for firewall setup
|
||||
neovim.enable = true;
|
||||
starship.enable = true;
|
||||
# pay-respects.enable = true; # The new fuck
|
||||
|
||||
Reference in New Issue
Block a user