diff --git a/flake.lock b/flake.lock index 030b7b2..2f7c973 100644 --- a/flake.lock +++ b/flake.lock @@ -90,11 +90,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1746030263, - "narHash": "sha256-cuUvNjKQfD9X50xxSkPOLUE/BZ3hSCE1dhjdIdIcUdA=", + "lastModified": 1746066807, + "narHash": "sha256-JeUri9kpPguZnY69qXIcCLQAIx7GMbF2dRmRYM6JaZg=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "e9b0301e96c5893c5b235af960e9e06f4b62d2ff", + "rev": "9a415a8b4c90c1f0719aefed19a80514f7a2f771", "type": "github" }, "original": { @@ -378,11 +378,11 @@ ] }, "locked": { - "lastModified": 1745987135, - "narHash": "sha256-8Up4QPuMZEJBU0eefAY+nUe7DYKQQzvaHnMpNdwRgKA=", + "lastModified": 1746040799, + "narHash": "sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU=", "owner": "nix-community", "repo": "home-manager", - "rev": "d2b3e6c83d457aa0e7f9344c61c3fed32bad0f7e", + "rev": "5f217e5a319f6c186283b530f8c975e66c028433", "type": "github" }, "original": { @@ -785,11 +785,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1746006802, - "narHash": "sha256-Ws+sD8RAEg4fdg6zXcww0f3k9GOOGrF4EtXScT8ex94=", + "lastModified": 1746111020, + "narHash": "sha256-Hn9HC5ZTgODX1A2bQoaO/kzH/TmqrDyH9hgtxwZQ4Fw=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "a8897eb53c63fe5a40286ab9b7bbc805dd7e70ef", + "rev": "4bb3e47c5c45b59c80c3d322f721c33ee11a3b8d", "type": "github" }, "original": { @@ -818,11 +818,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1746002765, - "narHash": "sha256-ry703LYPMmThzPSr8CiEVKv0iCBxbEYV+Qy5qVi3Riw=", + "lastModified": 1746106108, + "narHash": "sha256-3XNXtnrUXObLT43MdCRNXkHHSPoigGtdDlgRcdcUMqM=", "owner": "YaLTeR", "repo": "niri", - "rev": "af080a03cda3bd960a0817920f9814086ae9ad36", + "rev": "02baad91aca414a9adb9e77b4967d63bb366fb1b", "type": "github" }, "original": { @@ -1004,11 +1004,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1745921652, - "narHash": "sha256-hEAvEN+y/OQ7wA7+u3bFJwXSe8yoSf2QaOMH3hyTJTQ=", + "lastModified": 1746055187, + "narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b000159bba69b0106a42f65e52dbf27f77aca9d3", + "rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5", "type": "github" }, "original": { @@ -1036,11 +1036,11 @@ }, "nixpkgs-stable_4": { "locked": { - "lastModified": 1745921652, - "narHash": "sha256-hEAvEN+y/OQ7wA7+u3bFJwXSe8yoSf2QaOMH3hyTJTQ=", + "lastModified": 1746055187, + "narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b000159bba69b0106a42f65e52dbf27f77aca9d3", + "rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5", "type": "github" }, "original": { @@ -1608,11 +1608,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1746026572, - "narHash": "sha256-8wdqgzxyCbrpL/mK4UAKgC3ny00DXQ3O4hZnDQJUHVg=", + "lastModified": 1746111504, + "narHash": "sha256-sJBWKp4JFDBp82EhEGRRowJn9jAT8UvHzEWGgjrXBDM=", "owner": "sxyazi", "repo": "yazi", - "rev": "8ed569b729dc841bf09fb10c5f32194e0da545ee", + "rev": "d6a01a63efabab2f26a2d39876a0d582a268da09", "type": "github" }, "original": { diff --git a/hosts/eddie/configuration.nix b/hosts/eddie/configuration.nix index 85ec07f..d3eeb37 100644 --- a/hosts/eddie/configuration.nix +++ b/hosts/eddie/configuration.nix @@ -1,11 +1,4 @@ -{ - nix-config, - config, - pkgs, - pkgs-stable, - inputs, - ... -}: +{ nix-config, config, pkgs, pkgs-stable, inputs, ... }: { diff --git a/modules/home/mpd.nix b/modules/home/mpd.nix index 76e93c4..58bc38a 100644 --- a/modules/home/mpd.nix +++ b/modules/home/mpd.nix @@ -1,10 +1,11 @@ -{ config, lib, pkgs, ... }: +{ nix-config, pkgs, ... }: { home.packages = with pkgs; [ mpc ncmpcpp - rmpc + termusic + nix-config.packages.x86_64-linux.rmpc-latest ]; programs.fish.shellAliases = { "ncm" = "ncmpcpp"; }; @@ -34,4 +35,10 @@ source = ./rmpc; recursive = true; }; + + xdg.configFile."ncmpcpp/" = { + source = ./ncmpcpp; + recursive = true; + }; + } diff --git a/modules/home/music.nix b/modules/home/music.nix index 285156d..142b33b 100644 --- a/modules/home/music.nix +++ b/modules/home/music.nix @@ -45,7 +45,6 @@ chow-phaser chow-centaur chow-tape-model - # chow-multitool easyeffects vcv-rack cardinal diff --git a/modules/home/ncmpcpp/config b/modules/home/ncmpcpp/config new file mode 100644 index 0000000..1a2331b --- /dev/null +++ b/modules/home/ncmpcpp/config @@ -0,0 +1,629 @@ +############################################################## +## This is an example configuration file. Copy it to ## +## $XDG_CONFIG_HOME/ncmpcpp/config or $HOME/.ncmpcpp/config ## +## and set up your preferences. ## +############################################################## +# +##### directories ###### +## +## Directory for storing ncmpcpp related files. Changing it is useful if you +## want to store everything somewhere else and provide command line setting for +## alternative location to config file which defines that while launching +## ncmpcpp. +## +# +#ncmpcpp_directory = ~/.config/ncmpcpp +# +## +## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other +## MPD clients (eg. ncmpc) also use that location. +## +# +#lyrics_directory = ~/.lyrics +# +##### connection settings ##### +# +#mpd_host = localhost +# +#mpd_port = 6600 +# +#mpd_password = "" +# +#mpd_connection_timeout = 5 +# +## Needed for tag editor and file operations to work. +## +#mpd_music_dir = ~/music +# +#mpd_crossfade_time = 5 +# +# Exclude pattern for random song action +# http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html +#random_exclude_pattern = "^(temp|midi_songs).*" +# +##### music visualizer ##### +## +## In order to make music visualizer work with MPD you need to use the fifo +## output. Its format parameter has to be set to 44100:16:1 for mono +## visualization or 44100:16:2 for stereo visualization. As an example here is +## the relevant section for mpd.conf: +## +## audio_output { +## type "fifo" +## name "Visualizer feed" +## path "/tmp/mpd.fifo" +## format "44100:16:2" +## } +## +## If the visualization on occasion diverges from the audio output, please set +## 'buffer_time' parameter of your audio output in mpd.conf to '100000' (100ms) +## or less to prevent that from happening. +## +## Note: If you're using Mopidy, an address of a udpsink gstreamer's output is +## also accepted. For example, the following section in mopidy.conf: +## +## [audio] +## output = tee name=t ! queue ! autoaudiosink t. +## ! queue ! audio/x-raw,rate=44100,channels=2,format=S16LE +## ! udpsink host=localhost port=5555 +## +## will make localhost:5555 available as a source of data for the stereo +## visualizer. +## +# +#visualizer_data_source = /tmp/mpd.fifo +# +## +## Note: Below parameter is needed for ncmpcpp to determine which output +## provides data for visualizer and reset it at the beginning of visualization +## to synchronize with audio. +## +# +#visualizer_output_name = Visualizer feed +# +## +## If you set format to 44100:16:2, make it 'yes'. +## +#visualizer_in_stereo = yes +# +## +## Note: set below to >=10 only if you have synchronization issues with +## visualization and audio. +## +# +#visualizer_sync_interval = 0 +# +## +## Note: To enable spectrum frequency visualization you need to compile ncmpcpp +## with fftw3 support. +## +# +## Available values: spectrum, wave, wave_filled, ellipse. +## +#visualizer_type = spectrum +# +#visualizer_fps = 60 +# +#visualizer_autoscale = no +# +#visualizer_look = ●▮ +# +#visualizer_color = blue, cyan, green, yellow, magenta, red +# +## Alternative subset of 256 colors for terminals that support it. +## +#visualizer_color = 47, 83, 119, 155, 191, 227, 221, 215, 209, 203, 197, 161 +# +## +## Note: The next few visualization options apply to the spectrum visualizer. +## +# +## Use unicode block characters for a smoother, more continuous look. +## This will override the visualizer_look option. With transparent terminals +## and visualizer_in_stereo set, artifacts may be visible on the bottom half of +## the visualization. +# +#visualizer_spectrum_smooth_look = yes +# +## Use unicode block characters from "symbols for legacy computing". This +## improves the smooth look on transparent terminals by using special unicode +## chars instead of reversing the background and foreground color on the bottom +## edge of the spectrum. If it leads to a garbled output on the bottom edge of +## the spectrum, you can either change the font or disable this option. +# +#visualizer_spectrum_smooth_look_legacy_chars = yes +# +## A value between 1 and 5 inclusive. Specifying a larger value makes the +## visualizer look at a larger slice of time, which results in less jumpy +## visualizer output. +# +#visualizer_spectrum_dft_size = 2 +# +#visualizer_spectrum_gain = 10 +# +## Left-most frequency of visualizer in Hz, must be less than HZ MAX +# +#visualizer_spectrum_hz_min = 20 +# +## Right-most frequency of visualizer in Hz, must be greater than HZ MIN +# +#visualizer_spectrum_hz_max = 20000 +# +## Use log scaling for the frequency spectrum axes +# +#visualizer_spectrum_log_scale_x = yes +#visualizer_spectrum_log_scale_y = yes +# +##### system encoding ##### +## +## ncmpcpp should detect your charset encoding but if it failed to do so, you +## can specify charset encoding you are using here. +## +## Note: You can see whether your ncmpcpp build supports charset detection by +## checking output of `ncmpcpp --version`. +## +## Note: Since MPD uses UTF-8 by default, setting this option makes sense only +## if your encoding is different. +## +# +#system_encoding = "" +# +##### delays ##### +# +## Time of inactivity (in seconds) after playlist highlighting will be disabled +## (0 = always on). +## +#playlist_disable_highlight_delay = 5 +# +## Defines how long messages are supposed to be visible. +## +#message_delay_time = 5 +# +##### song format ##### +## +## For a song format you can use: +## +## %l - length +## %f - filename +## %F - full filepath +## %D - directory +## %a - artist +## %A - album artist +## %t - title +## %b - album +## %y - date +## %n - track number (01/12 -> 01) +## %N - full track info (01/12 -> 01/12) +## %g - genre +## %c - composer +## %p - performer +## %d - disc +## %C - comment +## %P - priority +## $R - begin right alignment +## +## If you want to make sure that a part of the format is displayed only when +## certain tags are present, you can archieve it by grouping them with brackets, +## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are +## present or '' otherwise. It is also possible to define a list of +## alternatives by providing several groups and separating them with '|', +## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is +## not present. +## +## Note: If you want to set limit on maximal length of a tag, just put the +## appropriate number between % and character that defines tag type, e.g. to +## make album take max. 20 terminal cells, use '%20b'. +## +## In addition, formats support markers used for text attributes. They are +## followed by character '$'. After that you can put: +## +## - 0 - default window color (discards all other colors) +## - 1 - black +## - 2 - red +## - 3 - green +## - 4 - yellow +## - 5 - blue +## - 6 - magenta +## - 7 - cyan +## - 8 - white +## - 9 - end of current color +## - b - bold text +## - u - underline text +## - i - italic text +## - r - reverse colors +## - a - use alternative character set +## +## If you don't want to use a non-color attribute anymore, just put it again, +## but this time insert character '/' between '$' and attribute character, +## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with +## reversed colors. +## +## If you want to use 256 colors and/or background colors in formats (the naming +## scheme is described below in section about color definitions), it can be done +## with the syntax $(COLOR), e.g. to set the artist tag to one of the +## non-standard colors and make it have yellow background, you need to write +## $(197_yellow)%a$(end). Note that for standard colors this is interchangable +## with attributes listed above. +## +## Note: colors can be nested. +## +# +#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3%l$9} +# +#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f} +# +#song_library_format = {%n - }{%t}|{%f} +# +#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b +# +#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D} +# +#current_item_prefix = $(yellow)$r +# +#current_item_suffix = $/r$(end) +# +#current_item_inactive_column_prefix = $(white)$r +# +#current_item_inactive_column_suffix = $/r$(end) +# +#now_playing_prefix = $b +# +#now_playing_suffix = $/b +# +#browser_playlist_prefix = "$2playlist$9 " +# +#selected_item_prefix = $6 +# +#selected_item_suffix = $9 +# +#modified_item_prefix = $3> $9 +# +## +## Note: attributes are not supported for the following variables. +## +#song_window_title_format = {%a - }{%t}|{%f} +## +## Note: Below variables are used for sorting songs in browser. The sort mode +## determines how songs are sorted, and can be used in combination with a sort +## format to specify a custom sorting format. Available values for +## browser_sort_mode are "type", "name", "mtime", "format" and "none". +## +# +#browser_sort_mode = type +# +#browser_sort_format = {%a - }{%t}|{%f} {%l} +# +##### columns settings ##### +## +## syntax of song columns list format is "column column etc." +## +## - syntax for each column is: +## +## (width of the column)[color of the column]{displayed tag} +## +## Note: Width is by default in %, if you want a column to have fixed size, add +## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of +## screen (so the real width will depend on actual screen size), whereas +## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen +## is. +## +## - color is optional (if you want the default one, leave the field empty). +## +## Note: You can give a column additional attributes by putting appropriate +## character after displayed tag character. Available attributes are: +## +## - r - column will be right aligned +## - E - if tag is empty, empty tag marker won't be displayed +## +## You can also: +## +## - give a column custom name by putting it after attributes, separated with +## character ':', e.g. {lr:Length} gives you right aligned column of lengths +## named "Length". +## +## - define sequence of tags, that have to be displayed in case predecessor is +## empty in a way similar to the one in classic song format, i.e. using '|' +## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to +## display artist tag and then composer and performer if previous ones are not +## available. +## +# +#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l} +# +##### various settings ##### +# +## +## Note: Custom command that will be executed each time song changes. Useful for +## notifications etc. +## +#execute_on_song_change = "" +# +## +## Note: Custom command that will be executed each time player state +## changes. The environment variable MPD_PLAYER_STATE is set to the current +## state (either unknown, play, pause, or stop) for its duration. +## +# +#execute_on_player_state_change = "" +# +#playlist_show_mpd_host = no +# +#playlist_show_remaining_time = no +# +#playlist_shorten_total_times = no +# +#playlist_separate_albums = no +# +## +## Note: Possible display modes: classic, columns. +## +#playlist_display_mode = columns +# +#browser_display_mode = classic +# +#search_engine_display_mode = classic +# +#playlist_editor_display_mode = classic +# +#discard_colors_if_item_is_selected = yes +# +#show_duplicate_tags = yes +# +#incremental_seeking = yes +# +#seek_time = 1 +# +#volume_change_step = 2 +# +#autocenter_mode = no +# +#centered_cursor = no +# +## +## Note: You can specify third character which will be used to build 'empty' +## part of progressbar. +## +#progressbar_look = => +# +## Available values: database, playlist. +## +#default_place_to_search_in = database +# +## Available values: classic, alternative. +## +user_interface = alternative +# +#data_fetching_delay = yes +# +## Available values: artist, album_artist, date, genre, composer, performer. +## +#media_library_primary_tag = artist +# +#media_library_albums_split_by_date = yes +# +#media_library_hide_album_dates = no +# +## Available values: wrapped, normal. +## +default_find_mode = wrapped +# +#default_tag_editor_pattern = %n - %t +# +#header_visibility = yes +# +#statusbar_visibility = yes +# +## Show the "Connected to ..." message on startup +#connected_message_on_startup = yes +# +#titles_visibility = yes +# +#header_text_scrolling = yes +# +#cyclic_scrolling = no +# +#lyrics_fetchers = tags, genius, tekstowo, plyrics, justsomelyrics, jahlyrics, zeneszoveg, internet +# +#follow_now_playing_lyrics = no +# +#fetch_lyrics_for_current_song_in_background = no +# +#store_lyrics_in_song_dir = no +# +#generate_win32_compatible_filenames = yes +# +#allow_for_physical_item_deletion = no +# +## +## Note: If you set this variable, ncmpcpp will try to get info from last.fm in +## language you set and if it fails, it will fall back to english. Otherwise it +## will use english the first time. +## +## Note: Language has to be expressed as an ISO 639 alpha-2 code. +## +#lastfm_preferred_language = en +# +#space_add_mode = add_remove +# +#show_hidden_files_in_local_browser = no +# +## +## How shall screen switcher work? +## +## - "previous" - switch between the current and previous screen. +## - "screen1,...,screenN" - switch between given sequence of screens. +## +## Screens available for use: help, playlist, browser, search_engine, +## media_library, playlist_editor, tag_editor, outputs, visualizer, clock, +## lyrics, last_fm. +## +#screen_switcher_mode = playlist, browser +# +## +## Note: You can define startup screen by choosing screen from the list above. +## +#startup_screen = playlist +# +## +## Note: You can define startup slave screen by choosing screen from the list +## above or an empty value for no slave screen. +## +#startup_slave_screen = "" +# +#startup_slave_screen_focus = no +# +## +## Default width of locked screen (in %). Acceptable values are from 20 to 80. +## +# +#locked_screen_width_part = 50 +# +#ask_for_locked_screen_width_part = yes +# +## +## Width of media_library screen columns +## +# +#media_library_column_width_ratio_two = 1:1 +# +#media_library_column_width_ratio_three = 1:1:1 +# +## +## Width of playlist_editor screen columns +## +# +#playlist_editor_column_width_ratio = 1:2 +# +#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 = no +# +## Available values: none, basic, extended, perl. +## +#regular_expressions = perl +# +## +## Note: if below is enabled, ncmpcpp will ignore leading "The" word while +## sorting items in browser, tags in media library, etc. +## +ignore_leading_the = yes +# +## +## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and +## filtering lists. This takes an effect only if boost was compiled with ICU +## support. +## +#ignore_diacritics = no +# +#block_search_constraints_change_if_items_found = yes +# +#mouse_support = yes +# +#mouse_list_scroll_whole_page = no +# +#lines_scrolled = 5 +# +#empty_tag_marker = +# +#tags_separator = " | " +# +#tag_editor_extended_numeration = no +# +media_library_sort_by_mtime = no +# +#enable_window_title = yes +# +## +## Note: You can choose default search mode for search engine. Available modes +## are: +## +## - 1 - use mpd built-in searching (no regexes, pattern matching) +## +## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but +## if your mpd is on a remote machine, downloading big database to process +## it can take a while +## +## - 3 - match only exact values (this mode uses mpd function for searching in +## database and local one for searching in current playlist) +## +# +#search_engine_default_search_mode = 1 +# +#external_editor = nano +# +## Note: set to yes if external editor is a console application. +## +#use_console_editor = yes +# +##### colors definitions ##### +## +## It is possible to set a background color by setting a color value +## "_", e.g. red_black will set foregound color to red +## and background color to black. +## +## In addition, for terminals that support 256 colors it is possible to set one +## of them by using a number in range [1, 256] instead of color name, +## e.g. numerical value corresponding to red_black is 2_1. To find out if the +## terminal supports 256 colors, run ncmpcpp and check out the bottom of the +## help screen for list of available colors and their numerical values. +## +## What is more, there are two special values for the background color: +## "transparent" and "current". The first one explicitly sets the background to +## be transparent, while the second one allows you to preserve current +## background color and change only the foreground one. It's used implicitly +## when background color is not specified. +## +## Moreover, it is possible to attach format information to selected color +## variables by appending to their end a colon followed by one or more format +## flags, e.g. black:b or red:ur. The following variables support this syntax: +## visualizer_color, color1, color2, empty_tag_color, volume_color, +## state_line_color, state_flags_color, progressbar_color, +## progressbar_elapsed_color, player_state_color, statusbar_time_color, +## alternative_ui_separator_color. +## +## Note: due to technical limitations of older ncurses version, if 256 colors +## are used there is a possibility that you'll be able to use only colors with +## transparent background. +# +#colors_enabled = yes +# +#empty_tag_color = cyan +# +#header_window_color = default +# +#volume_color = default +# +#state_line_color = default +# +#state_flags_color = default:b +# +#main_window_color = yellow +# +#color1 = white +# +#color2 = green +# +#progressbar_color = black:b +# +#progressbar_elapsed_color = green:b +# +#statusbar_color = default +# +#statusbar_time_color = default:b +# +#player_state_color = default:b +# +#alternative_ui_separator_color = black:b +# +#window_border_color = green +# +#active_window_border = red +# diff --git a/modules/home/rmpc/config.ron b/modules/home/rmpc/config.ron index 113cba2..15cea58 100644 --- a/modules/home/rmpc/config.ron +++ b/modules/home/rmpc/config.ron @@ -32,7 +32,8 @@ "": NextTab, "": PreviousTab, "1": SwitchToTab("Queue"), - "2": SwitchToTab("Recently Added"), + # "2": SwitchToTab("Recently Added"), + "2": SwitchToTab("Genre"), "3": SwitchToTab("Artists"), "4": SwitchToTab("Album Artists"), "5": SwitchToTab("Albums"), @@ -118,6 +119,10 @@ name: "Queue", pane: Pane(Queue), ), + # ( + # name: "Recently Added", + # pane: Pane(Browser(root_tag: "album", separator: ";")), + # ), ( name: "Genre", pane: Pane(Browser(root_tag: "genre", separator: ";")), diff --git a/modules/home/waybar.nix b/modules/home/waybar.nix index 2525f0c..ad4d798 100644 --- a/modules/home/waybar.nix +++ b/modules/home/waybar.nix @@ -141,6 +141,8 @@ in { "status-icons" = { "paused" = ""; }; + "on-click-right" = "$HOME/.local/bin/wezapp ncmpcpp"; + }; "wlr/taskbar" = { diff --git a/modules/home/yazi.nix b/modules/home/yazi.nix index 8a0eba2..9c57eac 100644 --- a/modules/home/yazi.nix +++ b/modules/home/yazi.nix @@ -87,8 +87,6 @@ { on = ["g" "r"]; run = "shell 'ya emit cd \"$(git rev-parse --show-toplevel)\"'\n"; desc = "Go to top of git repo"; } { on = ["g" "p"]; run = "cd ~/Projects"; desc = "Go to ~/Projects"; } - { on = ["g" "l"]; run = "plugin lazygit"; desc = "lazygit"; } - # { on = ["t" "p"]; run = "plugin toggle-pane min-parent"; desc = "Toggle parent"; } # { on = ["t" "c"]; run = "plugin toggle-pane min-current"; desc = "Toggle current"; } # { on = ["t" "r"]; run = "plugin toggle-pane min-preview"; desc = "Toggle preview"; } @@ -115,6 +113,7 @@ { on = ""; run = "remove"; } { on = ["d" "d"]; run = "remove"; desc = "Delete files/folders"; } { on = ["d" "u"]; run = "plugin restore"; desc = "Restore last deleted files/folders"; } + { on = ["d" "x"]; run = "shell 'trash-empty'"; desc = "Empty trash"; } { on = "F"; run = "filter --smart"; desc = "Find file"; } { on = "f"; run = "find --smart"; desc = "Find file"; } @@ -154,8 +153,8 @@ { name = "*.rst"; run = "rich-preview"; } { name = "*.ipynb"; run = "rich-preview"; } { name = "*.json"; run = "rich-preview"; } - { name = "*.lisp"; run = "rich-preview"; } - { name = "*.el"; run = "rich-preview"; } + # { name = "*.lisp"; run = "rich-preview"; } + # { name = "*.el"; run = "rich-preview"; } { name = "*.org"; run = "rich-preview"; } ]; append_previewers = [ diff --git a/packages/rmpc-latest.nix b/packages/rmpc-latest.nix new file mode 100644 index 0000000..b99968b --- /dev/null +++ b/packages/rmpc-latest.nix @@ -0,0 +1,60 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + installShellFiles, + pkg-config, + cmake, +}: + +rustPlatform.buildRustPackage rec { + pname = "rmpc"; + version = "0.9.0"; + + src = fetchFromGitHub { + owner = "mierak"; + repo = "rmpc"; + rev = "master"; + hash = "sha256-2RVP00aVtrs7F7ZJBCVoy5JL7uIR+m1AZ2HCs7pebKE="; + }; + + useFetchCargoVendor = true; + cargoHash = "sha256-aUvG3+PrG9xjkGyXXDE+deke4y1rbz59T/bI3+X3Khs="; + + checkFlags = [ + # Test currently broken, needs to be removed. See https://github.com/mierak/rmpc/issues/254 + "--skip=core::scheduler::tests::interleaves_repeated_and_scheduled_jobs" + ]; + + nativeBuildInputs = [ + installShellFiles + pkg-config + cmake + ]; + + env.VERGEN_GIT_DESCRIBE = version; + + postInstall = '' + installManPage target/man/rmpc.1 + + installShellCompletion --cmd rmpc \ + --bash target/completions/rmpc.bash \ + --fish target/completions/rmpc.fish \ + --zsh target/completions/_rmpc + ''; + + meta = { + changelog = "https://github.com/mierak/rmpc/releases/tag/${src.rev}"; + description = "TUI music player client for MPD with album art support via kitty image protocol"; + homepage = "https://mierak.github.io/rmpc/"; + license = lib.licenses.bsd3; + longDescription = '' + Rusty Music Player Client is a beautiful, modern and configurable terminal-based Music Player + Daemon client. It was inspired by ncmpcpp and aims to provide an alternative with support for + album art through kitty image protocol without any ugly hacks. It also features ranger/lf + inspired browsing of songs and other goodies. + ''; + mainProgram = "rmpc"; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + }; +}