Coder Social home page Coder Social logo

moson-mo / pacseek Goto Github PK

View Code? Open in Web Editor NEW
292.0 5.0 7.0 3.09 MB

A terminal user interface for searching and installing Arch Linux packages

License: MIT License

Go 99.10% Shell 0.90%
aur archlinux packages tui terminal alpm arch package-manager pacman pkgbuild

pacseek's People

Contributors

darukutsu avatar moson-mo avatar mudskipper875 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pacseek's Issues

Man page

I can write a man page (in groff) for pacseek if that's something you're interested in.
I was thinking of including the command line flags, default keybinds and the config file options.

[feature request] List optional dependencies when installing packages

I find myself opening multiple instances to reference optional dependencies and install them manually. I see online there are ways of listing optional deps but not an easy way of installing multiple at a time with help to list them as dependencies. GUI package managers have this feature. (See Pamac)

limited effect of caching

According to the README, some kind of caching is implemented for package data. My expectation would be

  • a small delay at the beginning (to retrieve the AUR metadata dumps)
  • none when navigating between packages or search terms.

What I get instead is:

  • a delay for each package on the first visit (this includes when switching terms, e.g. foo -> bar -> foo gives new delays on "foo" matches)
  • none when navigating between visited packages on the current search term

Flatpak Support

Maybe stupid and out of scope, but if flatpak is installed, pacseek should be able to install flatpaks from flathub. That would be such a cool feature, and would make pacseek the ultimate package/software store. Some things are only available in flatpaks.

Weird discoloration with certain values of ${TERM}

I use alacritty as my terminal emulator (https://github.com/alacritty/alacritty) and use the alacritty-direct terminfo entry as described in extras/alacritty.info.

When I run pacseek it takes several seconds to load and then displays the interface with a very strange, dulled look:
$ pacseek
2023-01-08_12-26

It loads near-instantly and appears normal if I change the Value of $TERM:
$ TERM=xterm-direct pacseek
2023-01-08_12-30

If I replace the xterm-direct terminfo entry with the alacritty-direct entry:
$ infocmp alacritty-direct | perl -np -e "s/alacritty/xterm/g;" | sudo tic -x -

and then run for a second time:
$ TERM=xterm-direct pacseek

Pacseek works just as it should.

And if I do the opposite and replace the alacritty-direct terminfo entry with the xterm-direct entry it still behaves oddly.
In fact, from my testing, it seems that any value for $TERM is alright as long as it doesn't include -direct unless it is xterm-direct; the content of the relevant terminfo entry seems to be irrelevant.

I have managed to reproduce this behaviour in several terminal emulators:

  • Alacritty
  • St
  • Xterm

I suspect this may be some sort of bug, perhaps 'xterm-direct' was hard coded somewhere.

[REQUEST] Toggle which repos to search

I know you can disable the AUR searching but what would be really useful is to extend that to other sources as well, maybe I just want to search for packages in extra, or community, etc.

I'm not sure on the best approach but maybe a list of repos to search in the config and then in application an interactable list where you can toggle what you want to be using on the fly.

Search results

can you add feature when i search for package that it sort it autimatically like in aur website by votes or popularity?

[REQUEST] Allow to leave upgrade command array empty

Thanks for this little tool!

I'm using pacseek with paru to retrieve PKGBUILDs via paru -G as install command and don't want to update my system everytime. Leaving the upgrade array empty results in pacseek filling it back in with yay -Syu.
As a workaround I've entered pacman -Q pacman >/dev/null 2>&1 as a "dummy".

No biggie, but would be nice to be able to just leave that array empty :)

[Feature request] Select several packages

It would be very handy to be able to (optionally) select several packages to install/uninstall at once instead of having to go back and forth between Pacseek and yay one package at a time.

cannot open URLs

Hello I think this is great. :)

One feedback. It is not possible to open the URL for the package which is displayed in the right pane.

In kitty, xfce terminal and konsole:

  • hover over URL =
    • line appears under URL indicating it is being recognized by terminal emulator
    • cursor changes from regular arrow to pointing hand (except in konsole this doesn't happen)
  • click URL = no action
  • right click URL = no action
  • click & drag = unable to select URL to copy/paste to browser
  • shift + (drag) click = can select text this way. but if the URL is too long and gets wrapped, would have to pick out the text from box drawing and left column

In terminator, it is as above execpt if you double right click the context menu pops up and it is possible to select "Open link", which works

In alacrity, the URL doesn't get picked up at all. No underline, no cursor change. Can use shift + (drag) click as above.

I verified in kitty, alacritty and terminator that I was able to interact with URLs are expected in another TUI application (gitui) so I believe the issue isn't in my system.

CTRL+Space in China

To install/remove a package, press CTRL+Space.

CTRL+Space is default to change IME in Chinese
so I ( and most of Chinese input method user ) can't install / uninstall any package in pacseek

why not just use ENTER to install / uninstall a focused package

Issues with non-unicode terminal emulators

Hey @moson-mo, great job! I like it.

However, pacseek is barely usable on non-unicode terminal emulators, like xterm, rxvt, and so on.

Would it it be possible to add a -i, --ascii or --no-unicode switch to use ASCII instead of Unicode chars to draw borders and decorations?

Thank you very much in advance.

Sorting options and filters

This is perhaps beyond the scope of the project, but I would like to request some QoL features:

  1. Keybinds for dynamically re-sorting the listed packages alphabetically (more useful when searching with 'Contains'), according to last modified date, or according to popularity (official packages on top), in ascending and descending orders.
  2. Keybinds to dynamically filter listed packages by installed status (yes or no) and by source. It would also be nice to have a quick option to include or exclude only the AUR (i.e. group all proper repos together instead of manually selecting each one), which should also apply to the "-r" command line option.
  3. Filter packages even further by inputting terms to be matched with dependencies or conflicts. Not as important, but could be handy.

Bonus request: Show Out of Date flags in package list and date flagged in description.

Specify Repo

For example, currently, if you pacseek speedtest++ and also have the chaotic-aur prioritized in your /etc/pacman.conf, and you select the AUR version of speedtest++ and hit enter, it will install the chaotic-aur version anyway. The workaround, of course, is exiting pacseek and using yay -S aur/speedtest++. But this is unexpected behavior within pacseek and should be fixed, I think.

Thanks for the program! Love this thing.

Error starting pacseek: character set not supported

I use pacseek on two other machines w/o any problem. Now I'm on vacation with only my old testing laptop, that runs Arch Linux installed with the archinstall script. The pacseek command returns as in the title:

$ pacseek
Error starting pacseek:

character set not supported

When started with LC_ALL=C pacseek it starts, but looks like this:

image

I use Polish locale pl_PL.UTF-8.

[Feature request] IgnorePkg and IgnoreGroup

Packages and groups can be blacklisted from updating the IgnorePkg and IgnoreGroup options in pacman.conf.

It may be better if these packages are hidden from the upgradable packages list when running pacseek -u. (The default sysupgrade command yay doesn't install these packages anyway)

Unable to use search terms with leading hyphens from the command-line

Using pacseek v1.7.3

Issue A

Steps to reproduce

pacseek -s '-icon-theme'
or
pacseek -- '-icon-theme'

Current behavior

Error: flag not supported: icontheme

Issue B

Steps to reproduce

pacseek -s -m

Current behavior

Opens pacseek with the monochrome (-m) option applied, but also searches for packages with '-m' as the search term.

Possible Solutions

  1. Don't parse the argument after -s as a command-line option.
  2. Add support for double-dash (--) to mark the end of the command-line options. e.g. pacseek -m -- -icon-theme.

PKGBUILDs not shown when chaotic-aur repo is enabled

Steps to reproduce

  1. Enable chaotic-aur repo
  2. Search with pacseek for an AUR package which is also available in the choatic-aur
  3. Try to view PKGBUILD of AUR package (shows 404: Not Found error)
  • This does not happen for AUR packages which are not in the chaotic-aur.

(This may be relevant: A similar problem exists with yay when the chaotic-aur is enabled.
Running yay -Gp informant will not show the PKGBUILD and shows an error.
This could be fixed by running either yay -Gpa informant or yay -Gp aur/informant)

Make default search to contains instead of startwith

This would make end user experience much better, especially those who are new to linux, my cousin who was used to using pamac was suggested by me to use this, he had trouble searching for packages cause he was used to pamac's method of searching with contain. I know this can be changed easily through the setting but a gui program should be simplified for new users & i think this is one of the changes needed. If its just me thinking this, just ignore my suggestion. Thank you for making such an amazing replacement to pamac.

configuration only makes sense with pacman wrappers

The current install, upgrade commands assume a pacman wrapper that handles both AUR and repository packages. This limits the usefulness to people who choose not to use pacman wrappers. An alternative would be:

  • AUR install command
  • AUR upgrade command
  • install command
  • upgrade command

Error while searching for AUR packages

Didn't have any problem searching packages using yay or paru, but searches used with pacseek produce error and empty result ;

Error : Get https://server.moson.rocks/rpc?v=5&type=seach&by=name&arg=pacseek" : context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Add ability to build/install AUR packages without helper (use makepkg)

I'd like add to the ability to use plain makepkg next to an AUR-Helper for AUR package building & installation.

For the moment the following variable substitutions are available for the AurInstallCommand

{pkg} -> package name
{pkgbase} -> package base
{giturl} -> URL to package git repo in AUR

There is some rudimentary shell-script as some wrapper on top of makepkg to build and install a package with the following expression configured for AurInstallCommand:

scripts/pacseek-install {pkgbase} {pkg} {giturl}

It's basically just cloning the AUR git repo for the respective package and then executes makepkg to build and pacman -U... to install it.

I'm happy for any ideas for improvement and contributions on that matter (my shell scripting knowledge is extremely limited ๐Ÿ˜‰ )

Add background settings to entire window

After changing SettingsFieldBackground to 000000 in colors.json, my news items background now appears as my normal XFCE terminal text does - transparent. Is this available for the rest of the window? If not, can it be added?

Here's an example of what I'm talking about:
pacseek

Text selection by mouse

Hello.

Thank you, this is really a cool project. I just accidentally saw it in the Brodie Robertson video. Bad that I did not know about it before.

How can I select the text with my mouse? For example, I want to copy paste someone's PKGBUILD or just copy the package name. When I try doing that, nothing happens.

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.