Coder Social home page Coder Social logo

rustmission's Introduction

Rustmission

Performant TUI for Transmission capable of managing hundreds of torrents.
It boasts a rich feature set that surpasses other clients, offering a seamless experience :3

Torrents you see are just samples fabricated by AI.

Features

  • Basic operations: Add, pause, remove or fuzzy filter your torrents.
  • Categories: Categorize your torrents, each with its own default directory.
  • Sorting: Sort your torrents, for example, to get rid of the bulkiest ones.
  • Built-in magnet search: Search for new magnets without leaving your terminal.
  • Asynchronous: UI is always responsive.
  • RSS: Fetch torrents automatically with a cronjob using --fetch-rss

Requirements

  • Transmission daemon running in background and its IP address
  • Nerd Fonts (though you can set alternative set of icons)

Installation

Packaging status

To install Rustmission, ensure you have Rust and Cargo installed on your system, and then run:

cargo install rustmission

or with Nix ( ❤️ @0x61nas ):

nix-shell -p rustmission

or with Brew ( ❤️ @aidanaden ):

brew install intuis/tap/rustmission

Usage

Run rustmission in your terminal to initialize the config and make adjustments as needed. Subsequently, run rustmission again. For a list of keybindings, press ? or F1.

Configuration

Rustmission stores its configuration in a TOML file located at ~/.config/rustmission/config.toml by default. You can modify this file to set the daemon's address.

[general]
# Whether to hide empty columns or not
auto_hide = false

# Possible values: Red, Green, Blue, Yellow, Magenta, Cyan.
# Use prefix "Light" for a brighter color.
# It can also be a hex, e.g. "#3cb371"
accent_color = "LightMagenta"

# If enabled, shows various keybindings throughout the program at the cost of
# a little bit cluttered interface.
beginner_mode = true

# If enabled, hides header row of torrents tab
headers_hide = false

[connection]
url = "http://CHANGE_ME:9091/transmission/rpc" # REQUIRED!

# Refresh timings (in seconds)
torrents_refresh = 5
stats_refresh = 5
free_space_refresh = 10

# If you need username and password to authenticate:
# username = "CHANGE_ME"
# password = "CHANGE_ME"

[torrents_tab]
# Available fields:
# Id, Name, SizeWhenDone, Progress, DownloadRate, UploadRate, DownloadDir,
# Padding, UploadRatio, UploadedEver, AddedDate, ActivityDate, PeersConnected
# SmallStatus, Category, CategoryIcon
headers = ["Name", "SizeWhenDone", "Progress", "Eta", "DownloadRate", "UploadRate"]

[search_tab]
# If you uncomment this, providers won't be automatically added in future
# versions of Rustmission.
# providers = ["Knaben", "Nyaa"]

[icons]
# ...

There's also a self-documenting keymap config located at ~/.config/rustmission/keymap.toml with sane defaults.
You can also define torrent categories at ~/.config/rustmission/categories.toml.

Alternatives

Contributing

If you'd like to contribute make sure you fork this repo and submit a PR!
If you want to implement something major, create an issue first so it can be discussed.

rustmission's People

Contributors

micielski avatar aidanaden avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.