aylur / ags Goto Github PK
View Code? Open in Web Editor NEWA customizable and extensible shell
License: GNU General Public License v3.0
A customizable and extensible shell
License: GNU General Public License v3.0
Utils.subprocess
is very useful for writing custom services, and can easily equate eww's deflisten
. It's a shame it's not documented in the wiki.
Also, here, empty lines are filtered out on the function level, which I don't believe should happen. I've had some scripts that output an empty line or some special value depending on the state, and I would rather keep being able to use the empty value. I think the empty lines should still be sent to the callback, and the person using the subprocess should have to filter them on their own if they choose to do so.
Hi, I suspect the keyboard layout doesn't work properly. I am using ags
from the latest commit 0ee0d52
, Hyprland
0.28.0-1 on ArchLinux. The config.js
is updated to the latest example.
I defined
const Kbl = () => Label({
connections: [[Hyprland, (label,kbName,layoutName) => {
label.label = kbName? ('kb:' + kbName + ', ln: ' + layoutName ) : 'yy';
}, 'keyboard-layout']],
});
and added Kbl()
to the Right
children array.
I see two issues:
yy
kb:at-translated-set2-keyboard, ln: undefined
. I can confirm that layout switch works properly and I can type in all the languages. Relevant Hyprland config: input {
kb_layout = us,ru,il
kb_variant = ,phonetic,
kb_model = pc104
kb_options = grp:ctrl_space_toggle
...
Please advise. Thanks in advance
When I enter ags, it reports the following error:
(ags:23609): Gjs-WARNING **: 13:31:34.064: JS ERROR: SyntaxError: import declarations may only appear at top level of a module @ /home/ash/.config/ags/config.js:1:0
(ags:23609): Gjs-WARNING **: 13:31:34.064: JS ERROR: SyntaxError: import declarations may only appear at top level of a module @ /home/ash/.config/ags/config.js:1:0
Gjs-Message: 13:31:34.064: JS LOG: ERROR: No config was provided or there was an error
(ags:23609): Gjs-WARNING **: 13:31:34.064: JS ERROR: SyntaxError: import declarations may only appear at top level of a module @ /home/ash/.config/ags/config.js:1:0
Can someone give me some help
Currently the ags process is under gjs (makes sense given it's a gjs project) but is it possible to rename it? (not sure about this - fairly new to linux development)
If there is another instance of gjs using killall etc will kill those processes also. It is also not so obvious, and would be nice to be able to pkill or killall ags
Any possibility of supporting X11? Since it's GTK-based, I'd assume that X11 support shouldn't be impossible.
I've been looking for something better than eww, so I took a cursory glance through the wiki and examples and I'm already loving it (real icons!!!).
I'm stuck on an old machine with a legacy nvidia card, making wayland a non-option, so X11 support would be absolutely wonderful.
When the wifi menu is opened it doesn't show the available wifi networks and outputs:
(ags:78839): Gjs-CRITICAL **: 14:55:49.131: JS ERROR: TypeError: ap.ssid is null
get accessPoints/<@resource:///com/github/Aylur/ags/js/service/network.js:68:13
get accessPoints@resource:///com/github/Aylur/ags/js/service/network.js:64:49
Widget.widgets["network/wifi-selection"]/<.connections<@/home/incognitux/.config/ags/modules/network.js:115:9
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_sync@resource:///com/github/Aylur/ags/js/service/network.js:150:14
Wifi/<@resource:///com/github/Aylur/ags/js/service/network.js:43:51
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
When arriving at the step meson setup build
, it fails and I got stuck trying to fix it.
$ meson setup build
The Meson build system
Version: 1.2.0
Source dir: /home/aefka/Downloads/ags
Build dir: /home/aefka/Downloads/ags/build
Build type: native build
Project name: ags
Project version: 0.1.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Run-time dependency gobject-introspection-1.0 found: YES 1.76.1
Run-time dependency gio-2.0 found: YES 2.76.4
Run-time dependency gjs-1.0 found: YES 1.76.2
Run-time dependency gtk+-3.0 found: YES 3.24.38
Executing subproject gvc
gvc| Project name: gvc
gvc| Project version: undefined
gvc| C compiler for the host machine: cc (gcc 13.1.1 "cc (GCC) 13.1.1 20230714")
gvc| C linker for the host machine: cc ld.bfd 2.40.0
gvc| Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
gvc| Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
gvc| Dependency gio-2.0 found: YES 2.76.4 (cached)
gvc| Run-time dependency gobject-2.0 found: YES 2.76.4
gvc| Run-time dependency libpulse found: YES 16.1
gvc| Run-time dependency libpulse-mainloop-glib found: YES 16.1
gvc| Dependency gobject-introspection-1.0 found: YES 1.76.1 (cached)
gvc| Dependency gobject-introspection-1.0 found: YES 1.76.1 (cached)
gvc| Program g-ir-scanner found: YES (/usr/bin/g-ir-scanner)
gvc| Dependency gobject-introspection-1.0 found: YES 1.76.1 (cached)
gvc| Program g-ir-compiler found: YES (/usr/bin/g-ir-compiler)
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 194, in run
return options.run_func(options)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/msetup.py", line 358, in run
app.generate()
File "/usr/lib/python3.11/site-packages/mesonbuild/msetup.py", line 183, in generate
return self._generate(env, capture, vslite_ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/msetup.py", line 228, in _generate
intr.run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 2997, in run
super().run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 164, in run
self.evaluate_codeblock(self.ast, start=1)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 196, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 521, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 878, in func_subproject
return self.do_subproject(args[0], 'meson', kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 959, in do_subproject
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 943, in do_subproject
return self._do_subproject_meson(subp_name, subdir, default_options, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 986, in _do_subproject_meson
subi.run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 2997, in run
super().run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 164, in run
self.evaluate_codeblock(self.ast, start=1)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 206, in evaluate_statement
return self.evaluate_if(cur)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 301, in evaluate_if
self.evaluate_codeblock(i.block)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 198, in evaluate_statement
self.assignment(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 635, in assignment
value = self.evaluate_statement(node.value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 200, in evaluate_statement
return self.method_call(cur)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 550, in method_call
res = obj.method_call(method_name, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreterobjects.py", line 811, in method_call
ret = method(state, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/modules/gnome.py", line 1144, in generate_gir
self._get_dependencies_flags(deps, state, depends, use_gir_args=True)
File "/usr/lib/python3.11/site-packages/mesonbuild/modules/gnome.py", line 737, in _get_dependencies_flags
cflags, internal_ldflags_raw, external_ldflags_raw, gi_includes, depends = self._get_dependencies_flags_raw(deps, state, depends, include_rpath, use_gir_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/modules/gnome.py", line 716, in _get_dependencies_flags_raw
if use_gir_args and self._gir_has_option('--extra-library'):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/modules/gnome.py", line 794, in _gir_has_option
p, o, _ = Popen_safe(exe.get_command() + ['--help'], stderr=subprocess.STDOUT)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/utils/universal.py", line 1485, in Popen_safe
p = subprocess.Popen(args, universal_newlines=True, encoding=encoding, close_fds=False,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/subprocess.py", line 1024, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.11/subprocess.py", line 1805, in _execute_child
self._posix_spawn(args, executable, env, restore_signals,
File "/usr/lib/python3.11/subprocess.py", line 1749, in _posix_spawn
self.pid = os.posix_spawn(executable, args, env, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/g-ir-scanner'
ERROR: Unhandled python OSError. This is probably not a Meson bug, but an issue with your build environment.
Hey, great job @Aylur this + your dotfiles.
In few minutes I had this up and running and was great.
I think your dotfiles is a good starting point but instead of everyone doing its own ags config, we could provide one more customizable.
BUt a side from that, I wanted to ask if there is, or there's an idea to have a discord or anything to talk about ags etc and try to make it more mainstream with amazing things.
Hi there !
Great work with ags looking forwad to use it,
How can one get intellisense on its config file using ags ?
Even better, is it possible to write it in typescript ?
Thanks in advance :)
edit : wrong repo, my bad
I get the following errors:
ags:1559): Gjs-CRITICAL **: 14:59:42.082: JS ERROR: TypeError: device is undefined
_INTERNET@resource:///com/github/Aylur/ags/js/service/network.js:5:13
get internet@resource:///com/github/Aylur/ags/js/service/network.js:77:29
Widget.widgets["network/wired-indicator"]/<.connections</<@/home/aefka/.config/ags/modules/network.js:43:37
Dynamic/box.update@resource:///com/github/Aylur/ags/js/widgets.js:214:26
Widget.widgets["network/wired-indicator"]/<.connections<@/home/aefka/.config/ags/modules/network.js:39:48
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_sync@resource:///com/github/Aylur/ags/js/service/network.js:131:14
_clientReady@resource:///com/github/Aylur/ags/js/service/network.js:115:14
NetworkService/<@resource:///com/github/Aylur/ags/js/service/network.js:91:22
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
(ags:1559): Gjs-CRITICAL **: 14:59:42.082: JS ERROR: TypeError: device is undefined
_INTERNET@resource:///com/github/Aylur/ags/js/service/network.js:5:13
get internet@resource:///com/github/Aylur/ags/js/service/network.js:77:29
Widget.widgets["network/wired-indicator"]/<.connections</<@/home/aefka/.config/ags/modules/network.js:43:37
Dynamic/box.update@resource:///com/github/Aylur/ags/js/widgets.js:214:26
Widget.widgets["network/wired-indicator"]/<.connections<@/home/aefka/.config/ags/modules/network.js:39:48
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_sync@resource:///com/github/Aylur/ags/js/service/network.js:131:14
_clientReady@resource:///com/github/Aylur/ags/js/service/network.js:115:14
NetworkService/<@resource:///com/github/Aylur/ags/js/service/network.js:91:22
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
(ags:1559): Gjs-CRITICAL **: 14:59:45.150: JS ERROR: TypeError: device is undefined
_INTERNET@resource:///com/github/Aylur/ags/js/service/network.js:5:13
get internet@resource:///com/github/Aylur/ags/js/service/network.js:77:29
Widget.widgets["network/wired-indicator"]/<.connections</<@/home/aefka/.config/ags/modules/network.js:43:37
Dynamic/box.update@resource:///com/github/Aylur/ags/js/widgets.js:214:26
Widget.widgets["network/wired-indicator"]/<.connections<@/home/aefka/.config/ags/modules/network.js:39:48
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_sync@resource:///com/github/Aylur/ags/js/service/network.js:131:14
_activeAp/this._apBind<@resource:///com/github/Aylur/ags/js/service/network.js:44:72
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
(ags:1559): Gjs-CRITICAL **: 14:59:45.151: JS ERROR: TypeError: device is undefined
_INTERNET@resource:///com/github/Aylur/ags/js/service/network.js:5:13
get internet@resource:///com/github/Aylur/ags/js/service/network.js:77:29
Widget.widgets["network/wired-indicator"]/<.connections</<@/home/aefka/.config/ags/modules/network.js:43:37
Dynamic/box.update@resource:///com/github/Aylur/ags/js/widgets.js:214:26
Widget.widgets["network/wired-indicator"]/<.connections<@/home/aefka/.config/ags/modules/network.js:39:48
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_sync@resource:///com/github/Aylur/ags/js/service/network.js:131:14
_activeAp/this._apBind<@resource:///com/github/Aylur/ags/js/service/network.js:44:72
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
...
Also, I don't know if something went wrong with Aylur's dotfiles, or I'm missing some installs, but some icons seems to be bugged, as well as not being able to apply the themes, and his extension (Aylur's Widgets) is "Not compatible" apparently ? Here is what it ressembles now:
I've implemented a nightlight (using wlsunset) toggle in the quick settings.
On/Off toggling is working fine.
I have 2 problems with my implementation:
What is expected behavior:
The icon is representing exact state of night-light and by clicking of the toggle I can choose to either enable/disable the night-light effect on the screen - hard switch.
This is my nightlight.js file:
https://github.com/cafetestrest/dotfiles/blob/develop/.config/ags/modules/nightlight.js
PS: Is there a right-click command of the icon?
already added the input but when i try adding it to my home. nix via inputs.ags.packages.${system}.ags
i get that ags is not an input.
When the wifi menu is opened it doesn't show the available wifi networks and outputs:
(ags:78839): Gjs-CRITICAL **: 14:55:49.131: JS ERROR: TypeError: ap.ssid is null
get accessPoints/<@resource:///com/github/Aylur/ags/js/service/network.js:68:13
get accessPoints@resource:///com/github/Aylur/ags/js/service/network.js:64:49
Widget.widgets["network/wifi-selection"]/<.connections<@/home/incognitux/.config/ags/modules/network.js:115:9
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_sync@resource:///com/github/Aylur/ags/js/service/network.js:150:14
Wifi/<@resource:///com/github/Aylur/ags/js/service/network.js:43:51
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
If this is a problem on my side how would I go about fixing it?
Hi @Aylur ,
Given the following config:
import {
Window
} from 'resource:///com/github/Aylur/ags/widget.js';
const InfoPopup = () => Window({
name: 'InfoPopup',
style: 'background-color: red',
visible: false,
})
export default {
windows: [
InfoPopup(),
],
};
if I run ags --toggle-window 'InfoPopup'
, the window is shown after the command run the third time only and not the first. If the window has visible: true
property, the command works obviously the second time, but it means the window should be shown immediately at the start of ags
, no?
This is a reduced example, the goal is to bind onClicked: () => App.toggleWindow('InfoPopup')
to a button.
Thank you in advance
This happens if we use launch()
of the app from the Applications
service
I updated Hyprland, and AGS last night, it seems that for some reason AGS no longer renders the windows on screen anymore.
There are no errors on ags side when running ags
just a couple of warnings, but no windows render sadly.
Any idea on how to even debug this?
Installation using ubuntu is not working:
user@pop-os:~/ags$ gjs --version
gjs 1.72.2
user@pop-os:~/ags$ meson setup build
The Meson build system
Version: 1.1.1
Source dir: /home/user/ags
Build dir: /home/user/ags/build
Build type: native build
Project name: ags
Project version: 0.1.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency gobject-introspection-1.0 found: YES 1.72.0
Run-time dependency gio-2.0 found: YES 2.72.4
Found CMake: /usr/bin/cmake (3.22.1)
Run-time dependency gjs-1.0 found: NO (tried pkgconfig and cmake)
meson.build:12:0: ERROR: Dependency "gjs-1.0" not found, tried pkgconfig and cmake
A full log can be found at /home/user/ags/build/meson-logs/meson-log.txt
Clicking out of a popup window should close it. The eww way of doing this is to create an invisible button the size of the screen and close the popup when this button is pressed but I would prefer having it automatically by ags.
I want to use it on Nixos, what should I do?
All windows have to be defined inside the windows array of the default export of config.js, and we can't register new windows at runtime (I think). I would like to automatically create new bars for newly plugged in monitors so to do that ags should either:
When I use ags with nix as a flake i get the warning:
** (ags:296756): WARNING **: 11:46:12.888: Failed to load shared library '/nix/store/xcskqs03w7nbpl7mb22prk27xq74n3jb-ags-1.0.0/lib/libgvc.so' referenced by the typelib: /nix/store/xcskqs03w7nbpl7mb22prk27xq74n3jb-ags-1.0.0/lib/libgvc.so: cannot open shared object file: No such file or directory
I checked the given path, and i found that the library is under /nix/store/xcskqs03w7nbpl7mb22prk27xq74n3jb-ags-1.0.0/lib/ags/libgvc.so
which leads to the error.
So this leads me to believe the lib-patch
is the cause of the error.
Trying to build this on Arch, and after meson install -C build, i get error TS2307 Cannot find modules error
if a monitor is turned off ags currently has to be killed and re-started, it would be great if it could re-launch any windows for that monitor.
i like the look would love to see a application or start menu. but can i use your project with labwc current labwc for example doesn't support multiple desktops aka workspaces? help info pointers or alternative config and need files would be a huge help.
i have kanashi for my wallpaper manager it uses waybg to load the wallpaper as a backend. mako for events and libindecator for tray support for different wayland bar and panles use it. wire plumber and pipewire is my sound network manager is for network and bauh if my gui application manager. i want to switch to eww instead of waybar and rofi. please help?
Currently the run-js parameter does not output anything. It would be a great addition to change that. Then it would be possible to access some internal ags services and variables from external scripts, which could be quite useful.
version: latest from git
distro: arch
I made an eventbox with OnScrollUp and OnScrollDown options, they work when I use mouse scrolling, but when I try to use touchpad they don't work.
Will there be support for a system tray
This might sound very silly and I guess understandably so but is there any possibility that the project might go under a different name? ags makes it difficult to find it and really just doesn't give any idea what it is about upfront, plus it conflicts with another project that is apparently meant to be a game engine
One complaint I have about the way ags seems to work the paths is that if its relative, its sourced from wherever ags was run. Now in my setup I run it through a shell executable with the PWD in $HOME, but I'd like to make my dotfiles flexible to all workloads, but I can't develop anything like that because of the way style works.
Using style: "~/.config/ags/style.css"
causes ags to try and find the config in $PWD/~/.config/ags/style.css
. I have to use explicit pathing, but that breaks if I use a different user, since $HOME
won't work there.
One solution would be to make pathing relative to the config, which iirc is also how eww works (if we want to bring up parity with the inspiration project). Another would be to allow ~
, $HOME
, or just .config/ags/style.css
as values that can just work as is. There's probably more solutions, and I'm open to any fix, I'd just like some clarity on this choice of path resolving.
First of all, this is looking like an amazing project. You clearly are putting in loads of work, so thanks! it looks very promising!
I'd love to test it out, but i'm currently running on silverblue (universal blue), so build it from source isn't any easy option.
Any chance of setting up a copr repo to make to easier for people to install and test it?
Hi, I'd like to know the reasoning on using GTK3 instead of GTK4.
Some things are easier with GTK4, just wanted to understand :)
Given that it seems the goal of ags (+ your dot files) is pretty close to making a full desktop environment, would it make sense to allow the option to have the config files inside /etc/ ?
How would I got about spawning the example bar for each monitor? Cannot figure how I would do that.
I know how to spawn more of the bars. Right now it launches on the monitor that I am on when launching ags. Do I need to like add some padding or something?
Hi, I just recently switched to ags and it's been amazing so far. Just found a small issue with the Mpris module not showing album art when the album art is rectangle and wanted to let you know
Hey @dongsu8142
I want to migrate to Gtk4, but gtk4-layer-shell
is not packaged on nixpkgs. Is a flake still possible?
I could make everything work on Fedora by placing the .typelib and .so file in the correct path. On Arch gtk4-layer-shell
is packaged on the AUR, and It works without tweaking. I have no idea how this works on Nix though
On your ags
how you choose gtk that have two bluetooth different version?
As from your eww
, we can choose which gtk version to be use on the file myshell
.
myshell
imports.gi.versions.Gtk = '3.0'
imports.gi.versions.Gio = '2.0'
imports.gi.versions.GLib = '2.0'
imports.gi.versions.GObject = '2.0'
imports.gi.versions.UPowerGlib = '1.0'
imports.gi.versions.GnomeBluetooth = '3.0'
imports.gi.versions.NM = '1.0'
imports.gi.versions.GdkPixbuf = '2.0'
Hi, i was trying to install ags on archlinux and i ran into these issues
src/meson.build:2:6: ERROR: Program 'tsc' not found or not executable
and
Unknown command: meson
I fixed these issues by installing the "meson" and the "typescript" package.
sudo pacman -S meson typescript
Why? Window takes a monitor property and uses a number
to determine which monitor id should be used. It breaks the logical following for Hyprland.monitors to not be mapped via numbers, because it makes it harder to try and perform any kinds of connections
or setup
based on a specific monitor.
Example: I want to position my bar 1% from the top and left-right. Because I can't do this via GTK css nor (from what I can find) with ags as is, I need to use Hyprland.monitors["MONITOR"].width/.height
to access the properties needed for calculation, then dynamically rewrite the Window.margin
property. However, because I can only access the monitors with a "name", I now need to manually loop through to find id == 0
, then get its width/height props. It's just strange, please make one or the other, preferrably numbers because thats more portable across systems (laptops have eDP-1, pcs have HDMI-A-1, and who knows what else, but numbers are consistent).
EDIT:
Scratch that I can't even access window.margin from a setup
call haha, are there ways to accomplish what im trying to do here?
If I restart ags after my system has been up for over 12 hours or so I get this error from the mpris service:
The mpris service at this point also no longer works no matter the restarting of players etc I do I have to reboot to get it working again.
Playerctl is still working as normal as are anything else I have that interacts with mpris.
I'm guessing if I used them any other service that does ListNamesRemote would also start failing.
At a loss here as I can't see anything wrong in ags and everything else on my system using dbus seems to be working fine.
onClick
runs when the mouse button is released, not pressedonClick
for mouse press and onClickRelease
for release?When accessing via the setter, replace all classes.
Why: It feels more logical since a setter is meant to "set" a value, not just "append" it. As it is currently, doing widget.className
in, say a setup call will simply add a class to the classNames, not replace them.
Main reason I'm bringing this up is that I'm trying to write dark/light themes for my config. My thought process was that I could have two classes, dark
and light
, define colors for each of them based on other, parent classes .modules.dark
, .modules.light
, and wrote a Service to change the classes when it emits "changed". Unfortunately, doing widget.className = Theme.theme
does not replace the classes, it seems to append to it, which is a problem since then I can't really use this method without going deep into the GTK/GJS code and modifying it through a StyleContext instead.
If this isn't possible what would you suggest as an alternative to what I'm trying to do.
how do i update ags without cloning the repo again
I am on the latest build and I seem to be having a few issues:
(ags:90262): Gjs-CRITICAL **: 15:13:03.651: JS ERROR: TypeError: ags.Service.Audio.speaker is undefined
anonymous@resource:///com/github/Aylur/ags/js/app.js line 114 > Function:3:1
_exportActions/<@resource:///com/github/Aylur/ags/js/app.js:115:13
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
(ags:90262): Gjs-CRITICAL **: 15:13:50.664: JS ERROR: TypeError: search.toLowerCase is not a function
_match@resource:///com/github/Aylur/ags/js/service/apps.js:16:48
_search@resource:///com/github/Aylur/ags/js/service/apps.js:20:12
query/<@resource:///com/github/Aylur/ags/js/service/apps.js:39:48
query@resource:///com/github/Aylur/ags/js/service/apps.js:39:27
query@resource:///com/github/Aylur/ags/js/service/apps.js:61:38
onChange@/home/incognitux/.config/ags/modules/applauncher.js:128:26
Entry/<@resource:///com/github/Aylur/ags/js/widgets.js:277:19
Widget.widgets.applauncher/<.connections<@/home/incognitux/.config/ags/modules/applauncher.js:143:19
connect/bind<@resource:///com/github/Aylur/ags/js/utils.js:78:66
_load/</<@resource:///com/github/Aylur/ags/js/app.js:94:53
closeWindow@resource:///com/github/Aylur/ags/js/app.js:40:15
Window/<@resource:///com/github/Aylur/ags/js/window.js:74:43
main@resource:////com/github/Aylur/ags/js/main.js:45:26
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
Below error appear
[15/18] Generating src/typescript-compile with a custom command
FAILED: src/tsc-output
/usr/bin/tsc --outDir /home/thyeun/Public/ags/build/tsc-out
../src/app.ts(1,17): error TS2307: Cannot find module 'gi://Gtk?version=3.0' or its corresponding type declarations.
../src/app.ts(2,17): error TS2307: Cannot find module 'gi://Gdk?version=3.0' or its corresponding type declarations.
../src/app.ts(45,26): error TS2339: Property 'emit' does not exist on type 'App'.
../src/app.ts(65,22): error TS2576: Property 'quit' does not exist on type 'App'. Did you mean to access the static member 'App.quit' instead?
../src/app.ts(88,17): error TS2345: Argument of type 'this' is not assignable to parameter of type 'Object'.
Type 'App' is missing the following properties from type 'Object': g_type_instance, bind_property, bind_property_full, force_floating, and 30 more.
../src/app.ts(102,14): error TS2339: Property 'hold' does not exist on type 'App'.
../src/app.ts(126,53): error TS2339: Property 'emit' does not exist on type 'App'.
../src/app.ts(136,14): error TS2339: Property 'emit' does not exist on type 'App'.
../src/app.ts(148,14): error TS2551: Property 'add_action' does not exist on type 'App'. Did you mean '_addAction'?
../src/dbus/dbus.ts(26,26): error TS2352: Conversion of type '(bus: DBusConnection, name: string, object: string, asyncCallback?: ((initable: DBusProxy | null, error: unknown) => void) | undefined, cancellable?: Cancellable | null | undefined, flags?: DBusProxyFlags | undefined) => DBusProxy' to type 'TDBusProxy' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
../src/dbus/mpris.ts(87,33): error TS2352: Conversion of type '(bus: DBusConnection, name: string, object: string, asyncCallback?: ((initable: DBusProxy | null, error: unknown) => void) | undefined, cancellable?: Cancellable | null | undefined, flags?: DBusProxyFlags | undefined) => DBusProxy' to type 'TPlayerProxy' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
../src/dbus/mpris.ts(88,27): error TS2352: Conversion of type '(bus: DBusConnection, name: string, object: string, asyncCallback?: ((initable: DBusProxy | null, error: unknown) => void) | undefined, cancellable?: Cancellable | null | undefined, flags?: DBusProxyFlags | undefined) => DBusProxy' to type 'TMprisProxy' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
../src/main.ts(52,26): error TS2339: Property 'run' does not exist on type 'App'.
../src/service/apps.ts(46,5): error TS2322: Type 'string | null' is not assignable to type 'string'.
Type 'null' is not assignable to type 'string'.
../src/service/battery.ts(34,23): error TS7009: 'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.
../src/service/mpris.ts(97,63): error TS2551: Property 'deep_unpack' does not exist on type 'Variant'. Did you mean 'deepUnpack'?
../src/service/notifications.ts(2,23): error TS2307: Cannot find module 'gi://GdkPixbuf' or its corresponding type declarations.
../src/service/notifications.ts(14,20): error TS2315: Type 'Variant' is not generic.
../src/service/notifications.ts(15,23): error TS2315: Type 'Variant' is not generic.
../src/service/notifications.ts(16,17): error TS2315: Type 'Variant' is not generic.
../src/service/notifications.ts(138,67): error TS2339: Property 'new' does not exist on type 'typeof Variant'.
../src/service/notifications.ts(149,62): error TS2339: Property 'new' does not exist on type 'typeof Variant'.
../src/service/notifications.ts(210,44): error TS2315: Type 'Variant' is not generic.
../src/service/service.ts(2,17): error TS2307: Cannot find module 'gi://Gtk?version=3.0' or its corresponding type declarations.
../src/utils.ts(1,17): error TS2307: Cannot find module 'gi://Gtk?version=3.0' or its corresponding type declarations.
../src/utils.ts(244,35): error TS2345: Argument of type 'string | null' is not assignable to parameter of type 'string'.
Type 'null' is not assignable to type 'string'.
../src/utils.ts(249,32): error TS2345: Argument of type 'string | null' is not assignable to parameter of type 'string'.
Type 'null' is not assignable to type 'string'.
../src/widget.ts(1,17): error TS2307: Cannot find module 'gi://Gtk?version=3.0' or its corresponding type declarations.
../src/window.ts(1,17): error TS2307: Cannot find module 'gi://Gtk?version=3.0' or its corresponding type declarations.
../src/window.ts(2,17): error TS2307: Cannot find module 'gi://Gdk?version=3.0' or its corresponding type declarations.
../src/window.ts(126,41): error TS7006: Parameter '_' implicitly has an 'any' type.
../src/window.ts(126,44): error TS7006: Parameter 'event' implicitly has an 'any' type.
[16/18] Generating subprojects/gvc/...mmand (wrapped by meson to set env)
ninja: build stopped: subcommand failed.
Could not rebuild /home/thyeun/Public/ags/build
Hi, I'm trying to set min value of brightness slider to 10% so my screen didn't get black.
I try:
export const BrightnessSlider = (props) =>
Slider({
...props,
drawValue: false,
hexpand: true,
min: 0.1,
But when I slide it still go till 0.
Am I doing something wrong?
When i try to run this app it will spit some logs like this:
(ags:38597): Gjs-WARNING **: 19:14:04.354: JS ERROR: ImportError: No JS module 'config' found in search path
getConfig@resource:///com/github/Aylur/ags/js/utils.js:114:9
_load@resource:///com/github/Aylur/ags/js/app.js:99:24
vfunc_activate@resource:///com/github/Aylur/ags/js/app.js:91:14
_init/GLib.MainLoop.prototype.runAsync/</<@resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266:34
(ags:38597): Gjs-WARNING **: 19:14:04.354: JS ERROR: ImportError: No JS module 'config' found in search path
getConfig@resource:///com/github/Aylur/ags/js/utils.js:114:9
error@resource:///com/github/Aylur/ags/js/utils.js:11:5
_load@resource:///com/github/Aylur/ags/js/app.js:101:18
vfunc_activate@resource:///com/github/Aylur/ags/js/app.js:91:14
_init/GLib.MainLoop.prototype.runAsync/</<@resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266:34
Gjs-Message: 19:14:04.354: JS LOG: ERROR: No config was provided or there was an error
(ags:38597): Gjs-WARNING **: 19:14:04.354: JS ERROR: ImportError: No JS module 'config' found in search path
getConfig@resource:///com/github/Aylur/ags/js/utils.js:114:9
error@resource:///com/github/Aylur/ags/js/utils.js:14:9
_load@resource:///com/github/Aylur/ags/js/app.js:101:18
vfunc_activate@resource:///com/github/Aylur/ags/js/app.js:91:14
_init/GLib.MainLoop.prototype.runAsync/</<@resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266:34
** (ags:38597): WARNING **: 19:14:04.371: AT-SPI: Could not obtain desktop path or name
** (ags:38597): WARNING **: 19:14:04.388: AT-SPI: Could not obtain desktop path or name
** (ags:38597): WARNING **: 19:14:04.389: atk-bridge: get_device_events_reply: unknown signature
** (ags:38597): WARNING **: 19:14:04.389: atk-bridge: GetRegisteredEvents returned message with unknown signature
** (ags:38597): WARNING **: 19:14:04.403: AT-SPI: Could not obtain desktop path or name
** (ags:38597): WARNING **: 19:14:04.404: atk-bridge: get_device_events_reply: unknown signature
** (ags:38597): WARNING **: 19:14:04.404: atk-bridge: GetRegisteredEvents returned message with unknown signature
** (ags:38597): WARNING **: 19:14:04.420: AT-SPI: Could not obtain desktop path or name
** (ags:38597): WARNING **: 19:14:04.420: atk-bridge: get_device_events_reply: unknown signature
** (ags:38597): WARNING **: 19:14:04.420: atk-bridge: GetRegisteredEvents returned message with unknown signature
I don't know the problem since i'm still kinda new to linux. Could you help me?
For me, the window addresses are hexadecimal strings, not integers. So when urgent-window
is fired, the window ID is always 0.
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.