ordenada
Ordenada is a configuration framework based on the Nix package manager that aims to make it easy to build reproducible development environments. It draws inspiration from the RDE project for GNU Guix.
Ordenada's configuration is centered around users and features. Features are blocks of configuration that provide certain functionality for a user, such as setting up your email, adding your GnuPG keys, or configuring your window manager. Normally, you only need to enable them and all the required settings will automatically be configured for you, although there are many available options you can tweak to fit your needs. See the full list of features and options.
NOTE: Ordenada is in current development and its API is subject to change
Installation
You can install Ordenada into your NixOS configuration using Flakes. First, add its flake URL to your list of inputs.
{ inputs = { # ...other inputs ordenada.url = "github:migalmoreno/ordenada"; }; }
Import its list of modules into your configuration.
{ outputs = { nixpkgs, ordenada, ... }: { nixosConfigurations."<hostname>" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # ...other modules ordenada.nixosModules.ordenada ]; }; }; }
Optionally, if you want to make use of Ordenada's utility library, to e.g. create your own features, add the following to your configuration.
nixpkgs.overlays = [ ordenada.overlays.default ];
Usage
In a typical single user setup, you just need to add a global set of features
and add your user to the users
set.
{ config, pkgs, ... }: { ordenada = { users = { bob = { }; }; features = { userInfo = { username = "bob"; }; home.enable = true; gnupg.enable = true; gtk = { enable = true; theme = { name = "adw-gtk3"; package = pkgs.adw-gtk3; }; }; emacs = { enable = true; all-the-icons.enable = true; appearance.enable = true; eglot.enable = true; modus-themes = { enable = true; dark = true; }; }; irc = { enable = true; accounts = { libera = { network = "irc.libera.chat"; nick = "bob"; }; oftc = { network = "irc.oftc.net"; nick = "bob"; }; }; }; mail = { enable = true; accounts = { personal = { primary = true; fqda = "bob@example.com"; extraConfig = { imap = { host = "mail.example.com"; port = 993; }; smtp = { host = "mail.example.com"; port = 465; }; }; }; }; }; sway.enable = true; waybar = { enable; = true; modules = with config.ordenada.features.waybar.defaultModules; [ swayWorkspaces swayWindow pulseaudio battery swayLanguage clock swaync ]; }; }; }; }
In more complex multi-user installations, you can modify the set of user features to match each user's needs. As shown in the example below, you could make user bob
augment the global features with ones specific to him. Alternatively, you could also create an set of user features from scratch and augment certain features as you go, like in the case of the alice
user below.
{ config, ... }: { ordenada = { users = { bob = { features = config.ordenada.features // { emacs.spelling.enable = true; firefox.enable = false; }; }; alice = { features = with config.ordenada.features; { userInfo = { username = "alice"; }; inherit gnupg; home.enable = true; bash.enable = true; emacs = with emacs; { enable = true; dired.enable = true; org-roam.enable = true; inherit modus-themes eglot; }; }; }; }; features = { userInfo = { username = "bob"; }; # ...rest of global features }; }; }
With the above setup, two users bob
and alice
will be configured in the system. bob
will end up with an augmented global features setup while alice
will only have the features home
, bash
, the inherited global gnupg
feature, and emacs
along with its features.
By default, all users inherit the global features. Thus, if you want to write a user features set from scratch (e.g. alice
's example above) you don't need to include the whole global features set again for a new user feature (e.g. the home
, bash
, and emacs
features above). However, if you want to apply the feature default settings to the user feature (i.e. those that are not explicitly set in the global feature) you'll need to explicitly inherit from the global feature, such as the case with the gnupg
feature above.
Extending it
You can use Ordenada's utilities to extend its available features with your own. For instance, the following shows how to create a feature example
.
{ config, lib, pkgs, ... }: with pkgs.lib.ordenada; let cfg = config.ordenada.features.example; in { options = { ordenada.features.example = { enable = lib.mkEnableOption "the example feature"; message = lib.mkOption { type = lib.types.str; description = "The message to show."; default = ""; }; }; }; config = ( lib.mkMerge [ (lib.mkIf cfg.enable { environment.sessionVariables = { EXAMPLE_ENV = 1; }; }) { home-manager = mkHomeConfig config "example" (user: { home.sessionVariables = lib.mkIf (hasFeature "acme" user) { EXAMPLE_HOME_ENV = "EXAMPLE_HOME_ENV_VALUE"; }; programs.emacs = mkElispConfig { name = "ordenada-example"; config = '' ;; < your Elisp configuration > (setq my-elisp-value ${user.features.example.message}) ''; elispPackages = [ ]; summary = "My example Emacs feature"; }; }); } ] ); }
The example
feature above showcases a common feature definition workflow. First, we define a list of options for this feature that we'll be able to access from anywhere in our configuration. Then, we add a system configuration if the feature is enabled. Next, we add a home configuration via the special utility mkHomeConfig
, which allows us to configure home settings for all our Ordenada users. In this example, we set a home environment variable as long as the acme
feature is enabled (checked with the hasFeature
utility). Finally, we add Emacs Lisp configuration through the mkElispConfig
utility which will add a new Emacs configuration package for this feature with interpolated feature options (user.features.example.message
).
Configuration Options
ordenada.features.age.enable
Whether to enable the age feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/age.nix>
ordenada.features.age.package
The age package to use.
Type: package
Default: <derivation age-1.2.0>
Declared by: - <ordenada/modules/age.nix>
ordenada.features.age.identities
The list of age identities.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/age.nix>
ordenada.features.age.recipients
The list of age recipients.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/age.nix>
ordenada.features.android.enable
Whether to enable the Android feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/android.nix>
ordenada.features.bash.enable
Whether to enable the Bash feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/bash.nix>
ordenada.features.bash.package
The bash package to use.
Type: package
Default: pkgs.bashInteractive
Declared by: - <ordenada/modules/bash.nix>
ordenada.features.bluetooth.enable
Whether to enable the Bluetooth feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/bluetooth.nix>
ordenada.features.clojure.enable
Whether to enable the Clojure feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/clojure.nix>
ordenada.features.compile.enable
Whether to enable the compile feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/compile.nix>
ordenada.features.direnv.enable
Whether to enable the Direnv feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/direnv.nix>
ordenada.features.docker.enable
Whether to enable the Docker feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/docker.nix>
ordenada.features.emacs.enable
Whether to enable the Emacs feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs>
ordenada.features.emacs.package
The emacs package to use.
Type: package
Default: pkgs.emacs29-pgtk
Declared by: - <ordenada/modules/emacs>
ordenada.features.emacs.ace-window.enable
Whether to enable Emacs ace-window feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/ace-window.nix>
ordenada.features.emacs.advancedUser
Whether to enable advanced user mode for Emacs features.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs>
ordenada.features.emacs.all-the-icons.enable
Whether to enable the Emacs all-the-icons feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/all-the-icons.nix>
ordenada.features.emacs.apheleia.enable
Whether to enable the Emacs Apheleia feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/programming.nix>
ordenada.features.emacs.appearance.enable
Whether to enable the Emacs appearance feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.appearance.fringes
The width of the window's frame fringes.
Type: signed integer
Default: 8
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.appearance.headerLineAsModeLine
Whether to enable the Emacs header line to be used as the mode line.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.appearance.headerLinePadding
The padding for the Emacs header line.
Type: signed integer
Default: 4
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.appearance.margin
The margin in between Emacs windows.
Type: signed integer
Default: 8
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.appearance.modeLinePadding
The padding for the Emacs mode line.
Type: signed integer
Default: 4
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.appearance.tabBarPadding
The padding for the Emacs tab bar.
Type: signed integer
Default: 4
Declared by: - <ordenada/modules/emacs/appearance.nix>
ordenada.features.emacs.calendar.enable
Whether to enable the Emacs Calendar feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/calendar.nix>
ordenada.features.emacs.calendar.apptKey
Keybinding to launch the Emacs appointment notifications.
Type: string
Default: "A"
Declared by: - <ordenada/modules/emacs/calendar.nix>
ordenada.features.emacs.calendar.calendarKey
Keybinding to launch the Emacs Calendar.
Type: string
Default: "c"
Declared by: - <ordenada/modules/emacs/calendar.nix>
ordenada.features.emacs.calendar.dateStyle
The style for displaying dates in the Emacs calendar and diary.
Type: one of "american", "european", "iso"
Default: "iso"
Declared by: - <ordenada/modules/emacs/calendar.nix>
ordenada.features.emacs.calendar.diaryFile
The name of the file where the Emacs diary is located.
Type: string
Default: "/home/nixos/documents/diary"
Declared by: - <ordenada/modules/emacs/calendar.nix>
ordenada.features.emacs.calendar.weekNumbers
Whether to enable showing week numbers in the Emacs calendar.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/calendar.nix>
ordenada.features.emacs.cider.popReplOnConnect
If true, pop a REPL buffer and focus on it, if "display-only" pop it but don't focus on it, and if false create it but don't display it.
Type: string matching the pattern display-only or boolean
Default: "display-only"
Declared by: - <ordenada/modules/clojure.nix>
ordenada.features.emacs.cider.replInCurrentWindow
Whether to enable showing the REPL in the current window.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/clojure.nix>
ordenada.features.emacs.completion.enable
Whether to enable the Emacs completion feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/completion.nix>
ordenada.features.emacs.consult.enable
Whether to enable the Emacs consult feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/consult.nix>
ordenada.features.emacs.consult.initialNarrowing
Whether to enable the initial narrowing of mini-buffer items.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/consult.nix>
ordenada.features.emacs.corfu.enable
Whether to enable the Emacs Corfu feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/corfu.nix>
ordenada.features.emacs.corfu.globalModes
List of modes where Corfu should be enabled.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/corfu.nix>
ordenada.features.emacs.daemons.enable
Whether to enable the Emacs daemons feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/daemons.nix>
ordenada.features.emacs.daemons.fillFrame
Whether to enable showing the list of daemons in the current full frame.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/daemons.nix>
ordenada.features.emacs.defaultThemes
The light theme to use for Emacs.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/emacs>
ordenada.features.emacs.dired.enable
Whether to enable the Emacs Dired feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/dired.nix>
ordenada.features.emacs.dired.extraSwitches
The list of extra switches passed to ls for Dired.
Type: list of string
Default:
[ "-h" ]
Declared by: - <ordenada/modules/emacs/dired.nix>
ordenada.features.emacs.dired.groupDirsFirst
Whether to enable sorting directories first in Dired listing.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/emacs/dired.nix>
ordenada.features.emacs.dired.killOnNewBuffer
Whether to enable killing current Dired buffer on opening new buffer.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/dired.nix>
ordenada.features.emacs.ebdb.enable
Whether to enable the Emacs EBDB feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/ebdb.nix>
ordenada.features.emacs.ebdb.sources
The list of EBDB database sources.
Type: list of string
Default:
[ "/home/nixos/documents/contacts" ]
Declared by: - <ordenada/modules/emacs/ebdb.nix>
ordenada.features.emacs.eglot.enable
Whether to enable the Emacs Eglot feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/programming.nix>
ordenada.features.emacs.embark.enable
Whether to enable the Emacs Embark feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/embark.nix>
ordenada.features.emacs.erc.alignNicknames
Whether to enable aligning nicks in ERC buffers.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.autoQuery
Buffer behavior upon receiving a private message.
Type: null or one of "window", "window-no-select", "frame", "bury", "buffer"
Default: "window-no-select"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.autojoin
Whether to enable joining channels automatically.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.autojoinChannels
Attrset of channels to autojoin in given IRC networks.
Type: attribute set of list of string
Default: { }
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.defaultPort
Default IRC server port to use in ERC.
Type: signed integer
Default: 6697
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.defaultServer
Default IRC server name to use in ERC.
Type: string
Default: "irc.libera.chat"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.fullName
Full name to use for ERC users.
Type: null or string
Default: null
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.headerLineFormat
Format string to be shown as the header-line in ERC buffers.
Type: null or string
Default: " %n on %t (%m,%l)"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.hideList
List of message types to hide.
Type: list of string
Default:
[ "NICK" "JOIN" "PART" "QUIT" "MODE" "AWAY" ]
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.joinBuffer
Buffer behavior upon joining a newly created IRC buffer.
Type: null or one of "window", "window-no-select", "frame", "bury", "buffer"
Default: "bury"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.key
ordenada.features.emacs.erc.killBuffersOnQuit
Whether to enable killing ERC buffers on quit.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.log
Whether to enable logging ERC sessions.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.nick
Nick to use for ERC users.
Type: null or string
Default: null
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.promptForPassword
Whether to enable prompting for password upon connecting to an IRC network.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.queryDisplay
Buffer behavior when using the /QUERY command to talk to someone.
Type: null or one of "window", "window-no-select", "frame", "bury", "buffer"
Default: "window"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.showImages
Whether to enable showing images in ERC buffers.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.erc.trackExcludeTypes
List of message types to ignore from notifications.
Type: list of string
Default:
[ "324" "329" "JOIN" "MODE" "NICK" "PART" "QUIT" ]
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.emacs.eshell.enable
Whether to enable the Emacs Eshell feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/eshell.nix>
ordenada.features.emacs.extraConfig
Extra Emacs configuration.
Type: strings concatenated with "\n"
Default: ""
Declared by: - <ordenada/modules/emacs>
ordenada.features.emacs.extraPackages
List of extra Emacs packages.
Type: list of package
Default: [ ]
Declared by: - <ordenada/modules/emacs>
ordenada.features.emacs.flymake.enable
Whether to enable the Emacs Flymake feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/programming.nix>
ordenada.features.emacs.gnus.enable
Whether to enable the Emacs Gnus feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.directory
Gnus directory variable.
Type: string
Default: "/home/nixos/.cache/emacs/gnus"
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.groupParameters
Group-specific settings.
Type: attribute set of attribute set of (string or signed integer)
Default: { }
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.key
Keybinding to launch the Gnus newsgroup reader.
Type: string
Default: "g"
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.messageArchiveGroup
Group name where to save the messages you've written.
Type: null or (list of string)
Default: null
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.messageArchiveMethod
Mail method to archive the messages you've sent.
Type: null or (list of string)
Default: null
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.postingStyles
Posting styles based on the current group or article.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.topicGroups
Topics-groups attrset to categorize groups into topics.
Type: attribute set of list of string
Default: { }
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.gnus.topicTopology
Hierarchy of topics.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/gnus.nix>
ordenada.features.emacs.help.enable
Whether to enable the Emacs help feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/help.nix>
ordenada.features.emacs.keymaps.enable
Whether to enable the Emacs keymaps feature.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/emacs/keymaps.nix>
ordenada.features.emacs.keymaps.appMap
The Emacs keymap for application keybindings.
Type: attribute set
Default:
{ appt = "A"; calendar = "c"; }
Declared by: - <ordenada/modules/emacs/keymaps.nix>
ordenada.features.emacs.keymaps.appMapPrefix
The prefix key used for ordenada-app-map.
Type: string
Default: "a"
Declared by: - <ordenada/modules/emacs/keymaps.nix>
ordenada.features.emacs.keymaps.toggleMap
The Emacs keymap for toggle keybindings.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/emacs/keymaps.nix>
ordenada.features.emacs.keymaps.toggleMapPrefix
The prefix key used for ordenada-toggle-map.
Type: string
Default: "t"
Declared by: - <ordenada/modules/emacs/keymaps.nix>
ordenada.features.emacs.marginalia.enable
Whether to enable the Emacs marginalia feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/marginalia.nix>
ordenada.features.emacs.marginalia.alignment
The alignment of Marginalia annotations.
Type: one of "left", "right", "center"
Default: "left"
Declared by: - <ordenada/modules/emacs/marginalia.nix>
ordenada.features.emacs.message.enable
Whether to enable the Emacs message feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/message.nix>
ordenada.features.emacs.modus-themes.enable
Whether to enable the Emacs Modus Themes feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/modus-themes.nix>
ordenada.features.emacs.modus-themes.dark
Whether to enable dark mode in Modus Themes.
Type: boolean
Default: false
Declared by: - <ordenada/modules/emacs/modus-themes.nix>
ordenada.features.emacs.modus-themes.deuteranopia
Whether to enable deuteranopia support in Modus Themes.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/modus-themes.nix>
ordenada.features.emacs.orderless.enable
Whether to enable the Emacs orderless feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/orderless.nix>
ordenada.features.emacs.org.enable
Whether to enable the Emacs Org feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/org.nix>
ordenada.features.emacs.org.directory
The directory where Org should look for files.
Type: string
Default: "/home/nixos/documents/org"
Declared by: - <ordenada/modules/emacs/org.nix>
ordenada.features.emacs.org.orgModern
Whether to enable Org Modern integration styles in Org buffers.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/org.nix>
ordenada.features.emacs.org.startupIndented
Whether to enable turning org-indent-mode on startup.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/emacs/org.nix>
ordenada.features.emacs.org-roam.enable
Whether to enable Emacs Org Roam feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/org-roam.nix>
ordenada.features.emacs.org-roam.captureTemplates
The Org Roam capture templates.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/org-roam.nix>
ordenada.features.emacs.org-roam.dailiesCaptureTemplates
Org Roam dailies capture templates.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/org-roam.nix>
ordenada.features.emacs.org-roam.dailiesDirectory
Org Roam dailies directory.
Type: string
Default: "daily/"
Declared by: - <ordenada/modules/emacs/org-roam.nix>
ordenada.features.emacs.org-roam.directory
Org Roam directory.
Type: string
Default: "~/notes"
Declared by: - <ordenada/modules/emacs/org-roam.nix>
ordenada.features.emacs.org-roam.todoIntegration
Whether to enable todo integration in Org Roam.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/org-roam.nix>
ordenada.features.emacs.project.enable
Whether to enable Emacs Project feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/project.nix>
ordenada.features.emacs.project.extraDominatingFiles
List of extra dominating files used to identify projects.
Type: list of string
Default:
[ ".project.el" ".dir-locals.el" ".gitignore" ]
Declared by: - <ordenada/modules/emacs/project.nix>
ordenada.features.emacs.rainbow-delimiters.enable
Whether to enable the Emacs rainbow-delimiters feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/programming.nix>
ordenada.features.emacs.shell.enable
Whether to enable Emacs shell feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/shell.nix>
ordenada.features.emacs.smartparens.enable
Whether to enable the Emacs smartparens feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/smartparens.nix>
ordenada.features.emacs.smartparens.package
The smartparens package to use.
Type: package
Default: pkgs.emacsPackages.smartparens
Declared by: - <ordenada/modules/emacs/smartparens.nix>
ordenada.features.emacs.smartparens.hooks
The list of mode hooks where smartparens-mode should be enabled.
Type: list of string
Default:
[ "prog-mode-hook" ]
Declared by: - <ordenada/modules/emacs/smartparens.nix>
ordenada.features.emacs.smartparens.pareditBindings
Whether to enable Paredit bindings for Smartparens.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/smartparens.nix>
ordenada.features.emacs.smartparens.showSmartParens
Whether to enable Smartparens built-in visualization of matching pairs.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/smartparens.nix>
ordenada.features.emacs.smartparens.strictHooks
The list of mode hooks where smartparens-strict-mode should be enabled.
Type: list of string
Default:
[ "prog-mode-hook" ]
Declared by: - <ordenada/modules/emacs/smartparens.nix>
ordenada.features.emacs.spelling.enable
Whether to enable the Emacs spelling feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.package
Package to be used for spelling.
Type: package
Default: <derivation aspell-0.60.8.1>
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.dictionaryServer
Dictionary server to use.
Type: string
Default: "dict.org"
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.flyspellHooks
List of mode hooks where flyspell-mode should be enabled.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.flyspellProgHooks
List of mode hooks where flyspell-prog-mode should be enabled.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.ispellPersonalDictionary
Personal dictionary for ispell.
Type: string
Default: ""
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.ispellProgram
Program to be used by ispell.
Type: path in the Nix store
Default:
"/nix/store/bx5bp5wapfzzbr5z6xp39hn2zf2w0v1y-aspell-0.60.8.1/bin/aspell"
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.spelling.ispellStandardDictionary
Default dictionary for ispell.
Type: string
Default: ""
Declared by: - <ordenada/modules/emacs/spelling.nix>
ordenada.features.emacs.tramp.enable
Whether to enable Emacs TRAMP feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/tramp.nix>
ordenada.features.emacs.vertico.enable
Whether to enable the Emacs vertico feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/vertico.nix>
ordenada.features.emacs.vertico.package
The Vertico package to use.
Type: package
Default: <derivation emacs-vertico-20240726.2131>
Declared by: - <ordenada/modules/emacs/vertico.nix>
ordenada.features.emacs.vterm.enable
Whether to enable the Emacs vterm feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/emacs/vterm.nix>
ordenada.features.emacs.vterm.package
The Vterm package to use.
Type: package
Default: <derivation emacs-vterm-20240705.1533>
Declared by: - <ordenada/modules/emacs/vterm.nix>
ordenada.features.firefox.enable
Whether to enable the Firefox feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.firefox.package
The Firefox package to use.
Type: package
Default: <derivation firefox-130.0.1>
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.firefox.arkenfoxSettings
Arkenfox user.js settings.
Type: attribute set
Default:
{ "0000" = { enable = true; }; "0100" = { enable = true; }; "0300" = { enable = true; }; "0800" = { enable = true; }; "1700" = { enable = true; }; "2600" = { enable = true; }; "5000" = { enable = true; }; }
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.firefox.extraAddons
Extra Firefox add-ons to install.
Type: list of package
Default: [ ]
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.firefox.extraPolicies
Attrset of extra Firefox policies.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.firefox.extraSearchConfig
Extra search engines configuration.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.firefox.extraSettings
User.js extra settings for the default Firefox profile.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/firefox.nix>
ordenada.features.fontutils.enable
Whether to enable the fontutils feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/fontutils.nix>
ordenada.features.fontutils.fonts.monospace
The monospace font to use.
Type: submodule
Default:
{ name = "Iosevka"; package = <derivation Iosevka-31.7.1>; size = 11; }
Declared by: - <ordenada/modules/fontutils.nix>
ordenada.features.fontutils.fonts.monospace.package
ordenada.features.fontutils.fonts.monospace.name
ordenada.features.fontutils.fonts.monospace.size
ordenada.features.fontutils.fonts.sans
The sans serif font to use.
Type: submodule
Default:
{ name = "IBM Plex Sans"; package = <derivation ibm-plex-6.4.0>; size = 11; }
Declared by: - <ordenada/modules/fontutils.nix>
ordenada.features.fontutils.fonts.sans.package
ordenada.features.fontutils.fonts.sans.name
ordenada.features.fontutils.fonts.sans.size
ordenada.features.fontutils.fonts.serif
The serif font to use.
Type: submodule
Default:
{ name = "IBM Plex Sans"; package = <derivation ibm-plex-6.4.0>; size = 11; }
Declared by: - <ordenada/modules/fontutils.nix>
ordenada.features.fontutils.fonts.serif.package
ordenada.features.fontutils.fonts.serif.name
ordenada.features.fontutils.fonts.serif.size
ordenada.features.fontutils.fonts.unicode
The unicode font to use.
Type: submodule
Default:
{ name = "Noto Color Emoji"; package = <derivation noto-fonts-color-emoji-2.042>; size = 11; }
Declared by: - <ordenada/modules/fontutils.nix>
ordenada.features.fontutils.fonts.unicode.package
ordenada.features.fontutils.fonts.unicode.name
ordenada.features.fontutils.fonts.unicode.size
ordenada.features.git.enable
Whether to enable the Git feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/git.nix>
ordenada.features.git.email
ordenada.features.git.gitLinkRemotes
Attrs of Git remote URLs to git-link functions.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/git.nix>
ordenada.features.git.signCommits
Whether to enable GPG signing of commits.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/git.nix>
ordenada.features.git.signingKey
The GPG key fingerprint to use to sign commits.
Type: null or string
Default: null
Declared by: - <ordenada/modules/git.nix>
ordenada.features.git.username
ordenada.features.gnupg.enable
Whether to enable the GnuPG feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/gnupg.nix>
ordenada.features.gnupg.defaultTtl
The cache TTL for GnuPG operations.
Type: signed integer
Default: 86400
Declared by: - <ordenada/modules/gnupg.nix>
ordenada.features.gnupg.pinentryPackage
The package for pinentry input.
Type: package
Default: <derivation pinentry-bemenu-0.14.0>
Declared by: - <ordenada/modules/gnupg.nix>
ordenada.features.gnupg.sshKeys
List of SSH key fingerprints.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/gnupg.nix>
ordenada.features.gtk.enable
Whether to enable the GTK feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/gtk.nix>
ordenada.features.gtk.cursorSize
ordenada.features.gtk.cursorTheme
The cursor theme.
Type: submodule
Default:
{ name = "Bibata-Modern-Ice"; package = <derivation bibata-cursors-2.0.6>; }
Declared by: - <ordenada/modules/gtk.nix>
ordenada.features.gtk.cursorTheme.package
ordenada.features.gtk.cursorTheme.name
ordenada.features.gtk.defaultThemes
The default GTK themes.
Type: attribute set of (submodule)
Default:
{ dark = { name = "adw-gtk3-dark"; package = <derivation adw-gtk3-5.4>; }; light = { name = "adw-gtk3"; package = <derivation adw-gtk3-5.4>; }; }
Declared by: - <ordenada/modules/gtk.nix>
ordenada.features.gtk.defaultThemes.<name>.package
ordenada.features.gtk.defaultThemes.<name>.name
ordenada.features.gtk.theme
The GTK theme.
Type: submodule
Default:
{ name = "adw-gtk3"; package = <derivation adw-gtk3-5.4>; }
Declared by: - <ordenada/modules/gtk.nix>
ordenada.features.gtk.theme.package
ordenada.features.gtk.theme.name
ordenada.features.home.enable
Whether to enable the home feature.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/home.nix>
ordenada.features.home.extraGroups
The extra list of groups.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/home.nix>
ordenada.features.irc.enable
Whether to enable the IRC feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts
Attrset of IRC accounts.
Type: attribute set of (submodule)
Default: { }
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts.<name>.bouncer
Whether to enable considering this account as connected to an IRC bouncer server.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts.<name>.client
Client name used for the IRC connection on this account.
Type: null or string
Default: null
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts.<name>.network
IRC network to use for this account.
Type: string
Default: "irc.libera.chat"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts.<name>.nick
Nick the account is registered under the IRC network.
Type: string
Default: "‹name›"
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts.<name>.port
Port number to use for the IRC connection on this account.
Type: signed integer
Default: 6697
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.irc.accounts.<name>.tls
Whether to enable using TLS for the IRC network connection.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/irc.nix>
ordenada.features.javascript.enable
Whether to enable the JavaScript feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/javascript.nix>
ordenada.features.kanshi.enable
Whether to enable the Kanshi feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/wm/kanshi.nix>
ordenada.features.kanshi.settings
The list of profile settings to apply to Kanshi.
Type: list of (attribute set)
Default: [ ]
Declared by: - <ordenada/modules/wm/kanshi.nix>
ordenada.features.keyboard.layout
The keyboard layout.
Type: submodule
Default:
{ name = "en"; options = [ "ctrl:nocaps" ]; }
Declared by: - <ordenada/modules/keyboard.nix>
ordenada.features.keyboard.layout.name
The XKB name of the keyboard layout.
Type: string
Default: "en"
Declared by: - <ordenada/modules/keyboard.nix>
ordenada.features.keyboard.layout.options
The list of XKB options to use for this layout.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/keyboard.nix>
ordenada.features.keyboard.layout.variant
The XKB layout variant name.
Type: string
Default: ""
Declared by: - <ordenada/modules/keyboard.nix>
ordenada.features.mail.enable
Whether to enable the mail feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.accounts
The list of mail accounts.
Type: attribute set of (submodule)
Default: { }
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.accounts.<name>.extraConfig
Extra config attrset to pass to home-manager's email account.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.accounts.<name>.flavor
A pre-defined mail account flavor.
Type: string
Default: "plain"
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.accounts.<name>.fqda
Email address of the mail account.
Type: string
Default: ""
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.accounts.<name>.fullName
ordenada.features.mail.accounts.<name>.primary
Whether to enable this account as the primary mail account.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.accounts.<name>.signature
The email signature for the mail account.
Type: string
Default:
'' Best regards, ''
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.defaultMessageSignature
The default email signature.
Type: string
Default:
'' Best regards, ''
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.imapnotify.enable
Whether to enable the imapnotify mail feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.imapnotify.package
The imapnotify package to use.
Type: package
Default: <derivation goimapnotify-2.3.15>
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.mbsync.enable
Whether to enable the mbsync mail feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.mbsync.package
The mbsync package to use.
Type: package
Default: <derivation isync-1.5.0>
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.msmtp.enable
Whether to enable the msmtp mail feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.mail.msmtp.package
The msmtp package to use.
Type: package
Default: <derivation msmtp-1.8.25>
Declared by: - <ordenada/modules/mail.nix>
ordenada.features.markdown.enable
Whether to enable the Markdown feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/markdown.nix>
ordenada.features.markdown.headingsScaling
Whether to enable incremental scaling of headings.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/markdown.nix>
ordenada.features.networking.enable
Whether to enable the networking feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/networking.nix>
ordenada.features.nix.enable
Whether to enable the Nix feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/nix.nix>
ordenada.features.nix.polymode
Whether to enable Polymode support for Nix multi-line strings.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/nix.nix>
ordenada.features.passage.enable
Whether to enable the passage feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/passage.nix>
ordenada.features.passage.package
The package to use for passage.
Type: package
Default: <derivation passage-1.7.4a2>
Declared by: - <ordenada/modules/passage.nix>
ordenada.features.passage.identitiesFile
The identities file to be used by passage.
Type: string
Default: "/home/nixos/.local/state/passage/identities"
Declared by: - <ordenada/modules/passage.nix>
ordenada.features.password-store.enable
Whether to enable the password-store feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/password-store.nix>
ordenada.features.password-store.package
The package to use for password-store.
Type: package
Default: <derivation pass-env>
Declared by: - <ordenada/modules/password-store.nix>
ordenada.features.pipewire.enable
Whether to enable the Pipewire feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/pipewire.nix>
ordenada.features.qemu.enable
Whether to enable the QEMU feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/qemu.nix>
ordenada.features.ssh.enable
Whether to enable the SSH feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/ssh.nix>
ordenada.features.ssh.daemon
Whether to enable the SSH server daemon.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/ssh.nix>
ordenada.features.ssh.matchBlocks
The SSH stanzas to use in the client configuration.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/ssh.nix>
ordenada.features.sway.enable
Whether to enable the Sway feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/wm/sway.nix>
ordenada.features.sway.package
The Sway package to use.
Type: package
Default: <derivation sway-1.9>
Declared by: - <ordenada/modules/wm/sway.nix>
ordenada.features.sway.autoStartTty
The tty to launch Sway in.
Type: null or string
Default: null
Declared by: - <ordenada/modules/wm/sway.nix>
ordenada.features.sway.extraConfig
Extra configuration for Sway.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/wm/sway.nix>
ordenada.features.sway.keybindings
The Sway keybindings.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/wm/sway.nix>
ordenada.features.sway.modifier
The modifier to bind Sway keys to.
Type: string
Default: "Mod4"
Declared by: - <ordenada/modules/wm/sway.nix>
ordenada.features.tailscale.enable
Whether to enable the Tailscale feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/tailscale.nix>
ordenada.features.tailscale.package
The Tailscale package.
Type: package
Default: <derivation tailscale-1.74.1>
Declared by: - <ordenada/modules/tailscale.nix>
ordenada.features.theme.enable
Whether to enable the theme feature.
Type: boolean
Default: true
Example: true
Declared by: - <ordenada/modules/theme.nix>
ordenada.features.theme.defaultWallpapers
The default wallpapers.
Type: attribute set
Default:
{ dark = <derivation wallhaven-dgo6pl.jpg>; light = <derivation wallhaven-28vjgm.jpg>; }
Declared by: - <ordenada/modules/theme.nix>
ordenada.features.theme.polarity
The theme polarity.
Type: one of "dark", "light"
Default: "light"
Declared by: - <ordenada/modules/theme.nix>
ordenada.features.theme.scheme
The theme color scheme.
Type: attribute set
Default: <function>
Declared by: - <ordenada/modules/theme.nix>
ordenada.features.theme.wallpaper
The theme wallpaper.
Type: path in the Nix store
Default: <derivation wallhaven-28vjgm.jpg>
Declared by: - <ordenada/modules/theme.nix>
ordenada.features.userInfo
User information for Ordenada.
Type: submodule
Default: { }
Declared by: - <ordenada/modules/base.nix>
ordenada.features.userInfo.email
ordenada.features.userInfo.fullName
ordenada.features.userInfo.gpgPrimaryKey
The primary GnuPG key for this user.
Type: null or string
Default: null
Declared by: - <ordenada/modules/base.nix>
ordenada.features.userInfo.homeDirectory
Home directory of primary Ordenada user.
Type: string
Default: "/home/nixos"
Declared by: - <ordenada/modules/base.nix>
ordenada.features.userInfo.username
ordenada.features.waybar.enable
Whether to enable the Waybar feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.defaultModules
Attrset of pre-built Waybar modules.
Type: attribute set of (submodule)
Default:
{ battery = { config = { format = "{capacity}% {icon}"; format-icons = { empty = ""; full = ""; half = ""; high = ""; low = ""; }; states = { empty = 10; full = 100; half = 50; high = 80; low = 20; }; }; name = "battery"; }; clock = { config = { actions = { on-click-right = "mode"; on-scroll-down = "shift_up"; on-scroll-up = "shift_down"; }; calendar = { format = { today = "<span color='#3548cf'><b>{}</b></span>"; weeks = "<span color='#c4c4c4'><b>W{}</b></span>"; }; mode-mon-col = 3; weeks-pos = "right"; }; format = "{:%a %d %b %H:%M}"; format-alt = "{:%a %d %b (w.%V) %H:%M}"; tooltip-format = "<tt><small>{calendar}</small></tt>"; }; name = "clock"; }; pulseaudio = { config = { format = "{volume}% {icon}"; format-icons = { default = [ "" "" "" ]; }; format-muted = ""; }; name = "pulseaudio"; }; swayLanguage = { config = { format = "{short}"; on-click = "swaymsg input type:keyboard xkb_switch_layout next"; }; name = "sway/language"; }; swayMode = { name = "sway/mode"; placement = "modules-left"; }; swayWindow = { config = { max-length = 50; }; name = "sway/window"; placement = "modules-center"; }; swayWorkspaces = { config = { all-outputs = false; disable-scroll = true; persistent-workspaces = { "1" = [ ]; "2" = [ ]; "3" = [ ]; "4" = [ ]; "5" = [ ]; }; }; name = "sway/workspaces"; placement = "modules-left"; style = '' #workspaces button { background: #e0e0e0; color: #000000; font-weight: normal; border: none; border-radius: 0.2em; margin: 0.3em 0.2em; padding: 0.3em 0.4em; } #workspaces button.active { background: #e0e0e0; } #workspaces button.persistent { background: none; } #workspaces button.focused { background: #3548cf; color: #f0f0f0; } #workspaces button.urgent { background: #a60000; color: #9f9f9f; } ''; }; swaync = { config = { escape = true; exec = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -swb"; format = "{icon}"; format-icons = { dnd-inhibited-none = ""; dnd-inhibited-notification = ""; dnd-none = ""; dnd-notification = ""; inhibited-none = ""; inhibited-notification = ""; none = ""; notification = ""; }; on-click = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -t -sw"; on-click-middle = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -C -sw"; on-click-right = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -d -sw"; return-type = "json"; tooltip = false; }; name = "custom/swaync"; }; }
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.defaultModules.<name>.barId
ID of the bar to which this module will be added to.
Type: string
Default: "primary"
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.defaultModules.<name>.config
Configuration for this Waybar module.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.defaultModules.<name>.name
ordenada.features.waybar.defaultModules.<name>.placement
Placement of the Waybar module in the bar.
Type: one of "modules-left", "modules-center", "modules-right"
Default: "modules-right"
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.defaultModules.<name>.style
CSS styles applied to this Waybar module.
Type: strings concatenated with "\n"
Default: ""
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.extraSettings
Extra settings for Waybar configuration.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.height
The height of the Waybar bar.
Type: signed integer
Default: 30
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.modules
The list of modules to add to Waybar.
Type: list of (submodule)
Default:
[ { config = { all-outputs = false; disable-scroll = true; persistent-workspaces = { "1" = [ ]; "2" = [ ]; "3" = [ ]; "4" = [ ]; "5" = [ ]; }; }; name = "sway/workspaces"; placement = "modules-left"; style = '' #workspaces button { background: #e0e0e0; color: #000000; font-weight: normal; border: none; border-radius: 0.2em; margin: 0.3em 0.2em; padding: 0.3em 0.4em; } #workspaces button.active { background: #e0e0e0; } #workspaces button.persistent { background: none; } #workspaces button.focused { background: #3548cf; color: #f0f0f0; } #workspaces button.urgent { background: #a60000; color: #9f9f9f; } ''; } { name = "sway/mode"; placement = "modules-left"; } { config = { max-length = 50; }; name = "sway/window"; placement = "modules-center"; } { config = { format = "{capacity}% {icon}"; format-icons = { empty = ""; full = ""; half = ""; high = ""; low = ""; }; states = { empty = 10; full = 100; half = 50; high = 80; low = 20; }; }; name = "battery"; } { config = { format = "{volume}% {icon}"; format-icons = { default = [ "" "" "" ]; }; format-muted = ""; }; name = "pulseaudio"; } { config = { format = "{short}"; on-click = "swaymsg input type:keyboard xkb_switch_layout next"; }; name = "sway/language"; } { config = { actions = { on-click-right = "mode"; on-scroll-down = "shift_up"; on-scroll-up = "shift_down"; }; calendar = { format = { today = "<span color='#3548cf'><b>{}</b></span>"; weeks = "<span color='#c4c4c4'><b>W{}</b></span>"; }; mode-mon-col = 3; weeks-pos = "right"; }; format = "{:%a %d %b %H:%M}"; format-alt = "{:%a %d %b (w.%V) %H:%M}"; tooltip-format = "<tt><small>{calendar}</small></tt>"; }; name = "clock"; } { config = { escape = true; exec = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -swb"; format = "{icon}"; format-icons = { dnd-inhibited-none = ""; dnd-inhibited-notification = ""; dnd-none = ""; dnd-notification = ""; inhibited-none = ""; inhibited-notification = ""; none = ""; notification = ""; }; on-click = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -t -sw"; on-click-middle = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -C -sw"; on-click-right = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -d -sw"; return-type = "json"; tooltip = false; }; name = "custom/swaync"; } ]
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.modules.*.barId
ID of the bar to which this module will be added to.
Type: string
Default: "primary"
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.modules.*.config
Configuration for this Waybar module.
Type: attribute set
Default: { }
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.modules.*.name
ordenada.features.waybar.modules.*.placement
Placement of the Waybar module in the bar.
Type: one of "modules-left", "modules-center", "modules-right"
Default: "modules-right"
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.modules.*.style
CSS styles applied to this Waybar module.
Type: strings concatenated with "\n"
Default: ""
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.waybar.output
The list of outputs Waybar should be displayed in.
Type: list of string
Default: [ ]
Declared by: - <ordenada/modules/wm/waybar.nix>
ordenada.features.xdg.enable
Whether to enable the XDG feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/xdg.nix>
ordenada.features.xdg.baseDirs
The XDG base directories.
Type: attribute set
Default:
{ cacheHome = "/home/nixos/.cache"; configHome = "/home/nixos/.config"; dataHome = "/home/nixos/.local/share"; stateHome = "/home/nixos/.local/state"; }
Declared by: - <ordenada/modules/xdg.nix>
ordenada.features.xdg.userDirs
The XDG user directories.
Type: attribute set
Default:
{ desktop = null; documents = "/home/nixos/documents"; download = "/home/nixos/downloads"; music = "/home/nixos/music"; pictures = "/home/nixos/pictures"; publicShare = "/home/nixos/public"; templates = null; videos = "/home/nixos/videos"; }
Declared by: - <ordenada/modules/xdg.nix>
ordenada.features.yaml.enable
Whether to enable YAML feature.
Type: boolean
Default: false
Example: true
Declared by: - <ordenada/modules/yaml.nix>
ordenada.users
Attrs of Ordenada users.
Type: attribute set of (submodule)
Default: { }
Declared by: - <ordenada/modules/base.nix>
ordenada.users.<name>.features
Attrs of Ordenada features for this user.
Type: attribute set
Default:
{ age = { enable = false; identities = [ ]; package = <derivation age-1.2.0>; recipients = [ ]; }; android = { enable = false; }; bash = { enable = false; package = <derivation bash-interactive-5.2p32>; }; bemenu = { enable = false; height = 34; }; bluetooth = { enable = false; }; clojure = { enable = false; }; compile = { enable = false; }; direnv = { enable = false; }; docker = { enable = false; }; emacs = { ace-window = { enable = false; }; advancedUser = false; all-the-icons = { enable = false; }; apheleia = { enable = false; }; appearance = { enable = false; fringes = 8; headerLineAsModeLine = true; headerLinePadding = 4; margin = 8; modeLinePadding = 4; tabBarPadding = 4; }; calendar = { apptKey = "A"; calendarKey = "c"; dateStyle = "iso"; diaryFile = "/home/nixos/documents/diary"; enable = false; weekNumbers = false; }; cider = { popReplOnConnect = "display-only"; replInCurrentWindow = false; }; completion = { enable = false; }; consult = { enable = false; initialNarrowing = false; }; corfu = { enable = false; globalModes = [ ]; }; daemons = { enable = false; fillFrame = false; }; defaultThemes = { }; dired = { enable = false; extraSwitches = [ "-h" ]; groupDirsFirst = true; killOnNewBuffer = false; }; ebdb = { enable = false; sources = [ "/home/nixos/documents/contacts" ]; }; eglot = { enable = false; }; embark = { enable = false; }; enable = false; erc = { alignNicknames = true; autoQuery = "window-no-select"; autojoin = true; autojoinChannels = { }; defaultPort = 6697; defaultServer = "irc.libera.chat"; fullName = null; headerLineFormat = " %n on %t (%m,%l)"; hideList = [ "NICK" "JOIN" "PART" "QUIT" "MODE" "AWAY" ]; joinBuffer = "bury"; key = "i"; killBuffersOnQuit = true; log = false; nick = null; promptForPassword = false; queryDisplay = "window"; showImages = false; sidebarHeaderLineFormat = " ERC Status"; sidebarModeLineFormat = null; sidebarWidth = 22; trackExcludeTypes = [ "324" "329" "JOIN" "MODE" "NICK" "PART" "QUIT" ]; }; eshell = { enable = false; }; extraConfig = ""; extraPackages = [ ]; flymake = { enable = false; }; gnus = { directory = "/home/nixos/.cache/emacs/gnus"; enable = false; groupParameters = { }; key = "g"; messageArchiveGroup = null; messageArchiveMethod = null; postingStyles = [ ]; topicGroups = { }; topicTopology = [ ]; }; help = { enable = false; }; keymaps = { appMap = { appt = "A"; calendar = "c"; }; appMapPrefix = "a"; enable = true; toggleMap = { }; toggleMapPrefix = "t"; }; marginalia = { alignment = "left"; enable = false; }; message = { enable = false; }; modus-themes = { dark = false; deuteranopia = false; enable = false; }; orderless = { enable = false; }; org = { directory = "/home/nixos/documents/org"; enable = false; orgModern = false; startupIndented = true; }; org-roam = { captureTemplates = [ ]; dailiesCaptureTemplates = [ ]; dailiesDirectory = "daily/"; directory = "~/notes"; enable = false; todoIntegration = false; }; package = <derivation emacs-pgtk-29.4>; project = { enable = false; extraDominatingFiles = [ ".project.el" ".dir-locals.el" ".gitignore" ]; }; rainbow-delimiters = { enable = false; }; shell = { enable = false; }; smartparens = { enable = false; hooks = [ "prog-mode-hook" ]; package = <derivation emacs-smartparens-20240713.1002>; pareditBindings = false; showSmartParens = false; strictHooks = [ "prog-mode-hook" ]; }; spelling = { dictionaryServer = "dict.org"; enable = false; flyspellHooks = [ ]; flyspellProgHooks = [ ]; ispellPersonalDictionary = ""; ispellProgram = "/nix/store/bx5bp5wapfzzbr5z6xp39hn2zf2w0v1y-aspell-0.60.8.1/bin/aspell"; ispellStandardDictionary = ""; package = <derivation aspell-0.60.8.1>; }; tramp = { enable = false; }; vertico = { enable = false; package = <derivation emacs-vertico-20240726.2131>; }; vterm = { enable = false; package = <derivation emacs-vterm-20240705.1533>; }; }; firefox = { arkenfoxSettings = { "0000" = { enable = true; }; "0100" = { enable = true; }; "0300" = { enable = true; }; "0800" = { enable = true; }; "1700" = { enable = true; }; "2600" = { enable = true; }; "5000" = { enable = true; }; }; enable = false; extraAddons = [ ]; extraPolicies = { }; extraSearchConfig = { }; extraSettings = { }; package = <derivation firefox-130.0.1>; }; fontutils = { enable = false; fonts = { monospace = { name = "Iosevka"; package = <derivation Iosevka-31.7.1>; size = 11; }; sans = { name = "IBM Plex Sans"; package = <derivation ibm-plex-6.4.0>; size = 11; }; serif = { name = "IBM Plex Sans"; package = <derivation ibm-plex-6.4.0>; size = 11; }; unicode = { name = "Noto Color Emoji"; package = <derivation noto-fonts-color-emoji-2.042>; size = 11; }; }; }; git = { email = ""; enable = false; gitLinkRemotes = { }; signCommits = false; signingKey = null; username = ""; }; gnupg = { defaultTtl = 86400; enable = false; pinentryPackage = <derivation pinentry-bemenu-0.14.0>; sshKeys = [ ]; }; gtk = { cursorSize = 24; cursorTheme = { name = "Bibata-Modern-Ice"; package = <derivation bibata-cursors-2.0.6>; }; defaultThemes = { dark = { name = "adw-gtk3-dark"; package = <derivation adw-gtk3-5.4>; }; light = { name = "adw-gtk3"; package = <derivation adw-gtk3-5.4>; }; }; enable = false; theme = { name = "adw-gtk3"; package = <derivation adw-gtk3-5.4>; }; }; home = { enable = true; extraGroups = [ ]; }; irc = { accounts = { }; enable = false; }; javascript = { enable = false; }; kanshi = { enable = false; settings = [ ]; }; keyboard = { layout = { name = "en"; options = [ "ctrl:nocaps" ]; variant = ""; }; }; mail = { accounts = { }; defaultMessageSignature = '' Best regards, ''; enable = false; imapnotify = { enable = false; package = <derivation goimapnotify-2.3.15>; }; mbsync = { enable = false; package = <derivation isync-1.5.0>; }; msmtp = { enable = false; package = <derivation msmtp-1.8.25>; }; }; markdown = { enable = false; headingsScaling = false; }; networking = { enable = false; }; nix = { enable = false; polymode = false; }; passage = { enable = false; identitiesFile = "/home/nixos/.local/state/passage/identities"; package = <derivation passage-1.7.4a2>; }; password-store = { enable = false; package = <derivation pass-env>; }; pipewire = { enable = false; }; qemu = { enable = false; }; ssh = { daemon = true; enable = false; matchBlocks = { }; rootAuthorizedKeys = [ ]; userAuthorizedKeys = [ ]; }; sway = { autoStartTty = null; enable = false; extraConfig = { }; keybindings = { }; modifier = "Mod4"; package = <derivation sway-1.9>; }; tailscale = { enable = false; package = <derivation tailscale-1.74.1>; }; theme = { defaultWallpapers = { dark = <derivation wallhaven-dgo6pl.jpg>; light = <derivation wallhaven-28vjgm.jpg>; }; enable = true; polarity = "light"; scheme = <function>; wallpaper = <derivation wallhaven-28vjgm.jpg>; }; userInfo = { email = ""; fullName = ""; gpgPrimaryKey = null; homeDirectory = "/home/nixos"; username = "nixos"; }; waybar = { defaultModules = { battery = { barId = "primary"; config = { format = "{capacity}% {icon}"; format-icons = { empty = ""; full = ""; half = ""; high = ""; low = ""; }; states = { empty = 10; full = 100; half = 50; high = 80; low = 20; }; }; name = "battery"; placement = "modules-right"; style = ""; }; clock = { barId = "primary"; config = { actions = { on-click-right = "mode"; on-scroll-down = "shift_up"; on-scroll-up = "shift_down"; }; calendar = { format = { today = "<span color='#3548cf'><b>{}</b></span>"; weeks = "<span color='#c4c4c4'><b>W{}</b></span>"; }; mode-mon-col = 3; weeks-pos = "right"; }; format = "{:%a %d %b %H:%M}"; format-alt = "{:%a %d %b (w.%V) %H:%M}"; tooltip-format = "<tt><small>{calendar}</small></tt>"; }; name = "clock"; placement = "modules-right"; style = ""; }; pulseaudio = { barId = "primary"; config = { format = "{volume}% {icon}"; format-icons = { default = [ "" "" "" ]; }; format-muted = ""; }; name = "pulseaudio"; placement = "modules-right"; style = ""; }; swayLanguage = { barId = "primary"; config = { format = "{short}"; on-click = "swaymsg input type:keyboard xkb_switch_layout next"; }; name = "sway/language"; placement = "modules-right"; style = ""; }; swayMode = { barId = "primary"; config = { }; name = "sway/mode"; placement = "modules-left"; style = ""; }; swayWindow = { barId = "primary"; config = { max-length = 50; }; name = "sway/window"; placement = "modules-center"; style = ""; }; swayWorkspaces = { barId = "primary"; config = { all-outputs = false; disable-scroll = true; persistent-workspaces = { "1" = [ ]; "2" = [ ]; "3" = [ ]; "4" = [ ]; "5" = [ ]; }; }; name = "sway/workspaces"; placement = "modules-left"; style = '' #workspaces button { background: #e0e0e0; color: #000000; font-weight: normal; border: none; border-radius: 0.2em; margin: 0.3em 0.2em; padding: 0.3em 0.4em; } #workspaces button.active { background: #e0e0e0; } #workspaces button.persistent { background: none; } #workspaces button.focused { background: #3548cf; color: #f0f0f0; } #workspaces button.urgent { background: #a60000; color: #9f9f9f; } ''; }; swaync = { barId = "primary"; config = { escape = true; exec = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -swb"; format = "{icon}"; format-icons = { dnd-inhibited-none = ""; dnd-inhibited-notification = ""; dnd-none = ""; dnd-notification = ""; inhibited-none = ""; inhibited-notification = ""; none = ""; notification = ""; }; on-click = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -t -sw"; on-click-middle = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -C -sw"; on-click-right = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -d -sw"; return-type = "json"; tooltip = false; }; name = "custom/swaync"; placement = "modules-right"; style = ""; }; }; enable = false; extraSettings = { }; height = 30; modules = [ { barId = "primary"; config = { all-outputs = false; disable-scroll = true; persistent-workspaces = { "1" = [ ]; "2" = [ ]; "3" = [ ]; "4" = [ ]; "5" = [ ]; }; }; name = "sway/workspaces"; placement = "modules-left"; style = '' #workspaces button { background: #e0e0e0; color: #000000; font-weight: normal; border: none; border-radius: 0.2em; margin: 0.3em 0.2em; padding: 0.3em 0.4em; } #workspaces button.active { background: #e0e0e0; } #workspaces button.persistent { background: none; } #workspaces button.focused { background: #3548cf; color: #f0f0f0; } #workspaces button.urgent { background: #a60000; color: #9f9f9f; } ''; } { barId = "primary"; config = { }; name = "sway/mode"; placement = "modules-left"; style = ""; } { barId = "primary"; config = { max-length = 50; }; name = "sway/window"; placement = "modules-center"; style = ""; } { barId = "primary"; config = { format = "{capacity}% {icon}"; format-icons = { empty = ""; full = ""; half = ""; high = ""; low = ""; }; states = { empty = 10; full = 100; half = 50; high = 80; low = 20; }; }; name = "battery"; placement = "modules-right"; style = ""; } { barId = "primary"; config = { format = "{volume}% {icon}"; format-icons = { default = [ "" "" "" ]; }; format-muted = ""; }; name = "pulseaudio"; placement = "modules-right"; style = ""; } { barId = "primary"; config = { format = "{short}"; on-click = "swaymsg input type:keyboard xkb_switch_layout next"; }; name = "sway/language"; placement = "modules-right"; style = ""; } { barId = "primary"; config = { actions = { on-click-right = "mode"; on-scroll-down = "shift_up"; on-scroll-up = "shift_down"; }; calendar = { format = { today = "<span color='#3548cf'><b>{}</b></span>"; weeks = "<span color='#c4c4c4'><b>W{}</b></span>"; }; mode-mon-col = 3; weeks-pos = "right"; }; format = "{:%a %d %b %H:%M}"; format-alt = "{:%a %d %b (w.%V) %H:%M}"; tooltip-format = "<tt><small>{calendar}</small></tt>"; }; name = "clock"; placement = "modules-right"; style = ""; } { barId = "primary"; config = { escape = true; exec = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -swb"; format = "{icon}"; format-icons = { dnd-inhibited-none = ""; dnd-inhibited-notification = ""; dnd-none = ""; dnd-notification = ""; inhibited-none = ""; inhibited-notification = ""; none = ""; notification = ""; }; on-click = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -t -sw"; on-click-middle = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -C -sw"; on-click-right = "/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync-client -d -sw"; return-type = "json"; tooltip = false; }; name = "custom/swaync"; placement = "modules-right"; style = ""; } ]; output = [ ]; }; xdg = { baseDirs = { cacheHome = "/home/nixos/.cache"; configHome = "/home/nixos/.config"; dataHome = "/home/nixos/.local/share"; stateHome = "/home/nixos/.local/state"; }; enable = false; userDirs = { desktop = null; documents = "/home/nixos/documents"; download = "/home/nixos/downloads"; music = "/home/nixos/music"; pictures = "/home/nixos/pictures"; publicShare = "/home/nixos/public"; templates = null; videos = "/home/nixos/videos"; }; }; yaml = { enable = false; }; }
Declared by: - <ordenada/modules/base.nix>
ordenada.users.<name>.name
The username for this user.
Type: string
Default: "‹name›"
Declared by: - <ordenada/modules/base.nix>