Giter Site home page Giter Site logo

swipswaps / cawbird Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibboard/cawbird

0.0 0.0 0.0 13.85 MB

A fork of the Corebird GTK Twitter client that continues to work with Twitter

License: GNU General Public License v3.0

Shell 0.03% Roff 0.09% Meson 0.67% Python 0.02% TSQL 0.15% Vala 64.35% C 33.45% Objective-C 0.87% CSS 0.37%

cawbird's Introduction

Cawbird 1.1.0

Cawbird is a fork of the Corebird Twitter client from Baedert, which became unsupported after Twitter disabled the streaming API.

Cawbird works with the new APIs and includes a few fixes and modifications that have historically been patched in to IBBoard's custom Corebird build on his personal Open Build Service account1.

Packaging and installation

Cawbird packages are built in the Cawbird Open Build Service project. They can be installed from the Cawbird download page.

Install Cawbird

These packages are currently available for:

  • openSUSE
    • openSUSE Tumbleweed
    • openSUSE Leap 15.1
    • openSUSE Leap 15.2
  • Fedora
    • Fedora 31
    • Fedora 32
    • Fedora Rawhide
  • CentOS
    • CentOS 7
    • CentOS 8
  • Ubuntu
    • Ubuntu 18.04 (Bionic Beaver)
    • Ubuntu 19.10 (Eoan Ermine)
    • Ubuntu 20.04 (Focal Fossa)
  • Debian
    • 10 (Buster)
    • Testing
    • Unstable

Official distro repositories

The following distros currently have their own official packages:

  • Fedora (30+)
    • sudo dnf install cawbird
  • NixOS (19.09+)
    • nix-shell -p cawbird for testing, nix-env -iA cawbird for permanent installation
  • Solus
    • sudo eopkg it cawbird

Community builds

Dependencies

Twitter uses specific codecs for videos. These are provided by libav and are not included in the core repositories of many distros. The following additional repositories are known to include the required libraries:

Shortcuts

Key Description
Ctrl + t Compose Tweet
Back Go one page back (this can be triggered via the back button on the keyboard, the back thumb button on the mouse or Alt + Left)
Forward Go one page forward (this can be triggered via the forward button on the keyboard, the forward thumb button on the mouse or Alt + Right)
Alt + num Go to page num (between 1 and 7 at the moment)
Ctrl + Shift + s Show/Hide topbar
Ctrl + p Show account settings
Ctrl + k Show account list
Ctrl + Shift + p Show application settings

When a tweet is focused (via keynav):

  • r - reply
  • tt - retweet
  • f - favorite
  • q - quote
  • dd - delete
  • Return - Show tweet details
  • k - Print tweet details to stdout (debug builds)

Limitations

Due to changes in the Twitter API, Cawbird has the following limitations:

  • Cawbird will update every two minutes
  • Cawbird does not get notified of the following actions when performed outside Cawbird, which will be refreshed on restart:
    • Unfavourite
    • Follow/Unfollow
    • Block/Unblock
    • Mute/Unmute
    • DM deletion
    • Some list changes

All limitations are limitations imposed by Twitter and are not the fault of the Cawbird client. They have affected all third-party client applications.

Cawbird is also unable to implement the following features because Twitter does not provide a way for third-party applications to get the data:

  • Notification of Likes, RTs, quote tweets and any other interaction that appears in the "All" tab of twitter.com's Notifications but not in "Mentions"
    • No API is available for other notifications, only a mentions API
  • DMs to Groups
  • Polls
    • The free API does not include polls as tweet "entities"
    • Twitter doesn't even mark posts so that we can direct people to the web
  • Twitter's "Bookmarks" system
    • No API is available
  • Full threads in a single request
    • No API is available
  • Replies older than seven days
    • The free search is limited to returning results from the last seven days
  • All replies to a tweet
    • No API is available and the search results are not guaranteed to find all replies
  • Twitter Cards
    • No API is available
    • Twitter doesn't even mark posts so that we can direct people to the web
    • This results in @TwitterDev posting a message that many devs can't see!

Known issues

There are no current known issues with running Cawbird.

Previously, the following issues have occurred that were outside of our control:

  • Due to a bug in GnuTLS, Cawbird has suffered from occasional TLS errors. This has been handled under Cawbird bug 9 and GnuTLS have released a fix for the underlying problem
  • Due to a bug in GStreamer 1.16.1, Cawbird suffered from glitchy audio and video when playing media. This has now been fixed in GStreamer

Translations

Since February 2020, there has been a Cawbird project on Transifex. Users can sign up on Transifex for free to help translate Cawbird.

Contributing

All contributions are welcome (artwork, design, code, just ideas, etc.) but if you're planning to actively change something bigger, talk to me first.

Compiling Cawbird

Compiling

Cawbird uses the Meson build system rather than the more archaic autoconf/make combination. Building is as simple as:

meson build
ninja -C build

Note that executing build/cawbird may result in the error:

Settings schema 'uk.co.ibboard.cawbird' is not installed

To correct, install the application:

ninja install -C build

Cawbird installs its application icon into /usr/share/icons/hicolor/, so an appropriate call to gtk-update-icon-cache might be needed.

Build Dependencies

  • gtk+-3.0 >= 3.22
  • glib-2.0 >= 2.44
  • json-glib-1.0
  • sqlite3
  • libsoup-2.4
  • gettext >= 0.19.7
  • vala >= 0.28 (makedep)
  • meson (makedep)
  • gst-plugins-base-1.0 (for playbin, disable via --disable-video)
  • gst-plugins-bad-1.0 >= 1.6 or gst-plugins-good-1.0 (disable via --disable-video, default enabled)
    • Requires the element-gtksink feature, provided by gstreamer1.0-gtk on Ubuntu-based systems, gstreamer1-plugins-bad-free-gtk on older RPM-based systems and gstreamer1-plugins-good-gtk on newer RPM-based systems
  • gst-libav-1.0 (disable via --disable-video, default enabled)
  • gspell-1 >= 1.2 (for spellchecking, disable via --disable-spellcheck, default enabled)

Note that the above packages are just rough estimations, the actual package names on your distribution may vary and may require additional repositories (e.g. RPMFusion in Fedora, or Packman in openSUSE)

If you pass --disable-video to the configure script, you don't need any gstreamer dependency but won't be able to view any videos.

Footnotes

1: home:IBBoard:desktop

cawbird's People

Contributors

albanobattistella avatar algent-al avatar allanday avatar arrufat avatar baedert avatar dragnucs avatar edwardbetts avatar fmuellner avatar hnasar avatar hoop33 avatar ibboard avatar innir avatar kalev avatar lucaswerkmeister avatar lyude avatar m42uko avatar moschlar avatar mrpdaemon avatar nothing4you avatar p1u3o avatar piotrdrag avatar pvagner avatar pyromaniac2k avatar remeh avatar ricotz avatar roman-yepishev avatar ryanlerch avatar sunng87 avatar tim77 avatar transifex-integration[bot] 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.