Home Gen509 @ 2025-05-03-15:04 by jonas@comfy-station

This commit is contained in:
Jonas Röger 2025-05-03 15:04:35 +02:00
parent 9ebf6152a0
commit 31a51c89c3
7 changed files with 248 additions and 181 deletions

View File

@ -1,11 +1,7 @@
{config, ...}: rec {
imports = [
../modules/home/borg.nix
../modules/home/firefox.nix
../modules/home/kdeconnect.nix
../modules/home/ssh.nix
../modules/home/themes/gtk
../modules/home/themes/qt
../modules/home/yubikey.nix
];
@ -22,6 +18,12 @@
hive.hyprland.enable = true;
hive.kitty.enable = true;
hive.nextcloud.enable = true;
hive.firefox = {
enable = true;
plasmaIntegration = true;
passFF = true;
};
hive.kdeconnect.enable = true;
hive.ranger.enable = true;
hive.swaync.enable = true;
hive.waybar.enable = true;

View File

@ -1,8 +1,6 @@
{config, ...}: rec {
imports = [
../modules/home/borg.nix
../modules/home/firefox.nix
../modules/home/kdeconnect.nix
../modules/home/ssh.nix
../modules/home/yubikey.nix
];

View File

@ -38,5 +38,9 @@
./home/wlogout
./home/wofi
./home/zsh
./home/firefox.nix
./home/kdeconnect.nix
./home/plasma.nix
./home/wallpaper.nix
];
}

View File

@ -1,54 +1,64 @@
{
config,
lib,
inputs,
pkgs,
...
}: {
programs.firefox = {
enable = true;
}: let
cfg = config.hive.firefox;
in {
options.hive.firefox = {
enable = lib.mkEnableOption "Enable Firefox";
plasmaIntegration = lib.mkEnableOption "Enable Plasma Integration";
passFF = lib.mkEnableOption "Enable PassFF";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
enable = true;
# Default profile
profiles.jonas = {
name = "Jonas";
id = 0;
isDefault = true;
# Default profile
profiles.jonas = {
name = "Jonas";
id = 0;
isDefault = true;
# Search
search = {
default = "DuckDuckGo";
order = ["DuckDuckGo" "Google"];
force = true;
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
# Search
search = {
default = "DuckDuckGo";
order = ["DuckDuckGo" "Google"];
force = true;
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
};
};
};
};
# Extensions
extensions = with inputs.firefox-addons.packages."x86_64-linux"; [
ublock-origin
violentmonkey
plasma-integration
passff
];
# Extensions
extensions = with inputs.firefox-addons.packages."x86_64-linux"; ([
ublock-origin
violentmonkey
]
++ lib.optional cfg.plasmaIntegration plasma-integration
++ lib.optional cfg.passFF passff);
};
};
home.packages =
lib.optional cfg.passFF
pkgs.passff-host;
};
home.packages = with pkgs; [
passff-host
];
}

View File

@ -1,4 +1,15 @@
{...}: {
services.kdeconnect.enable = true;
services.kdeconnect.indicator = false;
{
config,
lib,
...
}: let
cfg = config.hive.kdeconnect;
in {
options.hive.kdeconnect = {
enable = lib.mkEnableOption "Enable KDE Connect";
};
config = lib.mkIf cfg.enable {
services.kdeconnect.enable = true;
services.kdeconnect.indicator = false;
};
}

View File

@ -1,141 +1,167 @@
{
pkgs,
config,
lib,
pkgs,
...
}: {
home.file.".local/share/wallpaper" = {
source = ./static/wallpaper;
recursive = true;
};
# load hm-vars in x-session
xsession.enable = true;
}: let
cfg = config.hive.plasma;
in {
options.hive.plasma.enable = lib.mkEnableOption "Plasma configuration";
# Use kvantum-theme
home.sessionVariables = {
QT_STYLE_OVERRIDE = "kvantum";
};
config = lib.mkIf cfg.enable {
# load hm-vars in x-session
xsession.enable = true;
programs.konsole = {
enable = true;
defaultProfile = "default";
profiles = {
default = {
name = "default";
colorScheme = "Utterly-Nord-Konsole";
font = {
name = "Fira Code";
size = 10;
# Use kvantum-theme
home.sessionVariables = {
QT_STYLE_OVERRIDE = "kvantum";
};
# provide kvantum and nord theme
home.packages = [
pkgs.utterly-nord-plasma
pkgs.libsForQt5.qtstyleplugin-kvantum
];
programs.konsole = {
enable = true;
defaultProfile = "default";
profiles = {
default = {
name = "default";
colorScheme = "Utterly-Nord-Konsole";
font = {
name = "Fira Code";
size = 10;
};
};
};
};
# use kvantum theme
qt.enable = true;
qt.style.name = "kvantum";
# add nord like gtk theme
gtk = {
enable = true;
cursorTheme = {
package = pkgs.nordzy-cursor-theme;
name = "Nordzy-cursors";
};
theme = {
package = pkgs.nordic;
name = "Nordic";
};
iconTheme = {
package = pkgs.tela-circle-icon-theme;
name = "Tela-circle-nord";
};
};
programs.plasma = {
enable = true;
overrideConfig = true;
#
# Some high-level settings:
#
workspace = {
clickItemTo = "select";
lookAndFeel = "Utterly-Nord";
theme = "breeze";
colorScheme = "UtterlyNord";
cursorTheme = "Breeze";
wallpaper = "/home/jonas/.local/share/wallpaper/nord.png";
};
hotkeys.commands."launch-konsole" = {
name = "Launch Konsole";
key = "Meta+Return";
command = "konsole";
};
panels = [
# Windows-like panel at the bottom
{
location = "bottom";
widgets = [
"org.kde.plasma.kickoff"
"org.kde.plasma.pager"
# We can also configure the widgets. For example if you want to pin
# konsole and dolphin to the task-launcher the following widget will
# have that.
{
name = "org.kde.plasma.icontasks";
config = {
General.launchers = [
"applications:org.kde.dolphin.desktop"
"applications:org.kde.konsole.desktop"
];
};
}
"org.kde.plasma.marginsseperator"
"org.kde.plasma.systemtray"
"org.kde.plasma.digitalclock"
];
hiding = null;
}
];
#
# Some mid-level settings:
#
shortcuts = {
ksmserver = {
"Lock Session" = ["Screensaver" "Meta+Ctrl+Alt+L"];
};
kwin =
{
"Expose" = "Meta+,";
"Switch Window Down" = "Meta+J";
"Switch Window Left" = "Meta+H";
"Switch Window Right" = "Meta+L";
"Switch Window Up" = "Meta+K";
"Window Quick Tile Bottom" = "Meta+Shift+J";
"Window Quick Tile Left" = "Meta+Shift+H";
"Window Quick Tile Right" = "Meta+Shift+L";
"Window Quick Tile Top" = "Meta+Shift+K";
"Kill Window" = "Meta+Alt+Q";
"Window Close" = "Meta+Shift+Q";
}
// (
with lib; let
desktops = map toString (lists.range 1 8);
in
listToAttrs
(map
(i: {
name = "Switch to Desktop ${i}";
value = "Meta+${i}";
})
desktops)
// listToAttrs (map
(i: {
name = "Window to Desktop ${i}";
value = "Meta+Shift+${i}";
})
desktops)
);
};
#
# Some low-level settings:
#
configFile = {
"baloofilerc"."Basic Settings"."Indexing-Enabled".value = false;
"kwinrc"."org.kde.kdecoration2"."ButtonsOnLeft".value = "SF";
"kwinrc"."Desktops"."Number" = {
value = 8;
# Forces kde to not change this value (even through the settings app).
immutable = true;
};
};
};
};
# use kvantum theme
qt.enable = true;
qt.style.name = "kvantum";
programs.plasma = {
enable = true;
overrideConfig = true;
#
# Some high-level settings:
#
workspace = {
clickItemTo = "select";
lookAndFeel = "Utterly-Nord";
theme = "breeze";
colorScheme = "UtterlyNord";
cursorTheme = "Breeze";
wallpaper = "/home/jonas/.local/share/wallpaper/nord.png";
};
hotkeys.commands."launch-konsole" = {
name = "Launch Konsole";
key = "Meta+Return";
command = "konsole";
};
panels = [
# Windows-like panel at the bottom
{
location = "bottom";
widgets = [
"org.kde.plasma.kickoff"
"org.kde.plasma.pager"
# We can also configure the widgets. For example if you want to pin
# konsole and dolphin to the task-launcher the following widget will
# have that.
{
name = "org.kde.plasma.icontasks";
config = {
General.launchers = [
"applications:org.kde.dolphin.desktop"
"applications:org.kde.konsole.desktop"
];
};
}
"org.kde.plasma.marginsseperator"
"org.kde.plasma.systemtray"
"org.kde.plasma.digitalclock"
];
hiding = null;
}
];
#
# Some mid-level settings:
#
shortcuts = {
ksmserver = {
"Lock Session" = ["Screensaver" "Meta+Ctrl+Alt+L"];
};
kwin =
{
"Expose" = "Meta+,";
"Switch Window Down" = "Meta+J";
"Switch Window Left" = "Meta+H";
"Switch Window Right" = "Meta+L";
"Switch Window Up" = "Meta+K";
"Window Quick Tile Bottom" = "Meta+Shift+J";
"Window Quick Tile Left" = "Meta+Shift+H";
"Window Quick Tile Right" = "Meta+Shift+L";
"Window Quick Tile Top" = "Meta+Shift+K";
"Kill Window" = "Meta+Alt+Q";
"Window Close" = "Meta+Shift+Q";
}
// (
with lib; let
desktops = map toString (lists.range 1 8);
in
listToAttrs
(map
(i: {
name = "Switch to Desktop ${i}";
value = "Meta+${i}";
})
desktops)
// listToAttrs (map
(i: {
name = "Window to Desktop ${i}";
value = "Meta+Shift+${i}";
})
desktops)
);
};
#
# Some low-level settings:
#
configFile = {
"baloofilerc"."Basic Settings"."Indexing-Enabled".value = false;
"kwinrc"."org.kde.kdecoration2"."ButtonsOnLeft".value = "SF";
"kwinrc"."Desktops"."Number" = {
value = 8;
# Forces kde to not change this value (even through the settings app).
immutable = true;
};
};
};
}

View File

@ -0,0 +1,16 @@
{
config,
lib,
...
}: let
cfg = config.hive.wallpaper;
in {
options.hive.wallpaper.enable = lib.mkEnableOption "Wallpaper symlink";
config = lib.mkIf cfg.enable {
home.file.".local/share/wallpaper" = {
source = ./static/wallpaper;
recursive = true;
};
};
}