diff --git a/system/desktop.nix b/system/desktop.nix
index e29b02a6..7171de99 100644
--- a/system/desktop.nix
+++ b/system/desktop.nix
@@ -1,6 +1,5 @@
{ pkgs, username, ... }:
{
- imports = [ ./plasma.nix ];
home-manager.users.${username}.imports = [ ./home/desktop.nix ];
nixpkgs.config.chromium.commandLineArgs = "--password-store='gnome-libsecret' --enable-features=UseOzonePlatform --ozone-platform=wayland";
hardware.bluetooth.enable = true;
@@ -16,6 +15,11 @@
hunspell
hunspellDicts.en_GB-large
];
+ plasma6.excludePackages = with pkgs.kdePackages; [
+ plasma-browser-integration
+ konsole
+ kate
+ ];
};
security = {
polkit.enable = true;
@@ -36,7 +40,14 @@
};
gtk.iconCache.enable = true;
services = {
- dbus.packages = [ pkgs.gcr ];
+ displayManager.sddm = {
+ enable = true;
+ wayland.enable = true;
+ };
+ desktopManager.plasma6 = {
+ enable = true;
+ enableQt5Integration = true;
+ };
flatpak.enable = true;
printing.enable = true;
pipewire = {
diff --git a/system/home/icons/nix/nix-owo-transparent.png b/system/home/icons/nix/nix-owo-transparent.png
deleted file mode 100644
index e3f939fd..00000000
Binary files a/system/home/icons/nix/nix-owo-transparent.png and /dev/null differ
diff --git a/system/home/icons/nix/nix-owo-white.png b/system/home/icons/nix/nix-owo-white.png
deleted file mode 100644
index c43e400e..00000000
Binary files a/system/home/icons/nix/nix-owo-white.png and /dev/null differ
diff --git a/system/home/icons/nix/nix-shooting.png b/system/home/icons/nix/nix-shooting.png
deleted file mode 100644
index ca578cf8..00000000
Binary files a/system/home/icons/nix/nix-shooting.png and /dev/null differ
diff --git a/system/home/icons/nix/nix-snowflake-cute.png b/system/home/icons/nix/nix-snowflake-cute.png
deleted file mode 100644
index e2654f74..00000000
Binary files a/system/home/icons/nix/nix-snowflake-cute.png and /dev/null differ
diff --git a/system/home/icons/nix/nixos-confetti.png b/system/home/icons/nix/nixos-confetti.png
deleted file mode 100644
index 0874854b..00000000
Binary files a/system/home/icons/nix/nixos-confetti.png and /dev/null differ
diff --git a/system/home/lib/to_capital.nix b/system/home/lib/to_capital.nix
deleted file mode 100644
index 91620550..00000000
--- a/system/home/lib/to_capital.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-lib: string:
-with lib;
-let
- chars =
- let
- lc = strings.splitString "" string;
- in
- (lists.sublist 1 (lists.length lc - 2) lc);
-in
-(strings.concatStringsSep "" (
- (lists.singleton (strings.toUpper (lists.elemAt chars 0)))
- ++ (lists.sublist 1 (lists.length chars) chars)
-))
diff --git a/system/home/sway/default.nix b/system/home/sway/default.nix
deleted file mode 100644
index e88fb952..00000000
--- a/system/home/sway/default.nix
+++ /dev/null
@@ -1,257 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-{
- imports = [ ./waybar/default.nix ];
- stylix.targets.swaylock.useImage = false; # Using swaylock-effects instead
- home.packages = with pkgs; [
- libreoffice-fresh
- ffmpeg
- grim
- slurp
- swappy
- wl-clipboard
- swayimg
- swaybg
- (writeShellScriptBin "swaylockfx" ''
- ${swaylock-effects}/bin/swaylock --screenshots --clock --indicator --effect-blur 7x5 --effect-vignette 0.5:0.5
- '')
- (writeShellScriptBin "protonmail-setup-bridge" ''
- pkill -9 -f protonmail-bridge
- ${protonmail-bridge}/bin/protonmail-bridge -c
- swaymsg exec "${protonmail-bridge}/bin/protonmail-bridge -n"
- '')
- ];
- programs = {
- waybar.systemd.target = "sway-session.target";
- fuzzel = {
- enable = true;
- settings = {
- main = {
- icon-theme = config.gtk.iconTheme.name;
- icons-enabled = true;
- fields = "filename,name,generic,categories";
- fuzzy = true;
- filter-desktop = true;
- terminal = "${config.programs.alacritty.package}/bin/alacritty -e";
- lines = 24;
- width = 80;
- tabs = 4;
- layer = "overlay";
- };
- border = {
- width = 1;
- radius = 5;
- };
- };
- };
- swaylock = {
- enable = true;
- package = pkgs.swaylock-effects;
- };
- wlogout = {
- enable = true;
- layout = [
- {
- label = "reboot";
- action = "systemctl reboot";
- text = "Reboot";
- keybind = "r";
- }
- {
- label = "shutdown";
- action = "systemctl poweroff";
- text = "Shutdown";
- keybind = "s";
- }
- {
- label = "logout";
- action = "swaymsg exit";
- text = "Logout";
- keybind = "l";
- }
- ];
- };
- };
- services = {
- kanshi.systemdTarget = "sway-session.target";
- gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
- avizo = {
- enable = true;
- settings.default.image-opacity = lib.mkForce "1.0";
- };
- kdeconnect = {
- enable = true;
- indicator = true;
- };
- mako = {
- enable = true;
- anchor = "top-right";
- width = 600;
- height = 600;
- layer = "top";
- markup = true;
- maxVisible = 10;
- icons = true;
- iconPath = with config.gtk.iconTheme; "${package}/share/icons/${name}";
- borderRadius = 5;
- borderSize = 1;
- defaultTimeout = 0;
- };
- swayidle = {
- enable = true;
- timeouts = [
- {
- timeout = 60 * 15; # 15 minutes
- command = "swaylockfx";
- }
- ];
- };
- udiskie = {
- enable = true;
- notify = true;
- automount = true;
- tray = "never";
- };
- };
- wayland.windowManager.sway = {
- enable = true;
- package = pkgs.swayfx.overrideAttrs (old: {
- passthru.providedSessions = [ "sway" ];
- });
- swaynag.enable = true;
- systemd.enable = true;
- xwayland = true;
- checkConfig = false;
- config = {
- input = {
- "*" = {
- xkb_layout = "gb";
- xkb_options = "ctrl:nocaps";
- };
- "type:touchpad" = {
- tap = "enabled";
- natural_scroll = "enabled";
- };
- };
- seat = {
- "seat0" = {
- xcursor_theme = "${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}";
- };
- };
- modifier = "Mod4";
- terminal = "${config.programs.alacritty.package}/bin/alacritty";
- menu = "${config.programs.fuzzel.package}/bin/fuzzel";
- workspaceAutoBackAndForth = true;
- bars = [ ];
- gaps = {
- inner = 5;
- outer = 0;
- };
- startup = [
- { command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"; }
- { command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"; }
- { command = "${pkgs.dex}/bin/dex -a"; }
- { command = "${config.services.mako.package}/bin/mako"; }
- ];
- window = {
- border = 1;
- titlebar = false;
- commands = [
- {
- criteria.window_role = "(?:pop-up|bubble|dialog)";
- command = "floating enable";
- }
- {
- criteria.app_id = "(?:org\.kde\.polkit-kde-authentication-agent-1|Pinentry|pavucontrol|\.blueman-manager-wrapped|nm-connection-editor)";
- command = "floating enable";
- }
- {
- criteria.class = "(?:[Mm]atplotlib|.*\.py|Idl)";
- command = "floating enable";
- }
- {
- # Catch-all for file dialog windows
- criteria.title = "(?:Open|Save) (?:File|Folder|As)";
- command = "floating enable, resize set width 1030 height 710";
- }
- {
- # Inhibit idle when watching vidoes
- criteria.app_id = "(?:firefox|mpv)";
- command = "inhibit_idle fullscreen";
- }
- {
- # Window rules for game sessions.
- # Note: controllers don't reset idle timer
- criteria.class = "(?:steam_app|Minecraft).*";
- command = "floating enable, fullscreen enable, inhibit_idle focus";
- }
- ];
- };
- floating.border = 1;
- keybindings =
- let
- modifier = config.wayland.windowManager.sway.config.modifier;
- in
- lib.mkOptionDefault {
- # Movement
- "${modifier}+comma" = "workspace prev";
- "${modifier}+period" = "workspace next";
- "${modifier}+shift+comma" = "move workspace prev";
- "${modifier}+shift+period" = "move workspace next";
- "${modifier}+bracketleft" = "move workspace to output left";
- "${modifier}+bracketright" = "move workspace to output right";
-
- # Function keys
- ## Screenshot
- "Print" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.swappy}/bin/swappy -f -";
-
- ## Sound
- "XF86AudioMute" = "exec ${config.services.avizo.package}/bin/volumectl %";
- "XF86AudioMicMute" = "exec ${config.services.avizo.package}/bin/volumectl -m %";
- "XF86AudioRaiseVolume" = "exec ${config.services.avizo.package}/bin/volumectl -u + 5";
- "XF86AudioLowerVolume" = "exec ${config.services.avizo.package}/bin/volumectl -u - 5";
-
- ## Playback
- "XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
- "XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
- "XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
- "XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
-
- ## Brightness
- "XF86MonBrightnessUp" = "exec ${config.services.avizo.package}/bin/lightctl + 5";
- "XF86MonBrightnessDown" = "exec ${config.services.avizo.package}/bin/lightctl - 5";
-
- # System utilities
- "Mod4+Mod1+l" = "exec swaylockfx";
- "${modifier}+z" = "exec ${config.services.mako.package}/bin/makoctl restore";
- "${modifier}+Shift+z" = "exec ${config.services.mako.package}/bin/makoctl dismiss -a";
- "${modifier}+Shift+p" = "exec ${config.programs.wlogout.package}/bin/wlogout";
- "${modifier}+Shift+Return" = "exec ${config.programs.emacs.finalPackage}/bin/emacsclient -c";
- };
- };
- extraConfig = ''
- bindgesture swipe:right workspace prev
- bindgesture swipe:left workspace next
- corner_radius 5
- blur enable
- blur_xray disable
- blur_passes 3
- blur_radius 5
- shadows enable
- shadow_blur_radius 5
- layer_effects "system-menu" blur enable; blur_ignore_transparent enable; shadows enable
- layer_effects "gtk-layer-shell" blur enable; blur_ignore_transparent enable; shadows enable
- layer_effects "notifications" blur enable; blur_ignore_transparent enable; shadows enable
- layer_effects "launcher" blur enable; blur_ignore_transparent enable; shadows enable
- layer_effects "logout_dialog" blur enable; blur_ignore_transparent enable; shadows enable
- layer_effects "waybar" blur enable; blur_ignore_transparent enable; shadows enable
- layer_effects "avizo" blur enable; blur_ignore_transparent enable; shadows enable
- titlebar_separator enable
- '';
- };
- xdg.configFile."swappy/config".source = ./swappy.conf;
-}
diff --git a/system/home/sway/swappy.conf b/system/home/sway/swappy.conf
deleted file mode 100644
index dee88eb3..00000000
--- a/system/home/sway/swappy.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-[Default]
-save_dir=$HOME/Pictures/Screenshots/
-save_filename_format=swappy-%Y%m%d-%H%M%S.png
-show_panel=false
-line_size=5
-text_size=20
-text_font=sans-serif
-paint_mode=brush
-early_exit=false
-fill_shape=false
\ No newline at end of file
diff --git a/system/home/sway/waybar/default.nix b/system/home/sway/waybar/default.nix
deleted file mode 100644
index 7d379882..00000000
--- a/system/home/sway/waybar/default.nix
+++ /dev/null
@@ -1,390 +0,0 @@
-{ config, pkgs, ... }:
-{
- stylix.targets.waybar.enable = false;
- systemd.user.targets.tray.Unit = {
- Description = "Home Manager System Tray";
- Requires = [ "graphical-session.target" ];
- };
- programs.waybar = {
- enable = true;
- systemd.enable = true;
- settings.main = {
- name = "main";
- layer = "top";
- position = "top";
- # Layout
- "modules-left" = [
- "sway/window"
- "mpris"
- ];
- "modules-center" = [ "sway/workspaces" ];
- "modules-right" = [
- "custom/notification"
- "pulseaudio"
- "network"
- "bluetooth"
- "clock#calendar"
- "clock"
- "backlight"
- "battery"
- "custom/weather"
- "tray"
- ];
- # Module config
- "sway/workspaces" = {
- format = "{icon}";
- format-icons = {
- "1" = " ";
- "2" = " ";
- "3" = " ";
- "4" = " ";
- "5" = " ";
- "6" = " ";
- default = " ";
- urgent = " ";
- };
- all-outputs = false;
- persistent-workspaces = {
- "1" = [ ];
- "2" = [ ];
- "3" = [ ];
- "4" = [ ];
- "5" = [ ];
- "6" = [ ];
- };
- };
- "sway/window" = {
- "format" = "{title}";
- "max-length" = 50;
- "rewrite" = {
- "(.*) - GNU Emacs at (.*)" = " $1 [$2]";
- "(alacritty.*)" = " $1";
- "(.*) - mpv" = " $1";
- "swayimg: (.*)" = " $1";
- "swappy" = " swappy";
- "(btm)" = " Resource Usage [$1]";
- "(cava)" = " Music Visualiser [$1]";
- "(.*) - Thunar" = " $1";
- "Mozilla Firefox" = " $1";
- "(.*) — Mozilla Firefox" = " $1";
- "Nyxt - (.*)" = " $1";
- "(.*) - Chromium" = " $1";
- "(Signal.*)" = " $1";
- "((?:.*)WebCord.*)" = " $1";
- "(Cartridges.*)" = " $1";
- "([Ss]team.*)" = " $1";
- "(Prism Launcher.*)" = " Minecraft ($1)";
- "(.*)(?: *)PrusaSlicer-(.*)" = " $1 PrusaSlicer ($2)";
- "(.*)(?: *)PrusaSlicer G-code Viewer-(.*)" = " $1 G-code Viewer ($2)";
- "FreeCAD (.*)" = " FreeCAD $1";
- "(.*) - Blender.* " = " $1";
- "(X2Go Client)" = " $1";
- "(NoMachine|Nxplayer.bin) (.*)" = " $1 $2";
- };
- };
- mpris = {
- "format" = "{player_icon} {artist} - {title} {status_icon}";
- "tooltip-format" = "{player_icon} ({player}) {dynamic}";
- "title-len" = 64;
- "interval" = 1;
- "dynamic-order" = [
- "album"
- "artist"
- "title"
- "position"
- "length"
- ];
- "player-icons" = {
- "default" = " ";
- "emms" = " ";
- "firefox" = " ";
- "mpv" = " ";
- };
- "status-icons" = {
- "playing" = "";
- "paused" = "";
- "stopped" = "";
- };
- "ignored-players" = [ ];
- };
- pulseaudio = {
- scroll-step = 5;
- format = "{format_source}{icon}{volume}%";
- format-muted = "{format_source} ";
- format-source = " ";
- format-source-muted = " ";
- format-icons = {
- car = " ";
- default = [
- " "
- " "
- " "
- ];
- hands-free = " ";
- headset = " ";
- phone = " ";
- portable = " ";
- headphone = " ";
- };
- on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
- on-click-right = "${pkgs.pamixer}/bin/pamixer -t";
- on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5";
- on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5";
- };
- disk = {
- format = " {percentage_used}%";
- path = config.home.homeDirectory;
- };
- cpu = {
- format = " {usage}%";
- tooltip = false;
- };
- memory = {
- format = " {}%";
- };
- temperature = {
- critical-threshold = 80;
- format = "{icon} {temperatureC}°C";
- format-icons = [
- ""
- ""
- ""
- ];
- };
- network = {
- format-icons = [
- " "
- " "
- " "
- " "
- ];
- format-wifi = "{icon}";
- format-ethernet = " ";
- format-linked = " ";
- format-disconnected = " ";
- tooltip-format = "{essid} ({signalStrength}%)";
- on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
- };
- bluetooth = {
- format = "";
- format-disabled = "";
- format-off = "";
- format-on = "";
- format-connected = "";
- tooltip-format = "{status} | {device_alias}";
- on-click = "${pkgs.blueman}/bin/blueman-manager";
- };
- "clock#calendar" = {
- format = " {:%Y-%m-%d}";
- tooltip-format = "{calendar}";
- calendar = {
- mode = "month";
- mode-mon-col = 3;
- weeks-pos = "left";
- on-scroll = 1;
- format =
- let
- scheme = config.lib.stylix.scheme.withHashtag;
- in
- {
- months = "{}";
- weeks = "W{}";
- weekdays = "{}";
- days = "{}";
- today = "{}";
- };
- };
- actions = {
- on-scroll-up = "shift_up";
- on-scroll-down = "shift_down";
- };
- };
- clock.format = " {:%R}";
- backlight = {
- format = "{icon}";
- tooltip-format = "{percent}%";
- format-icons = [
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- ];
- };
- battery = {
- states = {
- warning = 20;
- critical = 10;
- };
- format = "{icon}";
- format-time = "{H}:{m}";
- format-charging = " ({time})";
- format-plugged = " ";
- format-warning = "{icon}{capacity}%";
- format-critical = "{icon}{capacity}% ({time})";
- tooltip-format = "{capacity}% | {power}W | {time}";
- format-icons = [
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- " "
- ];
- };
- "custom/notification" =
- let
- makoctl = "${config.services.mako.package}/bin/makoctl";
- jq = "${pkgs.jq}/bin/jq";
- in
- {
- exec = "( ${makoctl} list | ${jq} -e '.data[] | length > 0' >/dev/null && echo ' ' ) || echo ' ' ";
- format = "{}";
- on-click = "${makoctl} dismiss -a";
- interval = 3;
- };
- "custom/weather" =
- let
- date-format = "%Y-%m-%d";
- custom-indicator = "{ICON}{temp_C}({FeelsLikeC})";
- in
- {
- format = "{}°";
- tooltip = true;
- interval = 900; # Every 15 minutes
- exec = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
- return-type = "json";
- };
- tray = {
- icon-size = 20;
- show-passive-items = true;
- spacing = 5;
- };
- };
- style =
- let
- scheme = config.lib.stylix.scheme.withHashtag;
- alpha = "0.8";
- in
- ''
- * {
- all: unset;
- font-family: ${config.stylix.fonts.monospace.name};
- font-size: ${toString config.stylix.fonts.sizes.popups}px;
- }
-
- window {
- background: transparent;
- box-shadow: none;
- border: none;
- }
-
- window > box {
- color: ${scheme.base05};
- background: ${scheme.base00};
- margin: 5px 5px 0px;
- padding: 0px;
- border-top: 1px solid ${scheme.base04};
- border-radius: 5px;
- }
-
- tooltip {
- background: alpha(${scheme.base00}, ${alpha});
- border: 1px solid ${scheme.base0D};
- border-radius: 5px;
- box-shadow: none;
- }
-
- tooltip label {
- color: ${scheme.base05};
- border: none;
- padding: 5px;
- margin: 0px;
- }
-
- #workspaces,
- #window,
- #mpris,
- #pulseaudio,
- #network,
- #bluetooth,
- #backlight,
- #battery,
- #clock,
- #custom-notification,
- #custom-weather,
- #tray {
- margin: 0px;
- padding: 1px 5px;
- }
-
- #workspaces,
- #window,
- #tray,
- #backlight,
- #battery,
- #custom-weather {
- color: ${scheme.base05};
- }
-
- #workspaces button {
- background: transparent;
- color: ${scheme.base05};
- margin: 0px;
- padding: 0px 5px;
- }
- #workspaces button.persistent {
- color: ${scheme.base03};
- }
- #workspaces button.focused {
- color: ${scheme.base0D};
- }
- #workspaces button.urgent {
- color: ${scheme.base09};
- }
-
- #mpris {
- color: ${scheme.base04};
- }
-
- #custom-notification {
- color: ${scheme.base08};
- }
- #pulseaudio {
- color: ${scheme.base09};
- }
- #network {
- color: ${scheme.base0A};
- }
- #bluetooth {
- color: ${scheme.base0B};
- }
- #clock.calendar {
- color: ${scheme.base0C};
- }
- #clock {
- color: ${scheme.base0D};
- }
-
- #battery.warning {
- color: ${scheme.base09};
- }
- #battery.critical {
- color: ${scheme.base08};
- }
- #battery.charging,
- #battery.plugged {
- color: ${scheme.base0B};
- }
- '';
- };
-}
diff --git a/system/plasma.nix b/system/plasma.nix
deleted file mode 100644
index e87d20ca..00000000
--- a/system/plasma.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ pkgs, ... }:
-{
- environment.plasma6.excludePackages = with pkgs.kdePackages; [
- plasma-browser-integration
- konsole
- kate
- ];
- services = {
- displayManager.sddm = {
- enable = true;
- wayland.enable = true;
- };
- desktopManager.plasma6 = {
- enable = true;
- enableQt5Integration = true;
- };
- };
-}
diff --git a/system/sway.nix b/system/sway.nix
deleted file mode 100644
index a603ebfa..00000000
--- a/system/sway.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ pkgs, username, ... }:
-{
- environment = {
- sessionVariables.GRIM_DEFAULT_DIR = "$HOME/Pictures/Screenshots";
- systemPackages = [ pkgs.xarchiver ];
- };
- programs = {
- thunar = {
- enable = true;
- plugins = with pkgs.xfce; [
- thunar-archive-plugin
- thunar-volman
- ];
- };
- sway.enable = true;
- };
- services = {
- tumbler.enable = true;
- udisks2.enable = true;
- gvfs = {
- enable = true;
- package = pkgs.gnome3.gvfs;
- };
- greetd = {
- enable = true;
- settings =
- let
- default_session.command = "sway";
- in
- {
- inherit default_session;
- initial_session = {
- inherit (default_session) command;
- user = username;
- };
- };
- };
- };
- qt = {
- enable = true;
- style = "adwaita";
- platformTheme = "gnome";
- };
- xdg.portal = {
- enable = true;
- config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
- extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
- };
-}