dots-hyprland icon indicating copy to clipboard operation
dots-hyprland copied to clipboard

illogical-impulse on NixOS

Open RipDr19 opened this issue 1 year ago • 15 comments

  • I have read the instructions

The issue

  • Linux distro: Nix OS
  • I am trying to manual install this dot in my nix os setup but can clone the .config folder directly and rsync also doesn't seem to help at all

How can I clone the config and local folder of this repo directly to just get the dots which I can then manually paste to my .config folder?

RipDr19 avatar Feb 04 '24 13:02 RipDr19

NixOS with my dotfiles? You're not alone! (Note: I'm in the process of figuring out NixOS too, so I'm not entirely sure.)

  1. Clone then git checkout illogical-impulse
  2. See the command that checks for existence of pacman in install.sh at line 8? Just comment that out with a # then run the script. Skip package installation stuff (for now you have to do that manually in your nix config) and say yes when prompted to copy files.
  3. Beware of conflicts with home-manager and you should be fine

end-4 avatar Feb 04 '24 13:02 end-4

That's interesting, I thought NixOS has a total different way dealing with configs... seems like it's actually alike normal Linux distros at least for ~/.config.

In that case, maybe it's not difficult to have a try on NixOS for me. And if it can be done, I'll try to implement a install script for NixOS some other time.

clsty avatar Feb 04 '24 13:02 clsty

Well it does handles differently too, if you are planning to use flakes or home managers (basically trying to automate it) but otherwise the fallback method still exists

RipDr19 avatar Feb 04 '24 13:02 RipDr19

It's going to be different if you use home-manager. What it does is generate contents in home folder based on configurations in Nix format.

  • Specifically for AGS, there's an option to not have home-manager manage ~/.config/ags. I'm having it like this since folders generated by home-manager are read-only, which is something that makes my config not work at present.

Btw I can't figure out how to make GtkSourceView work (which is required for left sidebar) :sob:

end-4 avatar Feb 04 '24 13:02 end-4

And here I am all done and up just I can't seem to understand how to install ags in nix

RipDr19 avatar Feb 04 '24 14:02 RipDr19

And here I am all done and up just I can't seem to understand how to install ags in nix

flake.nix inputs:

ags.url = "github:Aylur/ags";

then you can source a file like this to home.nix https://github.com/end-4/CirnOS/blob/main/home-manager/ags.nix

end-4 avatar Feb 04 '24 14:02 end-4

Will be better if the git checkout (commit hash) of ags repo could be specified.

clsty avatar Feb 04 '24 15:02 clsty

there must be a way... that's why i tried to use nixos in the first place using ref in inputs of flake.nix i think

end-4 avatar Feb 04 '24 15:02 end-4

I still can't understand flakes at all, I will shift back to arch for now, do you think this setup can work on void linux though?

RipDr19 avatar Feb 04 '24 15:02 RipDr19

try it and see

end-4 avatar Feb 04 '24 15:02 end-4

I tried from the ags wiki and it returned that flake path is not set with a bunch of other things

RipDr19 avatar Feb 04 '24 15:02 RipDr19

I tried from the ags wiki and it returned that flake path is not set with a bunch of other things

i think you should find a config for nixos that looks good structure. like: zaneyos. and then, you can change it to what you like

solitudealma avatar Apr 28 '24 05:04 solitudealma

I had a stab at it a few months back, I'm going through and updating for 24.05 this weekend.

Added a feature to adjust foot transparency on the fly from the effects menu. :)

https://github.com/celesrenata/nix-flakes

celesrenata avatar Jun 07 '24 02:06 celesrenata

I've gone ahead and taken a stab at making a home manager module and flake for this with a config to allow users to exclude certain files from being sourced in the config so they can be sourced by the user manually if modifications are necessary.

It's probably not a very nix-like way to do things, but I've tried to keep it such that it sticks to the config files in this repository rather than rewriting everything in nix, and it can just be added like any other flake input rather than having to be installed like a whole new system configuration.

That said, I haven't implemented the installation of any required packages yet besides the pinned ags revision, that'll be the next step.

I may also have to figure out some things to allow the auto-generation components to work properly – or maybe use some kind of config to force declarative generation rather than imperative.

Makrennel avatar Jul 20 '24 05:07 Makrennel

That said, I haven't implemented the installation of any required packages yet besides the pinned ags revision, that'll be the next step.

So I've managed to get it running such that it will, upon being enabled, install the correct packages and Hyprland can be started. There seems to be an issue with getting ags to work though. I not really sure what's causing it, and ags is capable of displaying a default config, but not the one provided in illogical-impulse.

Here is the log from when running ags up to killing it with ags -q

/nix/store/4arj1mz42giyrpqxiir1nvllj1hg708n-gvfs-1.54.2/lib/gvfs/libgvfscommon.so: undefined symbol: g_once_init_leave_pointer
Failed to load module: /nix/store/4arj1mz42giyrpqxiir1nvllj1hg708n-gvfs-1.54.2/lib/gio/modules/libgvfsdbus.so

(com.github.Aylur.ags:8744): Gjs-WARNING **: 01:17:57.454: JS ERROR: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data @ file:///home/alice/Local/etc/ags/modules/cheatsheet/keybinds.js:21:17
No /dev/i2c devices exist.
ddcutil requires module i2c-dev.

(com.github.Aylur.ags:8744): Gjs-CRITICAL **: 01:26:57.284: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Stack 0x10f0510.
== Stack trace for context 0x7b4c80 ==

(com.github.Aylur.ags:8744): Gjs-CRITICAL **: 01:26:57.284: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Stack 0x10f0510.
== Stack trace for context 0x7b4c80 ==

(com.github.Aylur.ags:8744): Gjs-CRITICAL **: 01:26:57.284: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Label 0x10e3e50.
== Stack trace for context 0x7b4c80 ==

(com.github.Aylur.ags:8744): Gjs-CRITICAL **: 01:26:57.284: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
The offending signal was destroy on Ags_Label 0x10ef5e0.
== Stack trace for context 0x7b4c80 ==

The CRITICAL part of the log only prints when ags is killed. From this maybe it's a problem with gvfs? I'm not really sure.

Makrennel avatar Jul 27 '24 00:07 Makrennel

I'm working on this too. I packed it into a home manager module (based on CirnOS, I rewrite most of the dotfiles with Nix, and with some of my own customizations.), though there may still some features not working (Maybe there are still some deps I ignored). There is a weird cache files permission created by ags (Permission of files in ~/.cache/ags/user/generated/ is all set as 444, I think it should be 644 since ags need to update them when changing wallpapers.). You may need to set them to 644 manually after the first time you set wallpaper.

https://github.com/bigsaltyfishes/end-4-dots

bigsaltyfishes avatar Feb 06 '25 19:02 bigsaltyfishes