• Stars
    star
    356
  • Rank 115,266 (Top 3 %)
  • Language
    Nix
  • License
    MIT License
  • Created almost 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Manage KDE Plasma with Home Manager

Manage KDE Plasma with Home Manager

This project aims to provide Home Manger modules which allow you to configure KDE Plasma using Nix.

Configuration is broken down into three layers:

  1. High-level interface like many Home Manager modules:

    {
      programs.plasma = {
        workspace.clickItemTo = "select";
      };
    }

    This layer is doesn't currently have many options. If using a high-level interface like this sounds interesting to you please consider contributing more options.

  2. Mid-level interface:

    {
      programs.plasma = {
        shortcuts.kwin = {
          "Switch Window Down" = "Meta+J";
          "Switch Window Left" = "Meta+H";
          "Switch Window Right" = "Meta+L";
          "Switch Window Up" = "Meta+K";
        };
      };
    }

    This layer is considered mid level because, while it generates a great deal of configuration for you, you must still know the name of the corresponding KDE setting to use it. (See information about the rc2nix tool below.)

  3. A low-level interface:

    {
      programs.plasma = {
        configFile."baloofilerc"."Basic Settings"."Indexing-Enabled" = false;
      };
    }

    The other two layers ultimately generate Nix configuration for this low-level layer. Configuration at this level is essentially in the final state before being sent to the kwriteconfig5 tool.

An example is available in the example directory.

Capturing Your Current Configuration

To make it easier to migrate to Plasma Manger, and to help maintain your Nix configuration, this project includes a tool called rc2nix.

This tool will read KDE configuration files and translate them to Nix. The translated configuration is written to standard output. This makes it easy to:

  • Generate an initial Plasma Manager configuration file.

  • See what settings are changed by a GUI tool by capturing a file before and after using the tool and then using diff.

To run the rc2nix tool without having to clone this repository run the following shell command:

nix run github:pjones/plasma-manager

Contributions and Maintenance

I consider this a community project and welcome all contributions. If there's enough interest I would love to move this into nix-community once it has matured.

That said, this project works well enough for my needs. I don't have enough free time to maintain this project on my own. Therefore I won't be able to fix issues or implement new features without help.

Special Thanks

This work was inspired by the suggestions on Home Manger Issue #607 by people such as bew and kurnevsky. Thank you.

More Repositories

1

effrb

Source code for the book Effective Ruby by Peter J. Jones.
Ruby
143
star
2

xmonadrc

My XMonad configuration
Haskell
58
star
3

nix-hs

Haskell + nixpkgs = nix-hs
Nix
23
star
4

byline

Haskell library for creating command-line interfaces (colors, menus, etc.)
Haskell
21
star
5

minidox-case

A 3D-printed case for the Minidox keyboard
OpenSCAD
15
star
6

oled-display

Display a Pomodoro timer on an OLED display via org-clock.
C
15
star
7

bufshow

A simple presentation tool for Emacs
Emacs Lisp
14
star
8

playlists

Library and executable for working with playlist files.
Haskell
12
star
9

phoebe

A collection of NixOS modules that add features to the ones in nixpkgs.
Nix
10
star
10

themoviedb

Simple Haskell library that provides functions for retrieving movie metadata from TheMovieDB
Haskell
10
star
11

tilde

Peter's NixOS Account
Nix
9
star
12

openid-connect

An OpenID Connect library that does all the heavy lifting for you
Haskell
9
star
13

eldoro

A pomodoro timer/tracker that works with org-mode.
Emacs Lisp
9
star
14

pdf-fdf

Library and command line tool for generating FDFs
Ruby
8
star
15

hlwmrc

Peter's herbstluftwm config
Shell
5
star
16

bitlbee-el

Help get Bitlbee (http://www.bitlbee.org) up and running.
Emacs Lisp
4
star
17

passmm

An Emacs minor mode for pass (Password Store).
Emacs Lisp
4
star
18

addy

A full-featured library for parsing, validating, and rendering email addresses
Haskell
4
star
19

nix-utils

A collection personal packages and utilities for NixOS
Nix
4
star
20

cassava-streams

io-streams interface for the cassava CSV library.
Haskell
4
star
21

nixpkgs-jlink

nixpkgs overlay for SEGGER J-Link
Nix
3
star
22

ivory-tower-mynewt

A Tower backend for Apache Mynewt
Haskell
3
star
23

emacsrc

My Emacs configuration files
Emacs Lisp
3
star
24

hakyll-heist

Support for Heist templates in Hakyll generated sites
Haskell
3
star
25

exwm-nw

Named Workspaces for EXWM
Emacs Lisp
3
star
26

ido-select-window

Emacs package to select a window using ido and buffer names.
Emacs Lisp
3
star
27

elisp

Various Emacs Lisp files/modes
Emacs Lisp
2
star
28

vimeta

Frontend for video metadata tagging tools
Haskell
2
star
29

grunt

Keep your OS config files in Git, and apply them with GNU Make
Shell
2
star
30

personal-webhooks

Trigger personal scripts from incoming HTTP requests
Haskell
1
star
31

thetvdb

Simple Haskell library that provides functions for retrieving TV series metadata from TheTVDB.
Haskell
1
star
32

ael

Average Employment Length
Ruby
1
star
33

mock-httpd

A HTTP server for testing HTTP clients
Haskell
1
star
34

encryption-utils

Utilities and Tutorials for Encryption Tasks
Shell
1
star
35

org-clock-fifo

A global minor mode for Emacs that writes org-clock status to a FIFO
Emacs Lisp
1
star
36

exwm-wb

Control browsers under EXWM
Emacs Lisp
1
star
37

ghc-ios-util

Utilities and Scripts for Haskell iOS Development
Shell
1
star
38

devalot-hakyll

Hakyll extensions for Devalot.com
Haskell
1
star
39

ivy-exwm

Ivy completion for EXWM
Emacs Lisp
1
star
40

unix-starter-kit

Configuration files for Unix tools (e.g. Emacs, zsh, etc.) for people new to Unix-like systems.
Emacs Lisp
1
star
41

backup-scripts

Peter's Backup Scripts
Nix
1
star