Window client title now updates appropriately. (#741)
* Window client title now updates appropriately. * Update src/components/bar/modules/window_title/helpers/title.ts
This commit is contained in:
@@ -1,6 +1,28 @@
|
||||
import options from 'src/options';
|
||||
import { capitalizeFirstLetter } from 'src/lib/utils';
|
||||
import AstalHyprland from 'gi://AstalHyprland?version=0.1';
|
||||
import { hyprlandService } from 'src/lib/constants/services';
|
||||
import { bind, Variable } from 'astal';
|
||||
|
||||
export const clientTitle = Variable('');
|
||||
let clientBinding: Variable<void> | undefined;
|
||||
|
||||
function trackClientUpdates(client: AstalHyprland.Client): void {
|
||||
clientBinding?.drop();
|
||||
clientBinding = undefined;
|
||||
|
||||
if (!client) {
|
||||
return;
|
||||
}
|
||||
|
||||
clientBinding = Variable.derive([bind(client, 'title')], (currentTitle) => {
|
||||
clientTitle.set(currentTitle);
|
||||
});
|
||||
}
|
||||
|
||||
Variable.derive([bind(hyprlandService, 'focusedClient')], (client) => {
|
||||
trackClientUpdates(client);
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieves the matching window title details for a given window.
|
||||
|
||||
@@ -5,7 +5,7 @@ import { hyprlandService } from 'src/lib/constants/services';
|
||||
import AstalHyprland from 'gi://AstalHyprland?version=0.1';
|
||||
import { onMiddleClick, onPrimaryClick, onScroll, onSecondaryClick } from 'src/lib/shared/eventHandlers';
|
||||
import { bind, Variable } from 'astal';
|
||||
import { getTitle, getWindowMatch, truncateTitle } from './helpers/title';
|
||||
import { clientTitle, getTitle, getWindowMatch, truncateTitle } from './helpers/title';
|
||||
import { Astal } from 'astal/gtk3';
|
||||
|
||||
const { leftClick, rightClick, middleClick, scrollDown, scrollUp } = options.bar.windowtitle;
|
||||
@@ -55,6 +55,7 @@ const ClientTitle = (): BarBoxChild => {
|
||||
bind(icon),
|
||||
bind(truncation),
|
||||
bind(truncation_size),
|
||||
bind(clientTitle),
|
||||
],
|
||||
(
|
||||
client: AstalHyprland.Client,
|
||||
|
||||
Reference in New Issue
Block a user