plasma manager

This commit is contained in:
Rachel Lambda Samuelsson 2024-06-25 12:11:51 +02:00
parent 24adf1ad54
commit 791d65a78d
9 changed files with 163 additions and 4 deletions

View File

@ -183,6 +183,7 @@
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "trunk",
"repo": "plasma-manager", "repo": "plasma-manager",
"type": "github" "type": "github"
} }

View File

@ -23,7 +23,7 @@
inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
plasma-manager = { plasma-manager = {
url = "github:nix-community/plasma-manager"; url = "github:nix-community/plasma-manager/trunk";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
@ -56,10 +56,13 @@
cornelis = cornelis.packages.${system}.cornelis; cornelis = cornelis.packages.${system}.cornelis;
cornelis-vim = cornelis.packages.${system}.cornelis-vim; cornelis-vim = cornelis.packages.${system}.cornelis-vim;
slippi-netplay = ssbm-nix.packages.${system}.slippi-netplay; slippi-netplay = ssbm-nix.packages.${system}.slippi-netplay;
rc2nix = plasma-manager.packages.${system}.rc2nix;
sax2nf = self.packages.${system}.sax2nf; sax2nf = self.packages.${system}.sax2nf;
bqn-vim = self.packages.${system}.bqn-vim; bqn-vim = self.packages.${system}.bqn-vim;
bqn-nvim = self.packages.${system}.bqn-nvim; bqn-nvim = self.packages.${system}.bqn-nvim;
shell-menu = self.packages.${system}.shell-menu; shell-menu = self.packages.${system}.shell-menu;
pash = self.packages.${system}.pash;
cpypsk = self.packages.${system}.cpypsk;
}; };
}; };
}; };
@ -97,11 +100,13 @@
} // flake-utils.lib.eachDefaultSystem (system: } // flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system}; let pkgs = nixpkgs.legacyPackages.${system};
in { in {
packages = { packages = rec {
bqn-vim = import ./pkgs/bqn-vim.nix { inherit pkgs; }; bqn-vim = import ./pkgs/bqn-vim.nix { inherit pkgs; };
bqn-nvim = import ./pkgs/bqn-nvim.nix { inherit pkgs; }; bqn-nvim = import ./pkgs/bqn-nvim.nix { inherit pkgs; };
sax2nf = import ./pkgs/sax2nf.nix { inherit pkgs; }; sax2nf = import ./pkgs/sax2nf.nix { inherit pkgs; };
shell-menu = import ./pkgs/shell-menu.nix { inherit pkgs; }; shell-menu = import ./pkgs/shell-menu.nix { inherit pkgs; };
pash = import ./pkgs/pash.nix { inherit pkgs; };
cpypsk = import ./pkgs/cpypsk.nix { inherit pkgs pash; };
}; };
}); });
} }

View File

@ -7,12 +7,14 @@ in {
imports = builtins.map (x: import x { inherit pkgs unstable extra common; }) [ imports = builtins.map (x: import x { inherit pkgs unstable extra common; }) [
./applications.nix ./applications.nix
./fetch.nix ./fetch.nix
./files.nix
./git.nix ./git.nix
./gpg.nix ./gpg.nix
./hm-settings.nix ./hm-settings.nix
./launcher.nix ./launcher.nix
./media.nix ./media.nix
./neovim.nix ./neovim.nix
./plasma.nix
./shell.nix ./shell.nix
./ssh.nix ./ssh.nix
./terminal.nix ./terminal.nix

21
home-manager/files.nix Normal file
View File

@ -0,0 +1,21 @@
{ ... }:
{
home.file."bin/xinitrc" = {
executable = true;
text = ''
#!/bin/sh -e
cd "$HOME"
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
eval $(dbus-launch --exit-with-session --sh-syntax)
fi
systemctl --user import-environment DISPLAY XAUTHORITY
if command -v dbus-update-activation-environment >/dev/null 2>&1; then
dbus-update-activation-environment DISPLAY XAUTHORITY
fi
exec startplasma-x11
'';
};
}

103
home-manager/plasma.nix Normal file
View File

@ -0,0 +1,103 @@
{ pkgs, extra, ... }:
{
programs.plasma = {
enable = true;
overrideConfig = true;
workspace = {
lookAndFeel = "org.kde.breezedark.desktop";
wallpaperPictureOfTheDay.provider = "simonstalenhag";
};
kscreenlocker = {
wallpaperPictureOfTheDay.provider = "simonstalenhag";
};
hotkeys.commands."launch-alacritty" = {
name = "Launch alacritty";
key = "Meta+Return";
command = "alacritty";
};
hotkeys.commands."cpypsk" = {
name = "Launch cpypsk";
key = "Meta+p";
command = "${extra.cpypsk}";
};
fonts = {
general = {
family = "SAX2 Nerd Font";
pointSize = 10;
};
};
panels = [
{
location = "bottom";
floating = true;
height = 44;
widgets = [
{
name = "org.kde.plasma.kickoff";
config = {
General.icon = "nix-snowflake-white";
};
}
{
name = "org.kde.plasma.icontasks";
config = {
General.launchers = [
"applications:thunderbird.desktop"
"applications:Alacritty.desktop"
"applications:firefox.desktop"
"applications:discord.desktop"
];
};
}
{
systemTray.items = {
shown = [
"org.kde.plasma.battery"
"org.kde.plasma.bluetooth"
"org.kde.plasma.networkmanagement"
"org.kde.plasma.volume"
];
};
}
{
digitalClock = {
calendar.firstDayOfWeek = "monday";
time.format = "24h";
};
}
];
}
];
window-rules = [
{
description = "alacritty";
match = {
window-class = {
value = "Alacritty";
type = "substring";
};
window-types = [ "normal" ];
};
apply = {
noborder = {
value = true;
apply = "force";
};
maximizehoriz = true;
maximizevert = true;
};
}
];
};
home.packages = [
extra.rc2nix
];
}

View File

@ -11,9 +11,9 @@
}; };
services.xserver = { services.xserver = {
enable = true; enable = true;
desktopManager.plasma5.enable = true;
displayManager.startx.enable = true; displayManager.startx.enable = true;
}; };
services.desktopManager.plasma6.enable = true;
# [SOUND] # [SOUND]
sound.enable = false; sound.enable = false;

View File

@ -49,7 +49,7 @@
services.xserver = { services.xserver = {
xkb = { xkb = {
layout = "fox,sus"; layout = "fox,sus";
options = "ctrl:nocaps,grp:alt_shift_toggle"; options = "ctrl:nocaps";
extraLayouts.sus = { extraLayouts.sus = {
description = "Swedish US"; description = "Swedish US";
languages = [ "se" ]; languages = [ "se" ];

13
pkgs/cpypsk.nix Normal file
View File

@ -0,0 +1,13 @@
{ pkgs, pash, ... }:
pkgs.writeScript "cpypsk" ''
#!/bin/sh
D="''${PASH_DIR:-$HOME/.local/share/pash}"
D="''${D%/}"
for f in "$D"/*.gpg; do
n="''${f#$D/}"
n="''${n%.gpg}"
printf '%s\n' "$n"
done | ${pkgs.rofi}/bin/rofi -dmenu | xargs ${pash} copy
''

14
pkgs/pash.nix Normal file
View File

@ -0,0 +1,14 @@
{ pkgs, ... }:
pkgs.stdenv.mkDerivation {
name = "pash";
src = pkgs.fetchFromGitHub {
owner = "rachelambda";
repo = "pash";
rev = "5fa05003ec63256dce2d6071a33f254439096e94";
hash = "sha256-AFAvtLWMWRSdRxZB3Mo9U9TD/x0s4m8tZMt7M3tRVlM=";
};
phases = [ "installPhase" ];
installPhase = ''
install -Dm755 $src/pash $out
'';
}