Compare commits
10 commits
2c0652882f
...
40edf315ea
| Author | SHA1 | Date | |
|---|---|---|---|
| 40edf315ea | |||
|
|
cd5375bc6e | ||
|
|
ce4f3320d5 | ||
|
|
d35198c56d | ||
|
|
02baf04eaa | ||
|
|
013f9c2090 | ||
|
|
36368d94d2 | ||
|
|
ff1cc22515 | ||
|
|
4b7d6f6a1c | ||
|
|
bd704f3d08 |
14 changed files with 260 additions and 86 deletions
2
.gear/rules
Normal file
2
.gear/rules
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
tar: v@version@:.
|
||||||
|
diff: v@version@:. . exclude=.gear exclude=*.spec
|
||||||
1
.gear/tags/list
Normal file
1
.gear/tags/list
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
02baf04eaa3a5fd546fdf9e507ea515bad973cc3 v0.7.9
|
||||||
3
.gear/upstream/remotes
Normal file
3
.gear/upstream/remotes
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[remote "upstream"]
|
||||||
|
url = https://github.com/trigg/Discover.git
|
||||||
|
fetch = +refs/heads/*:refs/remotes/upstream/*
|
||||||
29
README.md
29
README.md
|
|
@ -27,7 +27,11 @@ This will close out any already running discover overlay for this user
|
||||||
#### Close the overlay
|
#### Close the overlay
|
||||||
`discover-overlay --close` or `discover-overlay -x`
|
`discover-overlay --close` or `discover-overlay -x`
|
||||||
|
|
||||||
This closes the process running the overlay, hence any `--rpc` commands sent afterwards will do nothing
|
This closes the process running the overlay. Any control commands sent afterwards will do nothing
|
||||||
|
|
||||||
|
#### Show version
|
||||||
|
|
||||||
|
`discover-overlay --version` or `discover-overlay --V`
|
||||||
|
|
||||||
#### Open configuration window
|
#### Open configuration window
|
||||||
`discover-overlay --configure` or `discover-overlay -c`
|
`discover-overlay --configure` or `discover-overlay -c`
|
||||||
|
|
@ -38,40 +42,43 @@ This closes the process running the overlay, hence any `--rpc` commands sent aft
|
||||||
This will redirect all debug to the file `~/.config/discover-overlay/output.txt`
|
This will redirect all debug to the file `~/.config/discover-overlay/output.txt`
|
||||||
|
|
||||||
#### Hide the currently shown overlays
|
#### Hide the currently shown overlays
|
||||||
`discover-overlay --rpc --hide`
|
`discover-overlay --hide`
|
||||||
|
|
||||||
This will not stop the process running the overlay. This means the `--rpc` commands sent afterwards continue working as expected, and the `--show` is much quicker than starting the overlay from the start.
|
This will not stop the process running the overlay. This means the control commands sent afterwards continue working as expected, and the `--show` is much quicker than starting the overlay from the start.
|
||||||
|
|
||||||
#### Show the overlays
|
#### Show the overlays
|
||||||
`discover-overlay --rpc --show`
|
`discover-overlay --show`
|
||||||
|
|
||||||
Note that if the process running the overlay has stopped or crashed then this will do nothing
|
Note that if the process running the overlay has stopped or crashed then this will do nothing
|
||||||
|
|
||||||
#### Mute yourself in voice chat
|
#### Mute yourself in voice chat
|
||||||
`discover-overlay --rpc --mute`
|
`discover-overlay --mute`
|
||||||
|
|
||||||
#### Unmute yourself in voice chat
|
#### Unmute yourself in voice chat
|
||||||
`discover-overlay --rpc --unmute`
|
`discover-overlay --unmute`
|
||||||
|
|
||||||
#### Deafen yourself in voice chat
|
#### Deafen yourself in voice chat
|
||||||
`discover-overlay --rpc --deaf`
|
`discover-overlay --deaf`
|
||||||
|
|
||||||
#### Undeafen yourself in voice chat
|
#### Undeafen yourself in voice chat
|
||||||
`discover-overlay --rpc --undeaf`
|
`discover-overlay --undeaf`
|
||||||
|
|
||||||
|
### Attempt to leave the current voice channel
|
||||||
|
|
||||||
|
`discover-overlay --leave` or `discover-overlay -l`
|
||||||
#### Attempt to join voice channel by room ID
|
#### Attempt to join voice channel by room ID
|
||||||
`discover-overlay --rpc --moveto=X`
|
`discover-overlay --moveto=X`
|
||||||
|
|
||||||
Using a Room ID from Discord to replace `X`, this will attempt to join the voice channel.
|
Using a Room ID from Discord to replace `X`, this will attempt to join the voice channel.
|
||||||
|
|
||||||
#### Populate the channel RPC file with a list of guilds
|
#### Populate the channel RPC file with a list of guilds
|
||||||
`discover-overlay --rpc --refresh-guilds`
|
`discover-overlay --refresh-guilds`
|
||||||
Requests a list of guilds. Once collected, it will write them to
|
Requests a list of guilds. Once collected, it will write them to
|
||||||
`~/.config/discover-overlay/channels.rpc`
|
`~/.config/discover-overlay/channels.rpc`
|
||||||
as a JSON object
|
as a JSON object
|
||||||
|
|
||||||
#### Populate the channel RPC file with a list of channels from a guild
|
#### Populate the channel RPC file with a list of channels from a guild
|
||||||
`discover-overlay --rpc --guild-request=X`
|
`discover-overlay --guild-request=X`
|
||||||
Using a Server ID from Discord to replace `X`, this will request a list of channels (text & voice) from the given guild. Once collected, it will write them to
|
Using a Server ID from Discord to replace `X`, this will request a list of channels (text & voice) from the given guild. Once collected, it will write them to
|
||||||
`~/.config/discover-overlay/channels.rpc`
|
`~/.config/discover-overlay/channels.rpc`
|
||||||
as a JSON object.
|
as a JSON object.
|
||||||
|
|
|
||||||
68
discover-overlay.spec
Normal file
68
discover-overlay.spec
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
%define pypi_name discover_overlay
|
||||||
|
|
||||||
|
Name: discover-overlay
|
||||||
|
Version: 0.7.9
|
||||||
|
Release: alt1
|
||||||
|
Summary: Yet another Discord overlay for Linux written in Python using GTK3
|
||||||
|
License: GPL-3.0-only
|
||||||
|
Group: Networking/Other
|
||||||
|
URL: https://github.com/trigg/Discover
|
||||||
|
VCS: https://github.com/trigg/Discover
|
||||||
|
Source: %name-%version.tar
|
||||||
|
BuildRequires: rpm-build-python3
|
||||||
|
BuildRequires: python3-module-pygobject3
|
||||||
|
BuildRequires: python3-module-websocket-client
|
||||||
|
BuildRequires: python3-module-pyxdg
|
||||||
|
BuildRequires: python3-module-requests
|
||||||
|
BuildRequires: python3-module-pillow
|
||||||
|
BuildRequires: python3-module-xlib
|
||||||
|
BuildRequires: python3-module-setuptools
|
||||||
|
BuildRequires: python3-module-pulsectl-asyncio
|
||||||
|
BuildRequires: bash
|
||||||
|
|
||||||
|
%description
|
||||||
|
Discover-Overlay is a GTK3 overlay written in Python3.
|
||||||
|
It can be configured to show who is currently talking on discord or
|
||||||
|
it can be set to display text and images from a preconfigured channel.
|
||||||
|
It is fully customisable and can be configured to display anywhere
|
||||||
|
on the screen. We fully support X11 and wlroots based environments.
|
||||||
|
We felt the need to make this project due to the shortcomings in support
|
||||||
|
on Linux by the official discord client.
|
||||||
|
|
||||||
|
%package -n python3-module-%pypi_name
|
||||||
|
Summary: Moonraker - API Web Server for Klipper
|
||||||
|
BuildArch: noarch
|
||||||
|
Group: Development/Python3
|
||||||
|
|
||||||
|
%description -n python3-module-%pypi_name
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup
|
||||||
|
|
||||||
|
%build
|
||||||
|
export PDM_BUILD_SCM_VERSION=%version
|
||||||
|
%pyproject_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%pyproject_install
|
||||||
|
|
||||||
|
%files
|
||||||
|
%_bindir/discover-overlay
|
||||||
|
%_desktopdir/%{pypi_name}*
|
||||||
|
#%_iconsdir/*
|
||||||
|
/usr/share/icons/hicolor/256x256/apps/discover-overlay-default.png
|
||||||
|
/usr/share/icons/hicolor/256x256/apps/discover-overlay-tray.png
|
||||||
|
/usr/share/icons/hicolor/256x256/apps/discover-overlay.png
|
||||||
|
/usr/share/icons/hicolor/scalable/apps/discover-overlay-default.svg
|
||||||
|
/usr/share/icons/hicolor/scalable/apps/discover-overlay-tray.svg
|
||||||
|
/usr/share/icons/hicolor/scalable/apps/discover-overlay.svg
|
||||||
|
|
||||||
|
|
||||||
|
%files -n python3-module-%pypi_name
|
||||||
|
%python3_sitelibdir_noarch/%pypi_name
|
||||||
|
%python3_sitelibdir_noarch/%pypi_name-%version.dist-info
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Feb 20 2026 Tesla Bittgenstein <tesla@altlinux.org> 0.7.9-alt1
|
||||||
|
- Initial build.
|
||||||
61
discover-overlay.spec~
Normal file
61
discover-overlay.spec~
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
%define pypi_name discover_overlay
|
||||||
|
|
||||||
|
Name: discover-overlay
|
||||||
|
Version: 0.7.9
|
||||||
|
Release: alt1
|
||||||
|
Summary: Yet another Discord overlay for Linux written in Python using GTK3
|
||||||
|
License: GPL-3.0-only
|
||||||
|
Group: Networking/Other
|
||||||
|
URL: https://github.com/trigg/Discover
|
||||||
|
VCS: https://github.com/trigg/Discover
|
||||||
|
Source: %name-%version.tar
|
||||||
|
BuildRequires: rpm-build-python3
|
||||||
|
BuildRequires: python3-module-pygobject3
|
||||||
|
BuildRequires: python3-module-websocket-client
|
||||||
|
BuildRequires: python3-module-pyxdg
|
||||||
|
BuildRequires: python3-module-requests
|
||||||
|
BuildRequires: python3-module-pillow
|
||||||
|
BuildRequires: python3-module-xlib
|
||||||
|
BuildRequires: python3-module-setuptools
|
||||||
|
BuildRequires: python3-module-pulsectl-asyncio
|
||||||
|
BuildRequires: bash
|
||||||
|
|
||||||
|
%description
|
||||||
|
Discover-Overlay is a GTK3 overlay written in Python3.
|
||||||
|
It can be configured to show who is currently talking on discord or
|
||||||
|
it can be set to display text and images from a preconfigured channel.
|
||||||
|
It is fully customisable and can be configured to display anywhere
|
||||||
|
on the screen. We fully support X11 and wlroots based environments.
|
||||||
|
We felt the need to make this project due to the shortcomings in support
|
||||||
|
on Linux by the official discord client.
|
||||||
|
|
||||||
|
%package -n python3-module-%pypi_name
|
||||||
|
Summary: Moonraker - API Web Server for Klipper
|
||||||
|
BuildArch: noarch
|
||||||
|
Group: Development/Python3
|
||||||
|
|
||||||
|
%description -n python3-module-%pypi_name
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup
|
||||||
|
|
||||||
|
%build
|
||||||
|
export PDM_BUILD_SCM_VERSION=%version
|
||||||
|
%pyproject_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%pyproject_install
|
||||||
|
|
||||||
|
%files
|
||||||
|
%_bindir/discover-overlay
|
||||||
|
%_desktopdir/%{pypi_name}*
|
||||||
|
#%_iconsdir/*
|
||||||
|
|
||||||
|
%files -n python3-module-%pypi_name
|
||||||
|
%python3_sitelibdir_noarch/%pypi_name
|
||||||
|
%python3_sitelibdir_noarch/%pypi_name-%version.dist-info
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Feb 20 2026 Tesla Bittgenstein <tesla@altlinux.org> 0.7.9-alt1
|
||||||
|
- Initial build.
|
||||||
|
|
@ -61,6 +61,8 @@ class DiscordConnector:
|
||||||
self.text = []
|
self.text = []
|
||||||
self.authed = False
|
self.authed = False
|
||||||
self.last_rate_limit_send = 0
|
self.last_rate_limit_send = 0
|
||||||
|
self.muted = False
|
||||||
|
self.deafened = False
|
||||||
|
|
||||||
self.socket_watch = None
|
self.socket_watch = None
|
||||||
|
|
||||||
|
|
@ -458,6 +460,8 @@ class DiscordConnector:
|
||||||
elif j["cmd"] == "SELECT_VOICE_CHANNEL":
|
elif j["cmd"] == "SELECT_VOICE_CHANNEL":
|
||||||
return
|
return
|
||||||
elif j["cmd"] == "SET_VOICE_SETTINGS":
|
elif j["cmd"] == "SET_VOICE_SETTINGS":
|
||||||
|
self.muted = j['data']['mute']
|
||||||
|
self.deafened = j['data']['deaf']
|
||||||
return
|
return
|
||||||
elif j["cmd"] == "GET_VOICE_SETTINGS":
|
elif j["cmd"] == "GET_VOICE_SETTINGS":
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -97,33 +97,6 @@ class Discover:
|
||||||
"""
|
"""
|
||||||
Read in arg list from command or RPC and act accordingly
|
Read in arg list from command or RPC and act accordingly
|
||||||
"""
|
"""
|
||||||
if "--help" in data or "-h" in data:
|
|
||||||
print(_("Usage") + ": discover-overlay [OPTIONS]... ")
|
|
||||||
print(_("Show an X11 or wlroots overlay with information"))
|
|
||||||
print(_("from Discord client"))
|
|
||||||
print("")
|
|
||||||
print(" -c, --configure ", _("Open configuration window"))
|
|
||||||
print(" -x, --close ",
|
|
||||||
_("Close currently running instance"))
|
|
||||||
print(" -v, --debug ",
|
|
||||||
_("Verbose output for aid in debugging"))
|
|
||||||
print(" -h, --help ", _("This screen"))
|
|
||||||
print(" --hide ", _("Hide overlay"))
|
|
||||||
print(" --show ", _("Show overlay"))
|
|
||||||
print(" --rpc ",
|
|
||||||
_("Send command, not start new instance."))
|
|
||||||
print(" --mute ", _("Set own user to mute"))
|
|
||||||
print(" --unmute ", _("Set unmuted"))
|
|
||||||
print(" --deaf ", _("Set own user to deafened"))
|
|
||||||
print(" --undeaf ", _("Unset user deafened state"))
|
|
||||||
print(" --moveto=XX ",
|
|
||||||
_("Move the user into voice room, by Room ID"))
|
|
||||||
print(" --minimized ",
|
|
||||||
_("If tray icon is enabled, start with only tray icon and no configuration window"))
|
|
||||||
print("")
|
|
||||||
print(_("For gamescope compatibility ensure ENV has 'GDK_BACKEND=x11'"))
|
|
||||||
if normal_close:
|
|
||||||
sys.exit(0)
|
|
||||||
if "--close" in data or "-x" in data:
|
if "--close" in data or "-x" in data:
|
||||||
self.exit()
|
self.exit()
|
||||||
if "--steamos" in data or "-s" in data:
|
if "--steamos" in data or "-s" in data:
|
||||||
|
|
@ -144,9 +117,18 @@ class Discover:
|
||||||
if "--undeaf" in data:
|
if "--undeaf" in data:
|
||||||
if self.connection:
|
if self.connection:
|
||||||
self.connection.set_deaf(False)
|
self.connection.set_deaf(False)
|
||||||
|
if "--toggle-mute" in data:
|
||||||
|
if self.connection:
|
||||||
|
self.connection.set_mute(not self.connection.muted)
|
||||||
|
if "--toggle-deaf" in data:
|
||||||
|
if self.connection:
|
||||||
|
self.connection.set_deaf(not self.connection.deafened)
|
||||||
if "--refresh-guilds" in data:
|
if "--refresh-guilds" in data:
|
||||||
if self.connection:
|
if self.connection:
|
||||||
self.connection.req_guilds()
|
self.connection.req_guilds()
|
||||||
|
if "--leave" in data or "-l" in data:
|
||||||
|
if self.connection:
|
||||||
|
self.connection.change_voice_room(None)
|
||||||
pattern = re.compile("--moveto=([0-9]+)")
|
pattern = re.compile("--moveto=([0-9]+)")
|
||||||
if any((match := pattern.match(x)) for x in data):
|
if any((match := pattern.match(x)) for x in data):
|
||||||
if self.connection:
|
if self.connection:
|
||||||
|
|
@ -479,6 +461,60 @@ class Discover:
|
||||||
if deaf is not None:
|
if deaf is not None:
|
||||||
GLib.idle_add(self.connection.set_deaf, deaf)
|
GLib.idle_add(self.connection.set_deaf, deaf)
|
||||||
|
|
||||||
|
def show_help():
|
||||||
|
print(_("Usage") + ": discover-overlay [OPTIONS]... ")
|
||||||
|
print(_("Show an X11 or wlroots overlay with information"))
|
||||||
|
print(_("from Discord client"))
|
||||||
|
print("")
|
||||||
|
print(" -c, --configure ", _("Open configuration window"))
|
||||||
|
print(" -x, --close ",
|
||||||
|
_("Close currently running instance"))
|
||||||
|
print(" -v, --debug ",
|
||||||
|
_("Verbose output for aid in debugging"))
|
||||||
|
print(" -h, --help ", _("This screen"))
|
||||||
|
print(" -V, --version ", _("Show version information"))
|
||||||
|
print(" --hide ", _("Hide overlay"))
|
||||||
|
print(" --show ", _("Show overlay"))
|
||||||
|
print(" --mute ", _("Set own user to mute"))
|
||||||
|
print(" --unmute ", _("Set unmuted"))
|
||||||
|
print(" --toggle-mute ", _("Toggle muted"))
|
||||||
|
print(" --deaf ", _("Set own user to deafened"))
|
||||||
|
print(" --undeaf ", _("Unset user deafened state"))
|
||||||
|
print(" --toggle-deaf ", _("Toggle deaf"))
|
||||||
|
print(" --moveto=XX ",
|
||||||
|
_("Move the user into voice room, by Room ID"))
|
||||||
|
print(" --leave ", _("Leave the current voice channel"))
|
||||||
|
print(" --minimized ",
|
||||||
|
_("If tray icon is enabled, start with only tray icon and no configuration window"))
|
||||||
|
print("")
|
||||||
|
print(_("For gamescope compatibility ensure ENV has 'GDK_BACKEND=x11'"))
|
||||||
|
|
||||||
|
def show_version():
|
||||||
|
print(pkg_resources.get_distribution('discover_overlay').version)
|
||||||
|
|
||||||
|
def is_a_controller(argv):
|
||||||
|
|
||||||
|
actions = {
|
||||||
|
"-x", "--close",
|
||||||
|
"--hide", "--show",
|
||||||
|
"--mute", "--unmute", "--toggle-mute",
|
||||||
|
"--deaf", "--undeaf", "--toggle-deaf",
|
||||||
|
"-l", "--leave",
|
||||||
|
"--refresh-guilds",
|
||||||
|
}
|
||||||
|
controls = {
|
||||||
|
"--moveto=",
|
||||||
|
"--guild-request=",
|
||||||
|
}
|
||||||
|
for arg in argv:
|
||||||
|
# Match the actions (i.e --mute, --deafen)
|
||||||
|
if arg in actions:
|
||||||
|
return True
|
||||||
|
# Match the controls (i.e --moveto=123456789 and --guild-request=987654321)
|
||||||
|
for control in controls:
|
||||||
|
if arg.startswith(control):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def entrypoint():
|
def entrypoint():
|
||||||
"""
|
"""
|
||||||
|
|
@ -494,6 +530,12 @@ def entrypoint():
|
||||||
"""
|
"""
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
if "--help" in sys.argv or "-h" in sys.argv:
|
||||||
|
show_help()
|
||||||
|
return
|
||||||
|
if "--version" in sys.argv or "-V" in sys.argv:
|
||||||
|
show_version()
|
||||||
|
return
|
||||||
# Find Config directory
|
# Find Config directory
|
||||||
config_dir = os.path.join(xdg_config_home, "discover_overlay")
|
config_dir = os.path.join(xdg_config_home, "discover_overlay")
|
||||||
os.makedirs(config_dir, exist_ok=True)
|
os.makedirs(config_dir, exist_ok=True)
|
||||||
|
|
@ -504,6 +546,17 @@ def entrypoint():
|
||||||
config_file = os.path.join(config_dir, "config.ini")
|
config_file = os.path.join(config_dir, "config.ini")
|
||||||
debug_file = os.path.join(config_dir, "output.txt")
|
debug_file = os.path.join(config_dir, "output.txt")
|
||||||
|
|
||||||
|
if "-c" in sys.argv or "--configure" in sys.argv:
|
||||||
|
_settings = MainSettingsWindow(config_file, rpc_file, channel_file, sys.argv[1:])
|
||||||
|
Gtk.main()
|
||||||
|
return
|
||||||
|
|
||||||
|
if is_a_controller(sys.argv):
|
||||||
|
line = " ".join(arg for arg in sys.argv[1:]).strip()
|
||||||
|
with open(rpc_file, "w", encoding="utf-8") as f:
|
||||||
|
f.write(line)
|
||||||
|
return
|
||||||
|
|
||||||
# Prepare logger
|
# Prepare logger
|
||||||
logging.getLogger().setLevel(logging.INFO)
|
logging.getLogger().setLevel(logging.INFO)
|
||||||
log_format = "%(levelname)s - %(name)s - %(message)s"
|
log_format = "%(levelname)s - %(name)s - %(message)s"
|
||||||
|
|
@ -520,30 +573,14 @@ def entrypoint():
|
||||||
if 'GAMESCOPE_WAYLAND_DISPLAY' in os.environ:
|
if 'GAMESCOPE_WAYLAND_DISPLAY' in os.environ:
|
||||||
os.unsetenv("WAYLAND_DISPLAY")
|
os.unsetenv("WAYLAND_DISPLAY")
|
||||||
|
|
||||||
|
|
||||||
# Catch any errors and log them
|
# Catch any errors and log them
|
||||||
try:
|
try:
|
||||||
if "--rpc" in sys.argv:
|
with open(rpc_file, "w", encoding="utf-8") as tfile:
|
||||||
# Send command to overlay
|
tfile.write("--close")
|
||||||
line = ""
|
# Show the overlay
|
||||||
for arg in sys.argv[1:]:
|
Discover(rpc_file, config_file, channel_file,
|
||||||
line = f"{line} {arg}"
|
debug_file, sys.argv[1:])
|
||||||
with open(rpc_file, "w", encoding="utf-8") as tfile:
|
|
||||||
tfile.write(line)
|
|
||||||
log.warning("Sent RPC command")
|
|
||||||
else:
|
|
||||||
if "-c" in sys.argv or "--configure" in sys.argv:
|
|
||||||
# Show config window
|
|
||||||
_settings = MainSettingsWindow(
|
|
||||||
config_file, rpc_file, channel_file, sys.argv[1:])
|
|
||||||
Gtk.main()
|
|
||||||
else:
|
|
||||||
# Tell any other running overlay to close
|
|
||||||
with open(rpc_file, "w", encoding="utf-8") as tfile:
|
|
||||||
tfile.write("--close")
|
|
||||||
# Show the overlay
|
|
||||||
Discover(rpc_file, config_file, channel_file,
|
|
||||||
debug_file, sys.argv[1:])
|
|
||||||
return
|
|
||||||
|
|
||||||
except Exception as ex: # pylint: disable=broad-except
|
except Exception as ex: # pylint: disable=broad-except
|
||||||
log.error(ex)
|
log.error(ex)
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,10 +1,10 @@
|
||||||
# Noé Lopez <noelopez@free.fr>, 2023, 2024.
|
# Noé Lopez <noelopez@free.fr>, 2023, 2024, 2025.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: discover 0.7.2\n"
|
"Project-Id-Version: discover 0.7.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-05-01 20:54+0200\n"
|
"POT-Creation-Date: 2025-05-01 20:54+0200\n"
|
||||||
"PO-Revision-Date: 2024-04-03 22:46+0200\n"
|
"PO-Revision-Date: 2025-05-01 21:05+0200\n"
|
||||||
"Last-Translator: Noé Lopez <noelopez@free.fr>\n"
|
"Last-Translator: Noé Lopez <noelopez@free.fr>\n"
|
||||||
"Language-Team: Noé Lopez <noelopez@free.fr>\n"
|
"Language-Team: Noé Lopez <noelopez@free.fr>\n"
|
||||||
"Language: fr_FR\n"
|
"Language: fr_FR\n"
|
||||||
|
|
@ -112,19 +112,19 @@ msgid "Discover Overlay Configuration"
|
||||||
msgstr "Configuration de Discover Overlay"
|
msgstr "Configuration de Discover Overlay"
|
||||||
|
|
||||||
msgid "Open Configuration"
|
msgid "Open Configuration"
|
||||||
msgstr ""
|
msgstr "Ouvrir la configuration"
|
||||||
|
|
||||||
msgid "Hide Overlay"
|
msgid "Hide Overlay"
|
||||||
msgstr ""
|
msgstr "Cacher l’overlay"
|
||||||
|
|
||||||
msgid "Quit Overlay"
|
msgid "Quit Overlay"
|
||||||
msgstr ""
|
msgstr "Quitter l’overlay"
|
||||||
|
|
||||||
msgid "Quit Configuration"
|
msgid "Quit Configuration"
|
||||||
msgstr ""
|
msgstr "Quitter la configuration"
|
||||||
|
|
||||||
msgid "Show Overlay"
|
msgid "Show Overlay"
|
||||||
msgstr ""
|
msgstr "Montrer l’overlay"
|
||||||
|
|
||||||
msgid "Place Window"
|
msgid "Place Window"
|
||||||
msgstr "Choisir la position de la fenêtre"
|
msgstr "Choisir la position de la fenêtre"
|
||||||
|
|
@ -193,7 +193,7 @@ msgid "Close overlay"
|
||||||
msgstr "Fermer l’overlay"
|
msgstr "Fermer l’overlay"
|
||||||
|
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr ""
|
msgstr "À propos"
|
||||||
|
|
||||||
msgid "Display Horizontally"
|
msgid "Display Horizontally"
|
||||||
msgstr "Afficher horizontalement"
|
msgstr "Afficher horizontalement"
|
||||||
|
|
|
||||||
|
|
@ -192,10 +192,6 @@ class OverlayWindow(Gtk.Window):
|
||||||
if self.hide_on_mouseover:
|
if self.hide_on_mouseover:
|
||||||
# We've mouse-overed
|
# We've mouse-overed
|
||||||
if self.draw_blank:
|
if self.draw_blank:
|
||||||
self.set_untouchable()
|
|
||||||
context.set_source_rgba(0.0, 0.0, 0.0, 0.0)
|
|
||||||
context.set_operator(cairo.OPERATOR_SOURCE)
|
|
||||||
context.paint()
|
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
(width, height) = self.get_size()
|
(width, height) = self.get_size()
|
||||||
|
|
@ -236,10 +232,6 @@ class OverlayWindow(Gtk.Window):
|
||||||
|
|
||||||
if (self.floating != floating or self.pos_x != pos_x or
|
if (self.floating != floating or self.pos_x != pos_x or
|
||||||
self.pos_y != pos_y or self.width != width or self.height != height):
|
self.pos_y != pos_y or self.width != width or self.height != height):
|
||||||
# Special case for Cinnamon desktop : see https://github.com/trigg/Discover/issues/322
|
|
||||||
if ('XDG_SESSION_DESKTOP' in os.environ and
|
|
||||||
os.environ['XDG_SESSION_DESKTOP'] == 'cinnamon'):
|
|
||||||
floating = True
|
|
||||||
|
|
||||||
self.floating = floating
|
self.floating = floating
|
||||||
self.pos_x = pos_x
|
self.pos_x = pos_x
|
||||||
|
|
@ -487,15 +479,17 @@ class OverlayWindow(Gtk.Window):
|
||||||
"""Callback when mouseover occurs, hides overlay"""
|
"""Callback when mouseover occurs, hides overlay"""
|
||||||
self.draw_blank = True
|
self.draw_blank = True
|
||||||
self.set_needs_redraw()
|
self.set_needs_redraw()
|
||||||
|
self.hide()
|
||||||
|
GLib.timeout_add_seconds(self.timeout_mouse_over, self.mouseout_timed)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def mouseout(self, _a=None, _b=None):
|
def mouseout(self, _a=None, _b=None):
|
||||||
"""Callback when mouseout occurs, sets a timer to show overlay"""
|
"""Callback when mouseout occurs, sets a timer to show overlay"""
|
||||||
GLib.timeout_add_seconds(self.timeout_mouse_over, self.mouseout_timed)
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def mouseout_timed(self, _a=None, _b=None):
|
def mouseout_timed(self, _a=None, _b=None):
|
||||||
"""Callback a short while after mouseout occured, shows overlay"""
|
"""Callback a short while after mouseout occured, shows overlay"""
|
||||||
self.draw_blank = False
|
self.draw_blank = False
|
||||||
|
self.show()
|
||||||
self.set_needs_redraw()
|
self.set_needs_redraw()
|
||||||
return False
|
return False
|
||||||
|
|
|
||||||
|
|
@ -325,11 +325,13 @@ class MainSettingsWindow():
|
||||||
self.channel_ids = []
|
self.channel_ids = []
|
||||||
g.remove_all()
|
g.remove_all()
|
||||||
c.remove_all()
|
c.remove_all()
|
||||||
for guild in data['guild'].values():
|
guilds = sorted(data['guild'].values(), key=lambda x: x['name'].lower())
|
||||||
|
for guild in guilds:
|
||||||
g.append_text(guild['name'])
|
g.append_text(guild['name'])
|
||||||
self.guild_ids.append(guild['id'])
|
self.guild_ids.append(guild['id'])
|
||||||
if guild['id'] == self.current_guild and 'channels' in guild:
|
if guild['id'] == self.current_guild and 'channels' in guild:
|
||||||
for channel in guild['channels']:
|
channels = sorted(guild['channels'], key=lambda x: x['name'].lower())
|
||||||
|
for channel in channels:
|
||||||
c.append_text(channel['name'])
|
c.append_text(channel['name'])
|
||||||
self.channel_ids.append(channel['id'])
|
self.channel_ids.append(channel['id'])
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
|
|
@ -732,9 +734,6 @@ class MainSettingsWindow():
|
||||||
|
|
||||||
self.widget['core_settings_min'].set_sensitive(self.show_sys_tray_icon)
|
self.widget['core_settings_min'].set_sensitive(self.show_sys_tray_icon)
|
||||||
|
|
||||||
if 'XDG_SESSION_DESKTOP' in os.environ and os.environ['XDG_SESSION_DESKTOP'] == 'cinnamon':
|
|
||||||
self.widget['voice_anchor_float'].set_sensitive(False)
|
|
||||||
|
|
||||||
self.widget['core_audio_assist'].set_active(
|
self.widget['core_audio_assist'].set_active(
|
||||||
config.getboolean("general", "audio_assist", fallback=False))
|
config.getboolean("general", "audio_assist", fallback=False))
|
||||||
|
|
||||||
|
|
@ -1000,8 +999,6 @@ class MainSettingsWindow():
|
||||||
|
|
||||||
def update_floating_anchor(self):
|
def update_floating_anchor(self):
|
||||||
floating = self.widget['voice_anchor_float'].get_active() == 0
|
floating = self.widget['voice_anchor_float'].get_active() == 0
|
||||||
if 'XDG_SESSION_DESKTOP' in os.environ and os.environ['XDG_SESSION_DESKTOP'] == 'cinnamon':
|
|
||||||
floating = True
|
|
||||||
|
|
||||||
if floating:
|
if floating:
|
||||||
self.widget['voice_align_1'].hide()
|
self.widget['voice_align_1'].hide()
|
||||||
|
|
|
||||||
|
|
@ -599,7 +599,7 @@ class VoiceOverlayWindow(OverlayWindow):
|
||||||
current_y = 0 + self.vert_edge_padding
|
current_y = 0 + self.vert_edge_padding
|
||||||
offset_y = avatar_size + self.icon_spacing
|
offset_y = avatar_size + self.icon_spacing
|
||||||
if self.align_right: # A lie. Align bottom
|
if self.align_right: # A lie. Align bottom
|
||||||
current_y = self.height - avatar_size - self.vert_edge_padding
|
current_y = (height - avatar_size) - self.vert_edge_padding
|
||||||
offset_y = -(avatar_size + self.icon_spacing)
|
offset_y = -(avatar_size + self.icon_spacing)
|
||||||
rows_to_draw = []
|
rows_to_draw = []
|
||||||
while len(users_to_draw) > 0:
|
while len(users_to_draw) > 0:
|
||||||
|
|
|
||||||
2
setup.py
2
setup.py
|
|
@ -9,7 +9,7 @@ setup(
|
||||||
name='discover-overlay',
|
name='discover-overlay',
|
||||||
author='trigg',
|
author='trigg',
|
||||||
author_email='',
|
author_email='',
|
||||||
version='0.7.8',
|
version='0.7.9',
|
||||||
description='Voice chat overlay',
|
description='Voice chat overlay',
|
||||||
long_description=readme(),
|
long_description=readme(),
|
||||||
long_description_content_type='text/markdown',
|
long_description_content_type='text/markdown',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue