--- /dev/null
+{ pkgs, config, ... }:
+{
+ home.packages = [
+ pkgs.clipster
+ ];
+ systemd.user.services.clipster = {
+ Unit = {
+ Description = "clipster clipboard manager daemon";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
+ Service = {
+ ExecStart = "${pkgs.clipster}/bin/clipster -d";
+ Restart = "always";
+ };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
+ };
+ xdg.configFile."clipster/clipster.ini".text = ''
+ [clipster]
+ # Directory for clipster data/files (usually `$HOME/.local/share/clipster`)
+ #data_dir = $XDG_DATA_HOME
+
+ # Default selection (if no -p of -c given on command-line): can be PRIMARY or CLIPBOARD
+ default_selection = PRIMARY
+
+ # Comma-separated list of selections to be watched and written to history
+ active_selections = PRIMARY,CLIPBOARD
+
+ # Enable synchronising of clipboards
+ # Only clipboards listed in 'active selections' will be synchronised
+ sync_selections = yes
+
+ # full path to the clipster history file (JSON)
+ # Maximum file size is: 'history_size * max_input * 2' (defaults: 10MB)
+ #history_file = %(data_dir)s/history
+
+ # Number of items to save in the history file for each selection. 0 - don't save history.
+ history_size = 20
+
+ # Time in seconds to flush history to disk, if changed
+ # Set to 0 to only write history file on (clean) exit
+ #history_update_interval = 60
+
+ # Write history file immediately after selection changes?
+ # If yes, disables history_update_interval
+ #write_on_change = no
+
+ # Full path to the clipster socket file
+ #socket_file = %(data_dir)s/clipster_sock
+
+ # Full path to the clipster pid file
+ #pid_file = %(data_dir)s/clipster.pid
+
+ # Maximum length for new clipboard items
+ #max_input = 50000
+
+ # Number of rows of clipboard content to show in the selection widget before truncating
+ # Set to a high number to avoid truncation
+ #row_height = 3
+
+ # Allow duplicates in the clipboard (if set to no, the earlier entry will be removed)
+ duplicates = no
+
+ # smart_update tries to be clever about small changes to the selection, and only adds
+ # to the history if the number of characters added or removed is greater than it's value.
+ # for example, if set to 2: the latest clipboard entry catch, would be replaced by any of:
+ # cat, catc, catchy, catcher, but not ca or catchers.
+ # Defaults to 1, as some applications update the clipboard by continually adding new
+ # items with a single character added or removed each time.
+ # Set to 0 to disable.
+ #smart_update = 1
+
+ # Extract uris from the selection text and add them to the default clipboard
+ #extract_uris = yes
+
+ # Extract emails from the selection text and add them to the default clipboard
+ #extract_emails = yes
+
+ # Extract patterns (as specified in patterns file: clipster_dir/patterns) and add them to the default clipboard
+ #extract_patterns = no
+ #patterns_file = %(conf_dir)s/patterns
+
+ # Ignore selections matching certain patterns (as specified in patterns file: clipster_dir/ignore_patterns)
+ #ignore_patterns = no
+ #ignore_patterns_file = %(conf_dir)s/ignore_patterns
+
+ # Extracted patterns are added to the history before the selection, and the clipbaord buffer is left unchanged.
+ # Enabling this option adds the pattern as the last item int he history, and updates the clipboard buffer with the pattern.
+ # NOTE: Multiple patterns will be applied sequentially: last one will be used for selection.
+ # This option also applies to email and uri patterns (which are processed before additional patterns).
+ #pattern_as_selection = no
+
+ # Comma-separated list of WM_CLASS properties for apps where clipboard changes should be ignored.
+ # Used to ignore clipboard changes from sensitive apps, e.g. password managers.
+ #blacklist_classes =
+
+ # Comma-separated list of WM_CLASS properties for apps where clipboard changes should NOT be ignored.
+ # Used to only monitor clipboard changes from whitelisted apps, all other apps will be ignored!
+ #whitelist_classes =
+ '';
+}
+