Git Product home page Git Product logo

pacwall's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pacwall's Issues

Image size changes when there are more circles

When there are a few too many packages, the size of the image changes and does not follow screen size (neither does it follow if size is explicitly given using args). This makes it like this:
pacwall

Since the aspect ratio is broken, the image stretches/zooms in on the background which makes it pixelated and ugly:
Screenshot from 2020-03-24 23-11-49

Or maybe a recent commit broke it and it has nothing to do with the number of packages.

DE integration.

We put the generated wallpaper in ~/.local/share/wallpapers, but, if the DE isn't GNOME, the wallpapers there are unresized. If the DE doesn't provide an option to center the image and use a solid color outside, setting the wallpaper from GUI is broken.

Possibilities:

  • Strictly require imagemagick.
  • Check whether imagemagick is installed and resize the image if it is.
  • Provide support for DEs separately. As of now large effort has been put only in GNOME support.
  • Pretend there is no problem.

Version 2.3 has not been pushed to AUR

I'm not sure if there's a reason for it or if it's just slipped your mind, but figured I'd poke here since it's been quite some time since 2.3 was released here.

Installation config hook KDE

I needed some tweaking to the config file to get it to work in kde:
Mine looks like this:


hook:
# Set the KDE Plasma Desktop Wallpaper
"echo 'test' \n"
"blank=$HOME/.config/pacwall/oneblackpixel.png"
"plasma-apply-wallpaperimage $blank \n"
"plasma-apply-wallpaperimage $W \n"

# Set the KDE Plasma Lock Screen Wallpaper

"kwriteconfig5 --file kscreenlockerrc --group Greeter --key WallpaperPlugin org.kde.image \n"
"kwriteconfig5 --file kscreenlockerrc --group Greeter --group Wallpaper --group org.kde.iemage --group General --key Color \"#073642\" \n"
"kwriteconfig5 --file kscreenlockerrc --group Greeter --group Wallpaper --group org.kde.iemage --group General --key FillMode 6 \n"
"kwriteconfig5 --file kscreenlockerrc --group Greeter --group Wallpaper --group org.kde.iemage --group General --key Image $W \n"

so I needed to add quotes and newlines to everything. Otherwise it complained about having a missconfigured config.

Center the image

The picture is a bit off from the center... Not sure if that's normal or wrong but it annoys me a lot for some reason... Is it possible to automatically center it?

image

Awesome work btw!
And yes I know I have tons of packages and I need serious cleanups

syntax error in line 1691 near '['

Exact command run:
pacwall -b "#2e3440" -s "#d8dee950" -d "#bf616a" -e "#88c0d0" -p "#a3be8c" -f "#b48ead" -u "#ebcb8b" -y "#eceff4" -x "#a3be8c" -z "#ebcb8b"

SCREEN_SIZE is not enough

For my 12", I must add argument on twopi command size="x,y" in inches (only x for me)
$SCREEN_SIZE var is only for image

twopi \
    -Gsize="7.5" \
    -Tpng pacwall.gv \
    -Gbgcolor=$BACKGROUND \
    -Ecolor=$EDGE\
    -Ncolor=$NODE \
    -Nshape=point \
    -Nheight=0.1 \
    -Nwidth=0.1 \
    -Earrowhead=normal \
    > pacwall.png

with wayland

is there a way to use it with wayland? Because I'm trying to use it here and I'm not having success

Script hangs when I try to run it

Ubuntu 18.04 here.

When I try to run the script it never finishes running. What more info could I give you to help you trace the issue?

swaymsg hook incorrect

The packaged swaymsg hook in incorrectly quoted.
Additionally I couldn't get the $W environment variable to work.

fyi, here is my current hook

hook: "swaymsg 'output * bg ~/.cache/pacwall/pacwall.png fit #073642'"

Portage support?

Should be very doable. If you do not want to do it then maybe someone else will.

doesn't set wallpaper on xfce

i'm currently running arcolinux xfce4 and i have installed pacwall from yay
when trying to run pacwall nothing literally happens; i run it on gnome still nothing but a second before exiting i see it
what i think the problem is that the wallpaper providers for xfce/gnome deny it since viewing the gnome logs give
URI './pacwall.png' is invalid
and
Failed to load background 'file:///home/wael/pacwall.png': Error opening file /home/wael/pacwall.png: No such file or directory
any help?

Ubuntu 20.04 HELP

I am using Ubuntu 20.04 with Regolith. When i run ./pacwall.sh -D it just uses the regular ubuntu background. Am i missing something? Is there anything i can do to generate a wallpaper? The output is
`Using pactree to generate the graph

./pacwall.sh: line 44: pacman: command not found

./pacwall.sh: line 37: pacman: command not found

./pacwall.sh: line 37: pacman: command not found

./pacwall.sh: line 37: pacman: command not found

./pacwall.sh: line 37: pacman: command not found

./pacwall.sh: line 98: checkupdates: command not found

Using gsettings to set the wallpaper

Using hsetroot to set the wallpaper

Using feh to set the wallpaper`

Explicit node color -e not working with RGB(A)

./pacwall.sh -e "#000000" 
Preparing the environment
Generating the graph.
Compiling the graph.
Rendering it.
Error: pacwall.gv: syntax error in line 3 near '['

When I use -e "black" instead it works fine.

I think the problem is in your generate_graph() function where you only accept colors by names.

echo "\"$package\" [color=$ENODE]" >> pkgcolors

It would be nice to use RGB(A) on all your color input arguments. Maybe you can put it on your man/help output as well, so people know it is possible to use RGBA or direct color names, maybe list some examples.

Add shell completion functions

Most shells have some directory in /usr/share where packages can place scripts to implement tab-completion functions. It would be nice to implement these functions and have the PKGBUILD place them where appropriate.

I can't say what the ultimate goal for the issue should be but I believe it should at least cover bash and zsh which are very popular.

Edge bundling

Might not be worth it, but would be cool if it supported edge bundling. I know GraphViz is kinda broken in a lot of ways. concentrate=true definitely doesn't work. mingle could be used, although the dependency library ann is broken for compilation with GraphViz, I've just gotten it to work on Arch Linux.

I've tried a few combinations of mingle filters but I'm not sure which is the right one with your format.
E.g.: twopi pacwall.gv | mingle | twopi -Tpng pacwall.png
Also, it seems that mingle depends on the pos attribute of nodes, which is not used in your gv format at all, so it might be necessary to add these.

Package manager detection

identify package manager automatically, without the use of flags specified by the user. (like -V for voidlinux)
(discussed in #42 )

"sudo mode"

Suggestion to add a "global mode". I am trying to add a pacman hook but was unable to do so because I was under sudo. (And the hook's syntax to use execv instead of execvp makes it harder).

Failure in the systemd timer unit

I have enabled and started pacwall-watch-updates.timer unit, but the wallpaper doesn't seem to change as packages get outdated. And indeed I have several entries like this in my journalctl approximately every hour:

systemd[849]: Starting Pacwall Wallpaper Generator...
Sep 16 06:53:18 SwiftNB systemd[849]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 16 06:53:18 SwiftNB systemd[849]: [email protected]: Failed with result 'exit-code'.
Sep 16 06:53:18 SwiftNB pacwall[22034]: USAGE: /usr/bin/pacwall [-ugk]
Sep 16 06:53:18 SwiftNB pacwall[22034]: See /usr/share/doc/pacwall/README.rst for more info.
Sep 16 06:53:18 SwiftNB systemd[849]: Failed to start Pacwall Wallpaper Generator.

I see that pacwall-watch-updates.timer executes [email protected] periodically, so here is a little more info from systemctl --user status [email protected] :

[email protected] - Pacwall Wallpaper Generator
     Loaded: loaded (/usr/lib/systemd/user/[email protected]; static)
     Active: failed (Result: exit-code) since Wed 2020-09-16 21:15:59 MSK; 5s ago
TriggeredBy: ● pacwall-watch-updates.timer
    Process: 33891 ExecStart=/usr/bin/pacwall -/ (code=exited, status=1/FAILURE)
   Main PID: 33891 (code=exited, status=1/FAILURE)

Sep 16 21:15:59 SwiftNB systemd[849]: Starting Pacwall Wallpaper Generator...
Sep 16 21:15:59 SwiftNB pacwall[33891]: USAGE: /usr/bin/pacwall [-ugk]
Sep 16 21:15:59 SwiftNB pacwall[33891]: See /usr/share/doc/pacwall/README.rst for more info.
Sep 16 21:15:59 SwiftNB systemd[849]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 16 21:15:59 SwiftNB systemd[849]: [email protected]: Failed with result 'exit-code'.
Sep 16 21:15:59 SwiftNB systemd[849]: Failed to start Pacwall Wallpaper Generator.

So it tries to run /usr/bin/pacwall -/ and fails because of the invalid argv. From what I can tell a dash - gets replaced in the %I variable by a slash / in [email protected].
Then in /usr/lib/systemd/user/[email protected] I replaced

ExecStart=/usr/bin/pacwall -%I

with

ExecStart=/usr/bin/pacwall -%i

Ran systemctl --user daemon-reload and now systemctl --user start [email protected] doesn't throw any errors.
Are there any specific reasons for using %I instead of %i?

Wallpaper not properly set with screen off

If pacwall-watch-updates.timer triggers while my laptop's screen is powered off (e.g. after several minutes without activity), the wallpaper seems to be un-set, leaving just a black background. Also, the systemd logs from such a run don't show anything out of the ordinary:

[email protected] - Pacwall Wallpaper Generator
     Loaded: loaded (/usr/lib/systemd/user/[email protected]; static)
     Active: inactive (dead) since Sun 2022-07-03 13:58:00 MDT; 54min ago
TriggeredBy: ● pacwall-watch-updates.timer
    Process: 7489 ExecStart=/usr/bin/pacwall -- (code=exited, status=0/SUCCESS)
   Main PID: 7489 (code=exited, status=0/SUCCESS)
        CPU: 1.229s

Jul 03 13:57:57 ritzcracker systemd[1911]: Starting Pacwall Wallpaper Generator...
Jul 03 13:58:00 ritzcracker systemd[1911]: Finished Pacwall Wallpaper Generator.
Jul 03 13:58:00 ritzcracker systemd[1911]: [email protected]: Consumed 1.229s CPU time.

I'm not sure if this is a pacwall issue or an hsetroot one, since that's the hook I'm using (with i3). Is there a way to verify this? I'd be happy to test suggestions or provide additional logs, if that would help.

Runit Service

Would it be possible for you to include a runit service for this? If not, I'd be happy to PR one.

Thanks!

Incompatible with Pacman 6.1

Getting the following when trying to run pacwall after upgrading today:

pacwall: error while loading shared libraries: libalpm.so.13: cannot open shared object file: No such file or directory

Seems to be related to a pacman update, Yay had same issue and already fixed. Jguer/yay#2393

How to make a full screen wallpaper??

I install pacwall from AUR, and how can I generate a 1920x1080 wallpaper in my filesystem?
I'm using X, the instruction in readme says:
image
Does it mean that I can't do that?

fetchupdates fails

Hi, thanks for sharing this tool, its great.

When trying to run pacwall -k on 2bwm it returns.:

/usr/lib/pacwall/fetchupdates.sh returned 1

I am struggling to narrow down what the issue could be, if you have any ideas I would love to hear them.

Thanks.

EDIT: I logged into budgie and same issue there. pacman version is 6.0.1-2

Pacman hook file prefix should be higher than 10

Pacman hook for regenerating the graph should possibly run after other PostTransaction hooks, which might for example handle .pacnew files. According to man 5 alpm-hooks the running order is defined by the alphabetical order of the hooks filenames, so 10-pacwall.hook is one of the first hooks to be triggered, while it should actually be the last. Renaming it to something like 99-pacwall.hook might be warranted.

Sanity check for cmdopts.

Using pacman -r ROOT does not work. See the image for the result when I say pacman -DWr libalpm. It seems that the image is the same with other packages such as git or linux.

2020-04-09T20:03:14,167280658-04:00

systemd service failing

Not sure if I did something wrong, I started the services by

systemctl --user start pacwall-watch-updates.timer
systemctl --user enable pacwall-watch-updates.timer
systemctl --user start pacwall-watch-packages.path
systemctl --user enable pacwall-watch-packages.path

➜ ~ systemctl --user --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
at-spi-dbus-bus.service loaded active running Accessibility services bus
dbus.service loaded active running D-Bus User Message Bus
gvfs-daemon.service loaded active running Virtual filesystem service
[email protected] loaded failed failed Pacwall Wallpaper Generator
[email protected] loaded failed failed Pacwall Wallpaper Generator
pulseaudio.service loaded active running Sound Service

➜ ~ journalctl | grep pacwall
Sep 14 11:54:34 arch-desktop sudo[141166]: ferdinand : TTY=pts/17 ; PWD=/home/ferdinand ; USER=root ; COMMAND=/usr/bin/pacman -U --noconfirm --config /etc/pacman.conf -- /home/ferdinand/.cache/yay/pacwall-git/pacwall-git-2.0rc2.r1.g0745507-1-any.pkg.tar.xz
Sep 14 11:55:37 arch-desktop systemd[758]: Started Run pacwall on package upgrade/removal/installation.
Sep 14 12:08:51 arch-desktop systemd[758]: pacwall-watch-packages.path: Succeeded.
Sep 14 12:08:51 arch-desktop systemd[758]: Stopped Run pacwall on package upgrade/removal/installation.
Sep 14 12:09:52 arch-desktop dbus-daemon[530]: [system] Activating via systemd: service name='org.freedesktop.home1' unit='dbus-org.freedesktop.home1.service' requested by ':1.3534' (uid=0 pid=147614 comm="sudo pacwall ")
Sep 14 12:09:52 arch-desktop sudo[147614]: ferdinand : TTY=pts/5 ; PWD=/home/ferdinand ; USER=root ; COMMAND=/usr/bin/pacwall
Sep 14 12:29:45 arch-desktop systemd[801]: Started Run pacwall on package upgrade/removal/installation.
Sep 14 12:33:17 arch-desktop systemd[801]: Created slice pacwall.slice.
Sep 14 12:33:18 arch-desktop pacwall[10759]: 00:00:00.012 [swaymsg/main.c:417] Unable to retrieve socket path
Sep 14 12:33:18 arch-desktop systemd[801]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 14 12:33:18 arch-desktop systemd[801]: [email protected]: Failed with result 'exit-code'.
Sep 14 13:09:58 arch-desktop systemd[801]: Started Run pacwall periodically.
Sep 14 13:30:22 arch-desktop pacwall[36225]: 00:00:00.010 [swaymsg/main.c:417] Unable to retrieve socket path
Sep 14 13:30:22 arch-desktop systemd[801]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 14 13:30:22 arch-desktop systemd[801]: [email protected]: Failed with result 'exit-code'.
Sep 14 13:38:26 arch-desktop pacwall[45287]: 00:00:00.010 [swaymsg/main.c:417] Unable to retrieve socket path
Sep 14 13:38:26 arch-desktop systemd[801]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 14 13:38:26 arch-desktop systemd[801]: [email protected]: Failed with result 'exit-code'.
Sep 14 14:10:15 arch-desktop systemd[801]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 14 14:10:15 arch-desktop systemd[801]: [email protected]: Failed with result 'exit-code'.
Sep 14 14:10:15 arch-desktop pacwall[60272]: USAGE: /usr/bin/pacwall [-ugk]
Sep 14 14:10:15 arch-desktop pacwall[60272]: See /usr/share/doc/pacwall/README.rst for more info.
Sep 14 14:39:51 arch-desktop systemd[801]: Removed slice pacwall.slice.
Sep 14 14:39:51 arch-desktop systemd[801]: pacwall-watch-packages.path: Succeeded.
Sep 14 14:39:51 arch-desktop systemd[801]: Stopped Run pacwall on package upgrade/removal/installation.
Sep 14 14:39:51 arch-desktop systemd[801]: pacwall-watch-updates.timer: Succeeded.
Sep 14 14:39:51 arch-desktop systemd[801]: Stopped Run pacwall periodically.
Sep 14 14:40:31 arch-desktop systemd[801]: Started Run pacwall on package upgrade/removal/installation.
Sep 14 14:40:31 arch-desktop systemd[801]: Started Run pacwall periodically.
Sep 14 14:54:56 arch-desktop systemd[801]: Created slice pacwall.slice.
Sep 14 14:54:56 arch-desktop pacwall[9450]: USAGE: /usr/bin/pacwall [-ugk]
Sep 14 14:54:56 arch-desktop pacwall[9450]: See /usr/share/doc/pacwall/README.rst for more info.
Sep 14 14:54:56 arch-desktop systemd[801]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 14 14:54:56 arch-desktop systemd[801]: [email protected]: Failed with result 'exit-code'.
Sep 14 15:20:45 arch-desktop pacwall[21133]: 00:00:00.012 [swaymsg/main.c:417] Unable to retrieve socket path
Sep 14 15:20:45 arch-desktop systemd[801]: [email protected]: Main process exited, code=exited, status=1/FAILURE
Sep 14 15:20:45 arch-desktop systemd[801]: [email protected]: Failed with result 'exit-code'.
➜ ~

Set wallpaper as an explicit argument

Not an issue, but a quality of life suggestion.
I wasn't expecting the tool to set the wallpaper right away without explicitly declaring it. Maybe add a new argument like -w or -wallpaper to declare explicitly setting it as a wallpaper as well.

Scaling Issue

My config:

hook: "hsetroot -solid '#073642' -center '$W' > /dev/null"

attributes: {
    graph: "ranksep=0.7, bgcolor='#00000000'"
    package: {
        common:   "shape=point, height=0.1, fontname=monospace, fontsize=10"
        implicit: "color='#dc322faa'"
        explicit: "color='#268bd2aa'"
        orphan:   "color='#2aa198aa', fontcolor='#2aa198', peripheries=2, xlabel='\\N'"
        outdated: "color='#b58900aa', fontcolor='#b58900', peripheries=3, xlabel='\\N'"
    }
    dependency: {
        common:   "color='#fdf6e311'"
        hard:     ""
        optional: "arrowhead=empty, style=dashed"
    }
}

What I get when I run pacwall:

❯ pacwall
Error: pacwall.gv: syntax error in line 8859 near ','
twopi returned 1

I tried using dpi, ranksep and size, all of them worked alone inside graph but as soon as I add them next to background inside graph, it bugs out.

Non-orphan packages marked as orphan

Running pacman -Qqtd yields no results, so there are no orphans installed. I then check one of the supposed orphans that pacwall is showing and it has a install reason as 'as a dependency'. This is when it shows that it is only an optional dependency, which is sufficient for pacman to not say it is an orphan, but pacwall only looks at required dependencies, leading to a discrepancy between pacwall and pacman. For example, I have cuda installed and gdb as an optional dependency for it marked as a dependency. Pacwall shows gdb as an orphan when it is not and pacman does not show it as an orphan.

aur packages not necessarily "foreign"

As the title says. e8da45b introduces a different type of node for AUR packages, but the list is obtained from pacman -Qm according to source. Some aur helpers put packages in a local repository that pacman recognizes, and therefore no aur packages would be reported despite having them installed.

A possible addition is to enable a switch with argument as repository name, and use paclist <repo> to obtain the list installed through said repository. We can optionally allow multiple said switches to include multiple repositories recognized as aur.

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.