ikz87 / dots-2.0

eww + bspwm rice c:
GNU General Public License v3.0
228 stars 16 forks source link

Full Package Dependencies #9

Closed ghost closed 2 years ago

ghost commented 2 years ago

I'm attempting to recreate this in NixOs. The deterministic nature of Nix would mean that it could then be distributed to anyone inclined, however the biggest hurdle is overcoming the full dependency list.

The Reddit Post suggests the following dependencies:

BSPWM Eww Rofi wpgtk pijulius' picom

However additional dependencies exist. I have identified the following:

blueman-applet brave-browser dunst flameshot hsetroot kitty neovim playerctl spotify sxhkd thunar

If there is interest I can push up what I've got to a repo, but I'd at @ikz87's opinion on the matter beforehand.

If there was an effort to make this a Nixos template we would benefit from steps to make application selections like browser, music player, file manager, etc. exist at a higher level that could propagate to all scripts interested in acting on them. We'd also benefit from shortcuts being extracted in a similar way to ease configuration.

But I'm gonna be honest, this rice is so sick that its probably worth it. :joy:

ikz87 commented 2 years ago

I'd appreciate if you could make a PR with all you've got :) Being honest I'm new to github and don't know much about formatting README files and such, a PR on something like adding a short dependency list would be of great help because then I'd just follow the same structure and add whatever else could be left (like the fonts needed). As for making configuration easier, I think that could be done by using environment variables and making all scripts call those variables instead of hard coding stuff, but I think it would be better to come up with a full dependency list before that.

ghost commented 2 years ago

I've made some progress towards generalizing the paths. Its also got me commenting out your OSU stuff :grimacing: so sorry about that :joy:

If I was better at git I'd know how to cherrypick that out of my PR, but I'll spin what I have so far up.

I also wrote a script that symlinks files from where you clone the repo to where they should be.

ghost commented 2 years ago

You've made a lot of code deletions so this list is outdated, but here was what I had for the deps before that:

ikz87 commented 2 years ago

Sorry, forgot to comment on this until now. This list looks good so far but I see you added some programs referenced by my picom and bspwm config filea, the thing is, a lot of them are references on rules just to work if the app is opened but not necessary for the rice to work (like sm64ex for example). Also some deps are not needed anymore. The list without those things would end up something like this:

Also, just to add to the list, needed fonts should be:

What do you think? Now I just have to make an effort to get rid of all the unnecessary rules in both bspwmrc and picom.conf to avoid confusion

ikz87 commented 2 years ago

Also, just looked into your fork's deps.md (should've done it earlier) Will remove some more icon stuff from dunstrc since it isn't used at all Will comment an updated deps list in a bit now that I checked your fork

ghost commented 2 years ago

https://github.com/dr-oofenshmirtz/NixOs-with-ikz87s-gourmet-rice/blob/main/nixos/configs/rice/deps/default.nix

Here's where I'm at with deps

    pkgs.acpi
    #pkgs.amixer might be alsamixer
    pkgs.brave
    pkgs.bspwm
    pkgs.colorpicker
    pkgs.dbus
    pkgs.dbus.daemon
    #pkgs.discover-overlay
    pkgs.discord 
    pkgs.eww
    pkgs.flameshot
    #pkgs.gdbus possible dbus-glib possible already in dbus
    pkgs.hsetroot
    pkgs.kitty
    #pkgs.mantablockscreen gonna have to github install
    pkgs.picom
    pkgs.playerctl
    pkgs.polybar
    pkgs.polkit_gnome
    pkgs.pulseaudio
    pkgs.pulseaudio-ctl
    pkgs.python3Full
    pkgs.pywal #
    pkgs.rofi
    pkgs.scrot
    pkgs.spicetify-cli
    pkgs.spotify
    pkgs.sxhkd
    pkgs.sysstat # for mpstat
    pkgs.xclip
    pkgs.xdg-desktop-portal-gnome
    pkgs.xdotool
    pkgs.xfce.thunar
    pkgs.xorg.setxkbmap
    pkgs.xprintidle
    pkgs.xorg.xwininfo
    pkgs.wmctrl
    pkgs.wpgtk
ikz87 commented 2 years ago

Noticed brightlight missing. I use it in ~/.bscripts/brightness.sh since xbacklight (the standard) doesn't work on my machine. It'd probably work better for you to just edit the script to use xbacklight instead, but I'm gonna keep using the package linked above

ikz87 commented 2 years ago

Managed to put out a oneliner for installing most dependencies for anyone running arch, should be complete assuming some stuff as core utils (like some Xorg packages). Fonts are listed too now. Will still leave this open if we end up finding some other program is missing. Now I'm gonna focus on making a setup script like the one you wrote (might just use that and change a couple things)

ghost commented 2 years ago

Feel free to. The only reason I haven't offered it your way is because I went a different direction with directory structure.

I opted to move all ricing things not in the .config directory into the .gourmet-rice directory after installation. This includes .bscripts and Documents/Sounds and Pictures

The directory format post install is

.config/
  | - bspwm/
  | - dunst/
  | - eww/
  | - picom.conf
  | - wpg/
.gourmet-rice/
  | - bscripts/
  | - assets/
      | - img/
          | - important/
          | - wallpaper/
      | - sounds/

similarly I renamed directories with the repo. Anything prefaced with a . has had it removed in the repo while maintaining it post install.

Additionally I made notes within directories that are linked to the repo to call out that the changes are being made not exactly where a person my think.

I'll gladly help move any of those changes into your branch if you'd like, otherwise absolutely feel free to steal my code.

ghost commented 2 years ago

https://github.com/dr-oofenshmirtz/ikz87s-gourmet-rice/blob/e3bf5869c3e69c60976f6b07afa512c7be575eda/link.sh

Is probably pretty damn close to what you're looking for in an install script. It doesn't care where a person clones the repo to and once you've done it everything is symbolically linked, so a git pull in the repo would update any files that change automagically (unless unlinked files are added)

ghost commented 2 years ago

Oh you might want to throw a software license on this repo.

GPL3 is my favorite MIT is really common and well liked There's a bunch of other ones too, but it would allow you to exercise your right to own this code in a manner that covers your ass from a legal perspective and keeps the code open source if other people (like me) fork your code.

ikz87 commented 2 years ago

I'd like to keep the directory structure the way it is in this branch at least since that's how I have it on my machine where I use those directories for some other things that are not related to the rice itself. But I'm totally stealing the linking script lol, will just make the necessary changes. As for the license, I'll look into it since I don't know anything about licensing things, thanks for the advice. Once I have the install script I'm gonna try installing the rice in a fresh arch install and see how it goes, I worry that some dependencies might still be missing.

ghost commented 2 years ago

You called out pavucontrol isn't necessary, however your yay install script calls it out. Do I need it?

ikz87 commented 2 years ago

That's an oversight, pavucontrol shouldn't be necessary for anything rice related, will take it out of the yay script

ikz87 commented 2 years ago

Little update: removed fonts from dependencies and added them to the repo itself, thought it was a good idea to install them via the install script instead of leaving that to the user

ikz87 commented 2 years ago

Made huge advancements today, managed to install the rice on a fresh arch installation in like 20 minutes with the install script (including installing dependencies). But in doing so I noticed some problems with certain scripts that I will clean up. More importantly, there still seems to be a font missing for a certain part of the rice, will look into that.

Might finish the whole thing tomorrow :)

ikz87 commented 2 years ago

Identified a dependency jq used to parse bspwm's state in .config/eww/mybar/scripts/layout

ikz87 commented 2 years ago

Just spent the whole morning testing and it works fine now :D Some further improvements to scripts and configs are still needed, but the install script and the dependency list is done. Also identified a dep that you might be missing sox used to play some sound effects. Closing this as the main topic of the issue seems to be resolved already, feel free to open any other issues if you find some other problem