moson-mo / pacseek Goto Github PK
View Code? Open in Web Editor NEWA terminal user interface for searching and installing Arch Linux packages
License: MIT License
A terminal user interface for searching and installing Arch Linux packages
License: MIT License
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.
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)
According to the README, some kind of caching is implemented for package data. My expectation would be
What I get instead is:
Love the direction this package is going - thanks a bunch for the hard work!
I tried the Show PKGBUILD feature today; like it, but I'd like an option to not shell out, but show it right below the package info.
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.
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
It loads near-instantly and appears normal if I change the Value of $TERM:
$ TERM=xterm-direct pacseek
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:
I suspect this may be some sort of bug, perhaps 'xterm-direct' was hard coded somewhere.
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.
can you add feature when i search for package that it sort it autimatically like in aur website by votes or popularity?
One more thing: backspace isn't working on xterm.
Originally posted by @leo-arch in #9 (comment)
Thanks for this little tool!
I'm using pacseek
with paru
to retrieve PKGBUILD
s 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 :)
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.
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:
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.
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
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.
This is perhaps beyond the scope of the project, but I would like to request some QoL features:
Bonus request: Show Out of Date flags in package list and date flagged in description.
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.
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:
I use Polish locale pl_PL.UTF-8
.
Depending on the size of the window, textfields might be drawn over the border(s):
PR created upstream: rivo/tview#924
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)
Using pacseek v1.7.3
pacseek -s '-icon-theme'
or
pacseek -- '-icon-theme'
Error: flag not supported: icontheme
pacseek -s -m
Opens pacseek with the monochrome (-m
) option applied, but also searches for packages with '-m' as the search term.
-s
as a command-line option.--
) to mark the end of the command-line options. e.g. pacseek -m -- -icon-theme
.(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
)
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.
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:
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)
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 ๐ )
So I have underline as a terminal cursor.
After quitting pacseek it's reset to block, which pacseek uses I assume.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.