Commit graph

62 commits

Author SHA1 Message Date
Emily 4c0357ff87
sway: fix workspace 10 missing from default config (#4636)
workspace 10 is part of upstream's default config, but was missing in home-manager.

The initial "sway: add module" PR (02d6040003) went through multiple iterations and had workspace 10 included for a brief moment.
Until the author removed it in a force-push commenting

> Have removed the last change which added bound ${modifer}+0 to workspace number 10 as this messed up workspace numbering in sway.

The reason might have been, that sway used to sort the workspaces in the order they appeared in the config.

Attribute sets in nix are sorted, but not "naturally sorted", meaning `bindsym Mod1+0 workspace number 10` comes before `bindsym Mod1+0 workspace number 1`.

It's unclear if that's what really happened. A workaround would have been to use `lib.lists.naturalSort` in `keybindingsStr`.

But I cannot reproduce this anymore in any way.
I assume this has been fixed many years ago by now.

upstream config: 020a572ed6/config.in (L113-L134)
2024-02-10 19:59:52 +01:00
Samuele Facenda 9b378afae7
hyprland: change plugins settings generation
The previous syntax (`plugin:name { ...settings}`) is not working with
more than one plugin. There is no documentation for this, just the
source code [1].

With this update the plugins paths aren't generated together with the
full config (so the "plugin" field is not "important" anymore) and the
plugins settings are generated like the other fields.

[1] 4d403dac32/src/config/ConfigManager.cpp (L1574)
2024-01-21 00:40:55 +01:00
Samuele Facenda 2064348e55
hyprland: do not override existing plugins settings in config
The plugin setting in the Hyprland config is used both for defining
plugin paths and configuring the plugins. This fix removes the
silent override of the plugins settings converting them to the
`plugin:<name> { ...settings }` syntax.
2024-01-19 11:27:00 +01:00
Jared Baur d9c869681d
sway: include cursor environment variables
DBus activated services such as mako use the XCURSOR_THEME and
XCURSOR_SIZE environment variables to decide how to show the cursor,
so without these, the cursor may not match the rest of the desktop
when hovering over (in this example) mako notification surfaces.
2024-01-18 00:30:06 +01:00
Robert Helgesson c8c6a52702
sway: fix failing tests
Due to a recent change in Nixpkgs, the version field is required for
the sway package.
2023-12-20 22:29:00 +01:00
Robin Gloster 0e2e443ff2
hyprland: mark plugin setting as important
The plugins are often necessary for other configurations.
2023-12-14 08:14:24 +01:00
Nara Díaz Viñolas defbb9c585
hyprland: add option sourceFirst
Add the option sourceFirst to the hyprland module. When this option is
enabled source entries will be put near the top of the file, so that
the variables declared in other files can be used by the other
configuration entries.

Add "source" to the list of important prefixes when the former option
is enabled.

Resolves #4729
2023-12-10 11:12:06 +01:00
Mihai Fufezan ed0770e962
hyprland: allow customizing systemd
Allows users to customize which environment variables to import in DBus
and SystemD user environments, and to specify which commands will be run
after the environment activation.
2023-10-06 23:34:47 +02:00
Sefa Eyeoglu e0c70942c0
programs.sway: separate trayOutput values for sway (#4489)
Fixes nix-community/home-manager#4488

The default config for sway generates a bar block with tray_output primary. But wayland (or sway, take your pick?) has no concept of a primary display so this just results in no tray anywhere.

A better default is "*" which puts the tray on every monitor, since sway can do so without issue.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-09-23 20:53:45 +02:00
Mihai Fufezan 76dd6c6619
hyprland: prioritize variables and beziers (#4263)
* hyprland: prioritize variables and beziers

The `settings` key now handles `$variables` and `bezier`s differently,
putting them at the top of the file.
Also, proper indentation has been implemented.

* Update modules/services/window-managers/hyprland.nix

Co-authored-by: Naïm Favier <n@monade.li>

* hyprland: add animations & beziers test

---------

Co-authored-by: Naïm Favier <n@monade.li>
2023-07-22 13:58:46 +02:00
Mihai Fufezan ee5673246d
hyprland: add module
Ported from

  https://github.com/hyprwm/Hyprland/blob/main/nix/hm-module.nix

which was adapted from the sway module.

Co-authored-by: Robert Helgesson <robert@rycee.net>
2023-07-21 00:14:22 +02:00
Sven Friedrich f63b39a67d
i3-sway: multiple outputs (#4223)
multiple outputs can be assigned to a workspace
2023-07-14 21:25:55 +02:00
Sefa Eyeoglu 0144ac418e
sway: add support for XDG autostart using systemd (#3747)
* sway: add support for XDG autostart using systemd

Using the option wayland.windowManager.sway.systemd.xdgAutostart, users
can now choose to start applications present in
$XDG_CONFIG_HOME/autostart when starting their sway session.

This change also renames wayland.windowManager.sway.systemdIntegration
to wayland.windowManager.sway.systemd.enable;

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>

* sway: add Scrumplex to maintainers

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>

---------

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-10 12:10:40 +02:00
Naïm Favier 607d8fad96
i3-sway: quote output names (#4059)
They can contain spaces.
2023-06-04 15:23:23 +02:00
Robert Helgesson eec2272999
tests: various minor cleanups 2023-05-13 00:09:52 +02:00
Naïm Favier 2f6a917ade
i3-sway: fix indentation of bar blocks (#3978)
The `indent` function unindents the first and last line by default, so
the `"bar {"` `"}"` wrapper should go inside the list.
2023-05-11 14:04:29 +02:00
Bernardo Meurer a5a294a622
sway: import NIXOS_OZONE_WL into systemd
Without this, even if you configure a preference for Electron apps to
use Ozone by setting `NIXOS_OZONE_WL=1`, GUI apps launched through
systemd user services use XWayland, since the variable is not set in
their environment.

This fixes that issue by importing it, like we do other variables.
2023-04-23 20:10:16 +02:00
Olmo Kramer 64d1f75a1e
herbstluftwm: fix default tag renaming
The previous implementation tried to rename the tag named "default" to
the first tag in `cfg.tags`. This was a wrong approach because if a
tag with the same name already existed, the renaming failed and the
default tag would continue to exist.

The looking up of the default tag also contained a bug because it
should have used `by-name` in the path.
2023-04-22 16:38:31 +02:00
arcnmx d633afe0d9
i3-sway: config.focus.wrapping deprecates forceWrapping (#3467)
Stop using the legacy syntax described in the i3 documentation:
https://i3wm.org/docs/userguide.html#_focus_wrapping
2023-01-15 19:20:13 +01:00
Martin Weinelt d01e7280ad
i3-sway: Use foot as default terminal on sway (#3490) 2023-01-03 19:26:08 +01:00
Olmo Kramer 47bb9e7569
herbstluftwm: Reset mousebinds on (re)load
Keybinds and rules were already reset, but now also the mousebinds are.
2022-12-19 22:40:24 +01:00
Olmo Kramer 1a0a5f5037
herbstluftwm: Fix error when no tags set
The default value for `xsession.windowManager.herbstluftwm.tags` is an
empty list, but the config file uses `builtins.head` on it, which causes
an error upon evaluation. With this change the tags configuration is
skipped if the list is empty.
2022-12-19 22:40:24 +01:00
polykernel 2464c21ab2
sway: import XDG_SESSION_TYPE in systemd user environment (#3328)
- The `XDG_SESSION_TYPE` environment variable is used by some applications and frameworks to
  detect wayland sessions (i.e qt5/6, electron/chromium). It is set by wlroots since version 0.13.0 [1].

- Propagating `XDG_SESSION_TYPE` to the systemd user environment is necessary when processes launched by
  services (e.g emacs) need to inherit the environment variable.

[1] - 90c8452959
2022-10-31 13:09:06 +01:00
Matthew Toohey d89bdff445
sway, bspwm: add extraConfigEarly (#2847) 2022-08-27 00:09:46 -04:00
Loïc Reynier a3b778e672
spectrwm: add module
PR #3077
2022-07-25 13:42:06 +02:00
oxalica 25a9948361
sway: import dbus env vars and explicitly specify them (#3031)
- Importing all environment variables is considered deprecated for
  `systemdctl import-environment`. The list of variables are picked
  from:
  https://github.com/swaywm/sway/wiki/Systemd-integration#managing-user-applications-with-systemd

  The `XDG_CURRENT_DESKTOP` is said to be required for portals, see:
  https://github.com/nix-community/home-manager/pull/2385#issuecomment-1026454162

- DBus activation environment should also be updated. Otherwise, DBus
  activated programs, without a coresponding systemd service, cannot get a
  correct environment and would fail, eg. `mako`.
2022-07-07 11:03:58 -06:00
Naïm Camille Favier face4094d4
bspwm: add missing rule setting rectangle (#2974)
Also add a `freeformType` so that we don't have to do this in the
future.
2022-07-06 23:36:20 -04:00
Naïm Camille Favier 1de492f6f8
format: update and remove exceptions (#3029)
Switches to nixfmt 0.5.0 and removes exceptions for files without open
PRs.
2022-06-16 14:13:06 +02:00
Robert Helgesson 70c4696619
tests: bump nmt
Also updated golden files to match new store path normalization
output.
2022-03-23 23:57:20 +01:00
Basti 80b4360678
i3/sway: improve i3.nix to handle options as list like in sway, adjusted functions for less new-lines (#2314)
* i3/sway: Improve code to generate config to avoid new-line issues on code/config changes

* Maintainer: Add SebTM as maintainer
2022-03-21 16:52:57 -06:00
Basti 64823066c2
herbstluftwm, mpd: fix bash version in tests (#2816)
* mpd: Fix bash-version in tests

* herbstluftwm: Fix bash-version in tests
2022-03-21 15:41:39 -06:00
Naïm Favier e2a85ac43f
bspwm: add alwaysResetDesktops (#2785)
If set to true, desktops configured in `monitors` will be reset every time
the config is run.

If set to false, desktops will only be configured the first time the config is run.
This is useful if you want to dynamically add desktops and you don't want them
to be destroyed if you re-run `bspwmrc`.
2022-03-17 22:56:56 -04:00
Olmo Kramer 89bdef7994
herbstluftwm: init module 2021-12-31 10:44:08 +01:00
Sumner Evans 42ba7b6304
sway: add 'xwayland disable' to sway config if disabled (#2568)
Closes #2567
2021-12-16 01:56:02 -07:00
polykernel 15ae861e1b
swaynag: add module
Swaynag is a replacement of i3-nag for sway. Swaynag is embedded in
Sway's build process albeit it is not an integral part of Sway,
therefore it has been added under `wayland.windowManager.sway` instead
of `programs`. It can be moved at a later time if necessary.

Two unit tests were added validate the module behavior for an empty
configuration and the example configuration.
2021-11-21 18:37:50 +01:00
Robert Helgesson 0f72441821
bspwm: stub test dependency 2021-10-30 20:36:14 +02:00
Robert Helgesson cb09a968e9
tests: add option test.stubs
This option provides a more convenient way to overlay dummy packages.
It also adds a function `config.lib.test.mkStubPackage` that can,
e.g., be used for `package` options.
2021-09-26 23:26:38 +02:00
Sumner Evans f56a087cbc
sway: add propagate --to-code for modes (#2176)
Propagates the bindkeysToCode setting which adds --to-code to the keybindings in mode configs.

Closes #2174
2021-07-15 07:09:54 -06:00
Sergey Vlasov b42fce7aaa
i3,sway: add bar color options for the focused output (#2135)
Both i3bar and swaybar can use different colors for the bar on the
currently focused monitor output; add color options for this feature.
2021-06-22 20:56:41 -06:00
Naïm Favier dc1b6b8349
bspwm: re-add support for lists as config option values (#2125)
Removed by mistake in e70524c, but ignore_ewmh_fullscreen still needs it.
2021-06-20 00:57:40 -04:00
Naïm Favier e70524cd2b
bspwm: various improvements (#2095)
* bspwm: various improvements

- fixes shell escaping issues and general style issues
- allow reloading the config on-the-fly by exposing bspwmrc to the user

* bspwm: add configuration test
2021-06-19 18:40:17 -04:00
Basti 95da56b783
i3,sway: workspace output assignment (#2003)
(cherry picked from commit ea3ff797c87313e71f2ed2fd2b932a18a4b4400b)
2021-06-02 18:03:20 -06:00
Sebastian Sellmeier 6a471f1b11
i3,sway: add option for default workspace (#2002)
Related to #695
2021-05-16 22:54:53 -06:00
Michal Sojka b2dec35b86
Fix eval errors when i3 or sway null configs are null (#1989) 2021-05-07 15:39:10 -06:00
Sumner Evans 9ffb206050
i3, sway: replace fonts with submodule (#1950)
This applies to both the root-level and the bar configs.

Closes #1937.
2021-05-03 21:54:35 -06:00
Sumner Evans 19ebab97e8
i3, sway: extract border functionality to common function (#1947)
* i3, sway: extract border functionality to common function

Converted the i3 module to use default_border and
default_floating_border and extracted that functionality out to be
shared between the i3 and sway modules.

* i3: add sumnerevans as maintainer
2021-04-28 15:52:31 -04:00
Sumner Evans 5c5d562266
sway: add config.seat
Added seat configuration to sway config. Also improved the way that the
configuration is generated to reduce superfluous whitespace.

Supersedes #1663
2021-04-11 22:11:22 +02:00
Nicolas Berbiche d62bdaf938
sway: fix error with null package and swaybar
When setting `...sway.package = null`, the default bar configuration
would throw an error trying to use the bar from the null package.

Logic is added to use the bar from `pkgs.sway` instead of `cfg.package`
if it is null.

Fixes #1714
2021-01-11 12:26:18 -05:00
Robert Helgesson 7b6ebf2785
Revert "sway: validate configuration at build time"
This reverts commit 99b75f99df. See

  https://github.com/nix-community/home-manager/issues/1613 and
  https://github.com/nix-community/home-manager/pull/1614

for associated discussions.
2020-11-17 18:45:23 +01:00
Nicolas Berbiche 6dc68b1d16
i3: validate configuration at build time
PR #1579
2020-11-16 23:51:59 +01:00