diff --git a/common/flake.nix b/common/flake.nix
index 05bf7ab..1b299be 100644
--- a/common/flake.nix
+++ b/common/flake.nix
@@ -3,6 +3,7 @@
# NOTE if you add/change any inputs here also add them in the TOP level repo's flake.nix
home-manager.url = "github:rycee/home-manager/release-25.05";
ragenix.url = "github:yaxitech/ragenix";
+ nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
hyprland.url = "github:hyprwm/Hyprland";
};
@@ -27,6 +28,7 @@
imports = [
home-manager.nixosModules.default
ragenix.nixosModules.age
+ nix-flatpak.nixosModules.nix-flatpak
hyprland.nixosModules.default
./_home_manager
./options.nix
diff --git a/common/programs/default.nix b/common/programs/default.nix
index 82c2679..c56a1ab 100644
--- a/common/programs/default.nix
+++ b/common/programs/default.nix
@@ -13,6 +13,7 @@ in
./docker.nix
./podman.nix
./incus.nix
+ ./flatpaks.nix
./virt-manager.nix
];
config = {
diff --git a/common/programs/flatpaks.nix b/common/programs/flatpaks.nix
new file mode 100644
index 0000000..307fff2
--- /dev/null
+++ b/common/programs/flatpaks.nix
@@ -0,0 +1,66 @@
+{
+ config,
+ lib,
+ ...
+}:
+let
+ ccfg = import ../config.nix;
+ cfg_path = [
+ ccfg.custom_config_key
+ "programs"
+ "flatpaks"
+ ];
+ cfg = lib.attrsets.getAttrFromPath cfg_path config;
+in
+{
+ options =
+ { }
+ // lib.attrsets.setAttrByPath cfg_path {
+ enable = lib.mkEnableOption "flatpaks";
+ packages = lib.mkOption {
+ type = lib.types.listOf lib.types.str;
+ default = [ ];
+ description = "List of Flatpak package names to install.";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.flatpak = {
+ enable = true;
+ packages = cfg.packages;
+ overrides = {
+ global = {
+ Context.sockets = [
+ "wayland"
+ "x11"
+ ];
+ Context.devices = [ "dri" ]; # allow GPU access if desired
+ Environment = {
+ XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
+ GTK_THEME = "Adwaita:dark";
+ # Force wayland as much as possible.
+ ELECTRON_OZONE_PLATFORM_HINT = "auto"; # or 'auto'
+ GTK_USE_PORTAL = "1";
+ OZONE_PLATFORM = "wayland";
+ QT_QPA_PLATFORM = "xcb"; # force XCB for Flatpaks (XWayland)
+ };
+ };
+ "org.signal.Signal" = {
+ Environment = {
+ SIGNAL_PASSWORD_STORE = "gnome-libsecret";
+ };
+ Context = {
+ sockets = [
+ "xfg-settings"
+ ];
+ };
+ };
+ "com.google.Chrome" = {
+ Environment = {
+ CHROME_EXTRA_ARGS = "--enable-features=WaylandWindowDecorations --ozone-platform-hint=auto";
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/flakes/common/flake.nix b/flakes/common/flake.nix
deleted file mode 100644
index bed3399..0000000
--- a/flakes/common/flake.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-let
- utils = import ./utils.nix;
-in
-with utils;
-{
- description = "Common NixOS configuration modules and Home Manager modules that require not other inputs beyond nixpkgs or home-manager itself. This is made by me for me and not designed to be general purpose for anyone else, but could be useful nontheless.";
- inputs = { };
- outputs =
- {
- ...
- }:
- {
- nixosModules = importAll ./nix_modules;
- homeManagerModules = importAll ./hm_modules;
- };
-}
diff --git a/flakes/common/hm_modules/alacritty.nix b/flakes/common/hm_modules/alacritty.nix
deleted file mode 100644
index 0794c15..0000000
--- a/flakes/common/hm_modules/alacritty.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ ... }:
-{
- programs.alacritty = {
- enable = true;
- settings = {
- window = {
- decorations = "None";
- dynamic_title = false;
- };
- colors = {
- primary = {
- foreground = "#e0e0e0";
- background = "#262626";
- };
- normal = {
- # Catppuccin Coal
- black = "#1f1f1f";
- red = "#f38ba8";
- green = "#a6e3a1";
- yellow = "#f9e2af";
- blue = "#89b4fa";
- magenta = "#cba6f7";
- cyan = "#89dceb";
- white = "#e0e0e0";
- };
- };
- font = {
- normal = { family = "JetBrainsMonoNL Nerd Font"; style = "Regular"; };
- size = 12.0;
- };
- };
- };
-}
-
diff --git a/flakes/common/hm_modules/atuin.nix b/flakes/common/hm_modules/atuin.nix
deleted file mode 100644
index 021745f..0000000
--- a/flakes/common/hm_modules/atuin.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ ... }:
-# TODO setup auto secret/login for sync
-{
- programs.atuin = {
- enable = true;
- enableZshIntegration = true; # TODO make dynamic?
- flags = [ "--disable-up-arrow" ];
- settings = {
- workspaces = true;
- exit-mode = "return-query";
- enter_accept = true;
- sync_address = "https://atuin.joshuabell.xyz";
- sync = {
- records = true;
- };
- };
- };
-}
diff --git a/flakes/common/hm_modules/de_sway/default.nix b/flakes/common/hm_modules/de_sway/default.nix
deleted file mode 100644
index 09539e5..0000000
--- a/flakes/common/hm_modules/de_sway/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ ... }:
-{
- imports = [
- ./theme.nix
- ./sway.nix
- ./waybar.nix
- ./wofi.nix
- ./swaync.nix
- ./swaylock.nix
- ./polkit.nix
- ];
-}
diff --git a/flakes/common/hm_modules/de_sway/polkit.nix b/flakes/common/hm_modules/de_sway/polkit.nix
deleted file mode 100644
index 785abb2..0000000
--- a/flakes/common/hm_modules/de_sway/polkit.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ ... }:
-{
- services.polkit-gnome.enable = true;
-}
diff --git a/flakes/common/hm_modules/de_sway/sway.nix b/flakes/common/hm_modules/de_sway/sway.nix
deleted file mode 100644
index 9854d05..0000000
--- a/flakes/common/hm_modules/de_sway/sway.nix
+++ /dev/null
@@ -1,180 +0,0 @@
-{
- config,
- ...
-}:
-
-{
- wayland.windowManager.sway = {
- enable = true;
- xwayland = true;
-
- systemd.enable = true;
-
- config = rec {
- modifier = "Mod4"; # SUPER
- terminal = "foot";
- menu = "wofi --show drun";
-
- # Per-output workspace mapping (user can extend via extraOptions)
- # Example (left as defaults): users can add `output HDMI-A-1 workspace 1,3,5` in extraOptions
-
- input = {
- "type:keyboard" = {
- xkb_layout = "us";
- xkb_options = "caps:escape";
- };
- "type:touchpad" = {
- natural_scroll = "enabled";
- tap = "enabled";
- dwt = "enabled";
- };
- # Disable focus follows mouse to avoid accidental focus changes
- # In Sway this behavior is controlled by focus_follows_mouse
- };
-
- focus = {
- followMouse = "no";
- # onWindowActivation = "urgent"; # don't steal focus; mark urgent instead
- };
-
- gaps = {
- inner = 2;
- outer = 5;
- smartGaps = false;
- smartBorders = "on";
- };
-
- colors = {
- focused = {
- background = "#444444";
- border = "#555555";
- childBorder = "#444444";
- indicator = "#595959";
- text = "#f1f1f1";
- };
- unfocused = {
- background = "#222222";
- border = "#333333";
- childBorder = "#222222";
- indicator = "#292d2e";
- text = "#888888";
- };
- };
-
- window = {
- border = 1;
- titlebar = false;
- commands = [
- # Bitwarden chrome popup as floating example from Hyprland rules
- {
- criteria = {
- app_id = "chrome-nngceckbapebfimnlniiiahkandclblb-Default";
- };
- command = "floating enable";
- }
- {
- criteria = {
- app_id = "pavucontrol";
- };
- command = "floating enable, move position center, resize set 620 1200";
- }
- {
- criteria = {
- class = "Google-chrome";
- window_role = "pop-up";
- };
- command = "floating enable, move position center, resize set 720 480";
- }
- {
- criteria = {
- window_role = "pop-up";
- };
- command = "floating enable, move position center, resize set 640 420";
- }
- {
- criteria = {
- window_role = "About";
- };
- command = "floating enable, move position center, resize set 640 420";
- }
- ];
- };
-
- # Keybindings mirroring Hyprland
- keybindings = {
- # Apps
- "${modifier}+return" = "exec ${config.wayland.winfowManager.sway.config.terminal}";
- "${modifier}+space" = "exec pkill wofi || wofi --show drun";
- "${modifier}+q" = "kill";
- "${modifier}+shift+Escape" = "exit";
- "${modifier}+shift+q" = "exec swaylock";
- "${modifier}+f" = "floating toggle";
-
- # Focus
- "${modifier}+h" = "focus left";
- "${modifier}+l" = "focus right";
- "${modifier}+k" = "focus up";
- "${modifier}+j" = "focus down";
-
- # Workspaces (numbers and vim-like mirror)
- "${modifier}+1" = "workspace number 1";
- "${modifier}+n" = "workspace number 1";
- "${modifier}+2" = "workspace number 2";
- "${modifier}+m" = "workspace number 2";
- "${modifier}+3" = "workspace number 3";
- "${modifier}+comma" = "workspace number 3";
- "${modifier}+4" = "workspace number 4";
- "${modifier}+period" = "workspace number 4";
- "${modifier}+5" = "workspace number 5";
- "${modifier}+slash" = "workspace number 5";
- "${modifier}+6" = "workspace number 6";
- "${modifier}+7" = "workspace number 7";
- "${modifier}+8" = "workspace number 8";
- "${modifier}+9" = "workspace number 9";
- "${modifier}+0" = "workspace number 10";
-
- # Move windows
- "${modifier}+shift+h" = "move left";
- "${modifier}+shift+l" = "move right";
- "${modifier}+shift+k" = "move up";
- "${modifier}+shift+j" = "move down";
- "${modifier}+shift+1" = "move container to workspace number 1";
- "${modifier}+shift+n" = "move container to workspace number 1";
- "${modifier}+shift+2" = "move container to workspace number 2";
- "${modifier}+shift+m" = "move container to workspace number 2";
- "${modifier}+shift+3" = "move container to workspace number 3";
- "${modifier}+shift+comma" = "move container to workspace number 3";
- "${modifier}+shift+4" = "move container to workspace number 4";
- "${modifier}+shift+period" = "move container to workspace number 4";
- "${modifier}+shift+5" = "move container to workspace number 5";
- "${modifier}+shift+slash" = "move container to workspace number 5";
- "${modifier}+shift+6" = "move container to workspace number 6";
- "${modifier}+shift+7" = "move container to workspace number 7";
- "${modifier}+shift+8" = "move container to workspace number 8";
- "${modifier}+shift+9" = "move container to workspace number 9";
- "${modifier}+shift+0" = "move container to workspace number 10";
-
- "${modifier}+left" = "resize shrink width 10 px or 10 ppt";
- "${modifier}+down" = "resize shrink height 10 px or 10 ppt";
- "${modifier}+up" = "resize grow height 10 px or 10 ppt";
- "${modifier}+right" = "resize grow width 10 px or 10 ppt";
-
- # Mouse bindings (Mod + drag)
- "${modifier}+button1" = "move";
- "${modifier}+button3" = "resize";
-
- # Screenshot
- "Print" = "exec grim -g \"$(slurp)\" - | wl-copy";
- };
-
- bars = [ ]; # Use Waybar via Home Manager
- startup = [
- {
- command = "exec sh -c 'sleep 0.01; swaymsg workspace number 7 ; sleep 0.01; swaymsg workspace number 1'";
- }
- # Waybar is managed by Home Manager systemd unit
- # { command = "pgrep waybar >/dev/null || waybar"; }
- ];
- };
- };
-}
diff --git a/flakes/common/hm_modules/de_sway/swaylock.nix b/flakes/common/hm_modules/de_sway/swaylock.nix
deleted file mode 100644
index 86243aa..0000000
--- a/flakes/common/hm_modules/de_sway/swaylock.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ ... }:
-{
- programs.swaylock = {
- enable = true;
- settings = {
- color = "#000000";
- indicator-caps-lock = true;
- indicator-idle-visible = true;
- indicator-radius = 100;
- indicator-thickness = 10;
- font = "JetBrainsMono Nerd Font Regular";
- font-size = 20;
- };
- };
-}
diff --git a/flakes/common/hm_modules/de_sway/swaync.nix b/flakes/common/hm_modules/de_sway/swaync.nix
deleted file mode 100644
index a60df5d..0000000
--- a/flakes/common/hm_modules/de_sway/swaync.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ ... }:
-{
- services.swaync = {
- enable = true;
- settings = {
- ignore = [ "com.spotify.Client" ];
- positionX = "right";
- positionY = "top";
- layer = "overlay";
- control-center-layer = "top";
- layer-shell = true;
- cssPriority = "application";
- control-center-margin-top = 0;
- control-center-margin-bottom = 0;
- control-center-margin-right = 0;
- control-center-margin-left = 0;
- notification-2fa-action = true;
- notification-inline-replies = false;
- notification-icon-size = 64;
- notification-body-image-height = 100;
- notification-body-image-width = 200;
- timeout = 10;
- timeout-low = 5;
- timeout-critical = 0;
- control-center-width = 500;
- control-center-height = 600;
- notification-window-width = 500;
- keyboard-shortcuts = true;
- image-visibility = "when-available";
- transition-time = 200;
- hide-on-clear = false;
- hide-on-action = true;
- script-fail-notify = true;
- widgets = [
- "inhibitors"
- "title"
- "dnd"
- "volume"
- "backlight"
- "mpris"
- "buttons-grid#quick"
- "notifications"
- ];
- widget-config = {
- inhibitors = {
- text = "Inhibitors";
- button-text = "Clear All";
- clear-all-button = true;
- };
- title = {
- text = "Notifications";
- clear-all-button = true;
- button-text = "Clear All";
- };
- dnd.text = "Do Not Disturb";
- mpris = {
- image-size = 96;
- image-radius = 12;
- };
- volume = {
- label = "";
- show-per-app = true;
- };
- backlight = {
- label = "";
- device = "intel_backlight";
- };
- # "buttons-grid#quick" = {
- # columns = 4;
- # icon-size = 20;
- # actions = [
- # { label = ""; tooltip = "Shutdown"; command = "confirm-action 'systemctl poweroff' 'Shutdown?'"; }
- # { label = ""; tooltip = "Reboot"; command = "confirm-action 'systemctl reboot' 'Reboot?'"; }
- # { label = ""; tooltip = "Logout"; command = "confirm-action 'swaymsg exit' 'Logout?'"; }
- # ];
- # };
- };
- };
- style = ''
- .control-center { background: #1a1b26; border: 2px solid #7dcae4; border-radius: 12px; }
- .control-center-list { background: transparent; }
- .control-center .notification-row:focus, .control-center .notification-row:hover { opacity: 1; background: #24283b; }
- .notification { border-radius: 8px; margin: 6px 12px; box-shadow: 0 0 0 1px rgba(125,196,228,.3), 0 1px 3px 1px rgba(0,0,0,.7), 0 2px 6px 2px rgba(0,0,0,.3); padding: 0; }
- .widget-title { margin: 8px; font-size: 1.5rem; color: #c0caf5; }
- .widget-dnd { margin: 8px; font-size: 1.1rem; color: #c0caf5; }
- .widget-dnd > switch { font-size: initial; border-radius: 8px; background: #414868; border: 1px solid #7dcae4; }
- .widget-dnd > switch:checked { background: #7dcae4; }
- .widget-mpris { color: #c0caf5; background: #24283b; padding: 8px; margin: 8px; border-radius: 8px; }
- .widget-mpris-player { padding: 8px; margin: 8px; }
- .widget-mpris-title { font-weight: bold; font-size: 1.25rem; }
- .widget-mpris-subtitle { font-size: 1.1rem; color: #9ece6a; }
- .widget-volume, .widget-backlight, .widget-menubar { background: #24283b; padding: 8px; margin: 8px; border-radius: 8px; color: #c0caf5; }
- .widget-menubar .menu-item button { background: #1f2335; color: #c0caf5; border-radius: 8px; padding: 6px 10px; margin: 4px; border: 1px solid #2e3440; font-family: "JetBrainsMonoNL Nerd Font"; }
- .widget-menubar .menu-item button:hover { background: #414868; border-color: #7dcae4; }
- .topbar-buttons button { border: none; background: transparent; color: #c0caf5; font-size: 1.1rem; border-radius: 8px; margin: 0 4px; padding: 8px; }
- .topbar-buttons button:hover { background: #414868; }
- .topbar-buttons button:active { background: #7dcae4; color: #1a1b26; }
- '';
- };
-}
diff --git a/flakes/common/hm_modules/de_sway/theme.nix b/flakes/common/hm_modules/de_sway/theme.nix
deleted file mode 100644
index 5a3fbf7..0000000
--- a/flakes/common/hm_modules/de_sway/theme.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ pkgs, ... }:
-{
- home.pointerCursor = {
- gtk.enable = true;
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 16;
- };
- gtk = {
- enable = true;
- theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; };
- iconTheme = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; };
- font = { name = "Sans"; size = 11; };
- };
-}
diff --git a/flakes/common/hm_modules/de_sway/waybar.nix b/flakes/common/hm_modules/de_sway/waybar.nix
deleted file mode 100644
index cf2afff..0000000
--- a/flakes/common/hm_modules/de_sway/waybar.nix
+++ /dev/null
@@ -1,246 +0,0 @@
-{ ... }:
-{
- programs.waybar = {
- enable = true;
- systemd.enable = true;
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 28;
- spacing = 6;
- margin-top = 0;
- margin-bottom = 0;
- margin-left = 10;
- margin-right = 10;
-
- modules-left = [
- "sway/workspaces"
- ];
- modules-center = [
- "clock"
- "temperature"
- "cpu"
- "memory"
- "disk"
- ];
- modules-right = [
- "battery"
- "battery#bat2"
- "pulseaudio"
- "network"
- "bluetooth"
- "power-profiles-daemon"
- "backlight"
- "custom/notifications"
- "sway/language"
- "tray"
- "custom/power"
- ];
-
- "sway/workspaces" = {
- format = "{icon}";
- format-icons = {
- "1" = "一";
- "2" = "二";
- "3" = "三";
- "4" = "四";
- "5" = "五";
- "6" = "六";
- "7" = "七";
- "8" = "八";
- "9" = "九";
- "10" = "十";
- "11" = "十一";
- "12" = "十二";
- "13" = "十三";
- "14" = "十四";
- "15" = "十五";
- "16" = "十六";
- "17" = "十七";
- "18" = "十八";
- "19" = "十九";
- "20" = "二十";
- };
- disable-scroll = false;
- };
-
- # CENTER
- clock = {
- format = "{:%b %d, %H:%M}";
- tooltip-format = "{:%Y %B}\n{calendar}";
- };
-
- temperature = {
- thermal-zone = 2;
- hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
- critical-threshold = 80;
- format-critical = " {temperatureC}°C";
- format = " {temperatureC}°C";
- };
-
- cpu = {
- format = " {usage}%";
- tooltip = true;
- on-click = "btop";
- };
-
- memory = {
- format = " {}%";
- on-click = "btop";
- };
-
- disk = {
- interval = 30;
- format = " {percentage_used}%";
- path = "/";
- on-click = "btop";
- };
-
- # RIGHT
- "battery" = {
- "states" = {
- # "good"= 95;
- "warning" = 30;
- "critical" = 15;
- };
- "format" = "{capacity}% {icon}";
- "format-full" = "{capacity}% {icon}";
- "format-charging" = "{capacity}% ";
- "format-plugged" = "{capacity}% ";
- "format-alt" = "{time} {icon}";
- # "format-good"= ""; // An empty format will hide the module
- # "format-full"= "";
- "format-icons" = [
- ""
- ""
- ""
- ""
- ""
- ];
- };
- "battery#bat2" = {
- "bat" = "BAT2";
- };
-
- pulseaudio = {
- format = "{icon} {volume}%";
- format-bluetooth = " {volume}%";
- format-bluetooth-muted = " ";
- format-muted = " ";
- format-source = " {volume}%";
- format-source-muted = " ";
- format-icons = {
- headphone = "";
- hands-free = "";
- headset = "";
- phone = "";
- portable = "";
- car = "";
- default = [
- ""
- ""
- ""
- ];
- };
- scroll-step = 5;
- on-click = "pavucontrol";
- on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
- };
-
- network = {
- format-wifi = " {essid} ({signalStrength}%)";
- format-ethernet = " {ipaddr}/{cidr}";
- tooltip-format = "{ifname} via {gwaddr} ";
- format-linked = " {ifname} (No IP)";
- format-disconnected = " Disconnected";
- # on-click = "wofi-wifi-menu";
- # on-click-right = "nmcli radio wifi toggle";
- };
-
- bluetooth = {
- format = " {status}";
- format-connected = " {device_alias}";
- format-connected-battery = " {device_alias} {device_battery_percentage}%";
- tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
- tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
- tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
- tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
- # on-click = "wofi-bluetooth-menu";
- # on-click-right = "bluetoothctl power toggle";
- };
-
- "power-profiles-daemon" = {
- format = "{icon}";
- "tooltip-format" = "Power profile: {profile}\nDriver: {driver}";
- tooltip = true;
- "format-icons" = {
- default = "";
- performance = "";
- balanced = "";
- "power-saver" = "";
- };
- };
-
- backlight = {
- format = "{percent}% {icon}";
- "format-icons" = [
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ];
- };
-
- "custom/notifications" = {
- format = "{icon} {}";
- format-icons = {
- notification = "";
- none = "";
- dnd-notification = "";
- dnd-none = "";
- inhibited-notification = "";
- inhibited-none = "";
- dnd-inhibited-notification = "";
- dnd-inhibited-none = "";
- };
- return-type = "json";
- exec-if = "which swaync-client";
- exec = "swaync-client -swb";
- on-click = "swaync-client -t -sw";
- on-click-right = "swaync-client -d -sw";
- escape = true;
- tooltip = false;
- };
-
- "sway/language" = {
- format = "{}";
- };
-
- "tray" = {
- "spacing" = 10;
- };
-
- "custom/power" = {
- format = "⏻ ";
- tooltip = false;
- menu = "on-click";
- "menu-file" = ./waybar/power_menu.xml;
- "menu-actions" = {
- shutdown = "shutdown 0";
- reboot = "reboot";
- logout = "loginctl terminate-session $(loginctl list-sessions | grep seat0 | awk '{print $1}')";
- };
- };
-
- };
- };
-
- style = builtins.readFile ./waybar/waybar.css;
- };
-}
diff --git a/flakes/common/hm_modules/de_sway/waybar/power_menu.xml b/flakes/common/hm_modules/de_sway/waybar/power_menu.xml
deleted file mode 100644
index a061b18..0000000
--- a/flakes/common/hm_modules/de_sway/waybar/power_menu.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
diff --git a/flakes/common/hm_modules/de_sway/waybar/waybar.css b/flakes/common/hm_modules/de_sway/waybar/waybar.css
deleted file mode 100644
index efeba06..0000000
--- a/flakes/common/hm_modules/de_sway/waybar/waybar.css
+++ /dev/null
@@ -1,101 +0,0 @@
-* {
- /* `otf-font-awesome` is required to be installed for icons */
- font-family: "JetBrainsMonoNL Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- font-size: 14px;
- border: none;
- border-radius: 0;
- min-height: 0;
- color: #f1f1f1;
-}
-
-window#waybar {
- background: transparent;
-}
-
-#workspaces button.focused {
- background-color: rgba(220, 220, 220, 0.2);
-}
-
-#workspaces button.urgent {
- background-color: rgba(214, 82, 82, 0.3);
-}
-
-button,
-#clock,
-#battery,
-#cpu,
-#memory,
-#disk,
-#temperature,
-#backlight,
-#network,
-#pulseaudio,
-#wireplumber,
-#custom-media,
-#custom-notifications,
-#custom-power,
-#tray,
-#mode,
-#idle_inhibitor,
-#scratchpad,
-#power-profiles-daemon,
-#bluetooth,
-#language,
-#mpd {
- padding: 0 5px;
- color: #f1f1f1;
- background-color: rgba(220, 220, 220, 0.1);
- border-radius: 6px;
-}
-
-
-button:hover,
-#clock:hover,
-#battery:hover,
-#cpu:hover,
-#memory:hover,
-#disk:hover,
-#temperature:hover,
-#backlight:hover,
-#network:hover,
-#pulseaudio:hover,
-#wireplumber:hover,
-#custom-media:hover,
-#custom-notifications:hover,
-#tray:hover,
-#mode:hover,
-#idle_inhibitor:hover,
-#scratchpad:hover,
-#power-profiles-daemon:hover,
-#bluetooth:hover,
-#language:hover,
-#mpd:hover {
- color: #f1f1f1;
- background-color: rgba(220, 220, 220, 0.2);
- border-radius: 6px;
-}
-
-#power-profiles-daemon {
- padding-right: 15px;
-}
-
-#power-profiles-daemon.performance {
- color: #fff7d6;
-}
-
-#power-profiles-daemon.balanced {
- color: #d6efff;
-}
-
-#power-profiles-daemon.power-saver {
- color:#dcffd6;
-}
-
-#tray>.passive {
- -gtk-icon-effect: dim;
-}
-
-#tray>.needs-attention {
- -gtk-icon-effect: highlight;
- background-color: #eb4d4b;
-}
diff --git a/flakes/common/hm_modules/de_sway/wofi.nix b/flakes/common/hm_modules/de_sway/wofi.nix
deleted file mode 100644
index 8c0ba40..0000000
--- a/flakes/common/hm_modules/de_sway/wofi.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ ... }:
-{
- programs.wofi = {
- enable = true;
- settings = {
- width = 500;
- height = 600;
- location = "bottom";
- show = "drun";
- prompt = "...";
- filter_rate = 100;
- allow_markup = true;
- no_actions = true;
- halign = "fill";
- orientation = "vertical";
- content_halign = "fill";
- insensitive = true;
- allow_images = true;
- image_size = 40;
- gtk_dark = true;
- };
- };
-}
diff --git a/flakes/common/hm_modules/direnv.nix b/flakes/common/hm_modules/direnv.nix
deleted file mode 100644
index b36ce49..0000000
--- a/flakes/common/hm_modules/direnv.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ ... }:
-{
- programs.direnv = {
- enable = true;
- enableZshIntegration = true;
- nix-direnv.enable = true;
- config = {
- nix-direnv = true;
- global = {
- strict_env = true;
- load_dotenv = true;
- hide_env_diff = true;
- };
- whitelist = {
- prefix = [
- "~/projects"
- "~/.config"
- "~/.local/share/git_worktrees/"
- ];
- };
- };
- };
-}
diff --git a/flakes/common/hm_modules/foot.nix b/flakes/common/hm_modules/foot.nix
deleted file mode 100644
index d52af61..0000000
--- a/flakes/common/hm_modules/foot.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ ... }:
-{
- programs.foot = {
- enable = true;
-
- # This renders to ~/.config/foot/foot.ini
- settings = {
- main = {
- # Use the same font and size as your Kitty config
- font = "JetBrainsMonoNL Nerd Font:size=12";
-
- # Initial window size in character cells (Kitty used 160c x 55c)
- "initial-window-size-chars" = "160x55";
- };
-
- colors = {
- # Background opacity (1.0 = opaque)
- alpha = "0.94";
-
- # Foreground/background
- foreground = "e0e0e0";
- background = "262626";
-
- # 16-color palette
- # normal (0–7)
- regular0 = "1f1f1f"; # black
- regular1 = "f38ba8"; # red
- regular2 = "a6e3a1"; # green
- regular3 = "f9e2af"; # yellow
- regular4 = "89b4fa"; # blue
- regular5 = "cba6f7"; # magenta
- regular6 = "89dceb"; # cyan
- regular7 = "e0e0e0"; # white
-
- # bright (8–15)
- bright0 = "565656"; # bright black
- bright1 = "f38ba8"; # bright red
- bright2 = "a6e3a1"; # bright green
- bright3 = "f9e2af"; # bright yellow
- bright4 = "89b4fa"; # bright blue
- bright5 = "cba6f7"; # bright magenta
- bright6 = "89dceb"; # bright cyan
- bright7 = "ffffff"; # bright white
- };
- };
- };
-}
diff --git a/flakes/common/hm_modules/git.nix b/flakes/common/hm_modules/git.nix
deleted file mode 100644
index 34e6d18..0000000
--- a/flakes/common/hm_modules/git.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ ... }:
-{
- programs.git = {
- enable = true;
- # TODO make configurable
- userEmail = "ringofstorms@gmail.com";
- userName = "RingOfStorms (Joshua Bell)";
-
- extraConfig = {
- core.pager = "bat";
- core.editor = "nano";
-
- pull.rebase = false;
-
- init.defaultBranch = "main";
-
- rerere.enabled = true;
- };
-
- difftastic = {
- enable = true;
- background = "dark";
- };
-
- ignores = [
- # --------------
- # Intellij
- # --------------
- "*.iml"
- # --------------
- # MAC OS
- # --------------
- ".DS_Store"
- ".AppleDouble"
- ".LSOverride"
- # Icon must end with two \r
- "Icon"
- # Thumbnails
- "._*"
- # Files that might appear in the root of a volume
- ".DocumentRevisions-V100"
- ".fseventsd"
- ".Spotlight-V100"
- ".TemporaryItems"
- ".Trashes"
- ".VolumeIcon.icns"
- ".com.apple.timemachine.donotpresent"
-
- # Directories potentially created on remote AFP share
- ".AppleDB"
- ".AppleDesktop"
- "Network Trash Folder"
- "Temporary Items"
- ".apdisk"
-
- # direnv things
- ".direnv"
-
- # local only files
- "*.local"
-
- # AI tooling
- ".aider*"
- "aider"
- ];
- };
-}
diff --git a/flakes/common/hm_modules/kitty.nix b/flakes/common/hm_modules/kitty.nix
deleted file mode 100644
index 236c6ef..0000000
--- a/flakes/common/hm_modules/kitty.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ ... }:
-{
- # Enable Kitty terminal
- programs.kitty = {
- enable = true;
-
- settings = {
- # Window settings
- background_opacity = 1.0;
- os_window_class = "kitty";
- remember_window_size = false;
- placement_strategy = "center";
- initial_window_width = "160c";
- initial_window_height = "55c";
-
- # Remove window borders
- hide_window_decorations = "titlebar-only";
- tab_title_template = "none";
- active_tab_title_template = "none";
- draw_minimal_borders = "yes";
- window_border_width = "0.1pt";
-
- # Colors (Catppuccin Coal)
- foreground = "#e0e0e0";
- background = "#262626";
- color0 = "#1f1f1f";
- color1 = "#f38ba8";
- color2 = "#a6e3a1";
- color3 = "#f9e2af";
- color4 = "#89b4fa";
- color5 = "#cba6f7";
- color6 = "#89dceb";
- color7 = "#e0e0e0";
- color8 = "#565656";
- color9 = "#f38ba8";
- color10 = "#a6e3a1";
- color11 = "#f9e2af";
- color12 = "#89b4fa";
- color13 = "#cba6f7";
- color14 = "#89dceb";
- color15 = "#ffffff";
-
- # Font settings
- font_family = "JetBrainsMonoNL Nerd Font";
- font_size = 12.0;
- bold_font = "auto";
- italic_font = "auto";
- italic_bold_font = "auto";
- };
-
- # If you want to include extra configuration this way instead of through the main `settings` attribute
- extraConfig = ''
- # You can add additional config here if needed
- '';
- };
-}
diff --git a/flakes/common/hm_modules/launcher_rofi.nix b/flakes/common/hm_modules/launcher_rofi.nix
deleted file mode 100644
index 353b29e..0000000
--- a/flakes/common/hm_modules/launcher_rofi.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- pkgs,
- ...
-}:
-{
- programs.rofi = {
- enable = true;
- plugins = with pkgs; [ rofi-calc ];
- extraConfig = {
- modi = "drun,run,ssh,window,calc";
- terminal = "alacritty";
- };
- theme = "glue_pro_blue";
- };
- programs.wofi = {
- enable = true;
- };
-}
diff --git a/flakes/common/hm_modules/postgres_cli_options.nix b/flakes/common/hm_modules/postgres_cli_options.nix
deleted file mode 100644
index 053099b..0000000
--- a/flakes/common/hm_modules/postgres_cli_options.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ ... }:
-{
- home.file.".psqlrc".text = ''
- \pset pager off
- '';
-}
-
diff --git a/flakes/common/hm_modules/slicer.nix b/flakes/common/hm_modules/slicer.nix
deleted file mode 100644
index 4361d5a..0000000
--- a/flakes/common/hm_modules/slicer.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ pkgs, ... }:
-let
- orca-slicer-fix = pkgs.stdenv.mkDerivation {
- name = "orca-slicer";
- buildInputs = [ pkgs.makeWrapper ];
- unpackPhase = "true";
- buildPhase = ''
- mkdir -p $out/bin
- makeWrapper ${pkgs.orca-slicer}/bin/orca-slicer $out/bin/orca-slicer \
- --set WEBKIT_DISABLE_DMABUF_RENDERER 1
- '';
-
- installPhase = ''
- mkdir -p $out/share/applications
- cat > $out/share/applications/orca-slicer.desktop </dev/null || waybar" ];
-
- # Default monitor configuration
- monitor = "monitor = , preferred, auto, 1";
-
- windowrulev2 = [
- # Bitwarden password manager popup for chrome, always float it
- "float, class:^(?i)chrome-nngceckbapebfimnlniiiahkandclblb-Default$, initialtitle:^_crx_nngceckbapebfimnlniiiahkandclblb$"
- "center, class:^(?i)chrome-nngceckbapebfimnlniiiahkandclblb-Default$, initialtitle:^_crx_nngceckbapebfimnlniiiahkandclblb$"
- "size 720 600, class:^(?i)chrome-nngceckbapebfimnlniiiahkandclblb-Default$, initialtitle:^_crx_nngceckbapebfimnlniiiahkandclblb$"
- ];
-
- # Input configuration
- input = {
- kb_layout = "us";
- kb_options = "caps:escape";
-
- follow_mouse = 2;
- touchpad = {
- natural_scroll = true;
- disable_while_typing = true;
- };
- };
-
- # General settings
- general = {
- gaps_in = 2;
- gaps_out = 4;
- border_size = 1;
- "col.active_border" = "rgba(797979aa)";
- "col.inactive_border" = "rgba(393939aa)";
- layout = "dwindle";
- };
-
- # Decoration
- decoration = {
- rounding = 4;
- blur.enabled = false;
- };
-
- # Animations
- animations = {
- enabled = false;
- };
-
- # Layout
- dwindle = {
- pseudotile = true;
- preserve_split = true;
- };
-
- # Misc
- misc = {
- force_default_wallpaper = 0;
- disable_hyprland_logo = true;
- disable_splash_rendering = true;
- };
-
- # Key bindings
- "$mainMod" = "SUPER";
-
- bind = [
- # Applications
- "$mainMod, Return, exec, ${cfg.terminalCommand}"
- "$mainMod, Space, exec, pkill wofi || wofi --show drun"
- "$mainMod, q, killactive"
- "$mainMod SHIFT, escape, exit"
- "$mainMod SHIFT, q, exec, swaylock"
- "$mainMod, f, togglefloating"
- "$mainMod SHIFT, F, fullscreen"
- "$mainMod, g, pseudo"
- "$mainMod, t, togglesplit"
-
- # Move focus with mainMod + hjkl
- "$mainMod, h, movefocus, l"
- "$mainMod, l, movefocus, r"
- "$mainMod, k, movefocus, u"
- "$mainMod, j, movefocus, d"
-
- # Switch workspaces with mainMod + [0-9]
- "$mainMod, 1, workspace, 1"
- "$mainMod, n, workspace, 1"
- "$mainMod, 2, workspace, 2"
- "$mainMod, m, workspace, 2"
- "$mainMod, 3, workspace, 3"
- "$mainMod, comma, workspace, 3"
- "$mainMod, 4, workspace, 4"
- "$mainMod, period, workspace, 4"
- "$mainMod, 5, workspace, 5"
- "$mainMod, slash, workspace, 5"
- "$mainMod, 6, workspace, 6"
- "$mainMod, 7, workspace, 7"
- "$mainMod, 8, workspace, 8"
- "$mainMod, 9, workspace, 9"
- "$mainMod, 0, workspace, 10"
-
- # Window management (similar to your GNOME setup)
- "$mainMod SHIFT, h, movewindow, l"
- "$mainMod SHIFT, l, movewindow, r"
- "$mainMod SHIFT, k, movewindow, u"
- "$mainMod SHIFT, j, movewindow, d"
- "$mainMod SHIFT, 1, movetoworkspacesilent, 1"
- "$mainMod SHIFT, n, movetoworkspacesilent, 1"
- "$mainMod SHIFT, 2, movetoworkspacesilent, 2"
- "$mainMod SHIFT, m, movetoworkspacesilent, 2"
- "$mainMod SHIFT, 3, movetoworkspacesilent, 3"
- "$mainMod SHIFT, comma, movetoworkspacesilent, 3"
- "$mainMod SHIFT, 4, movetoworkspacesilent, 4"
- "$mainMod SHIFT, period, movetoworkspacesilent, 4"
- "$mainMod SHIFT, 5, movetoworkspacesilent, 5"
- "$mainMod SHIFT, slash, movetoworkspacesilent, 5"
- "$mainMod SHIFT, 6, movetoworkspacesilent, 6"
- "$mainMod SHIFT, 7, movetoworkspacesilent, 7"
- "$mainMod SHIFT, 8, movetoworkspacesilent, 8"
- "$mainMod SHIFT, 9, movetoworkspacesilent, 9"
- "$mainMod SHIFT, 0, movetoworkspacesilent, 10"
-
- # Screenshots
- ", Print, exec, grimblast copy area"
- ];
-
- bindr = [
- # overview
- # "$mainMod, SUPER_L, overview:toggle" $ hyprspace plugin
- "$mainMod SHIFT, R, exec, systemctl --user restart hyprpanel.service"
- ];
-
- binde = [
- # Move between workspaces
- # "$mainMod, n, workspace, r+1"
- # "$mainMod, p, workspace, r-1"
-
- # Resize windows
- "$mainMod CTRL, h, resizeactive, -40 0"
- "$mainMod CTRL, l, resizeactive, 40 0"
- "$mainMod CTRL, k, resizeactive, 0 -20"
- "$mainMod CTRL, j, resizeactive, 0 20"
- ];
-
- # Mouse bindings
- bindm = [
- "$mainMod, mouse:272, movewindow"
- "$mainMod, mouse:273, resizewindow"
- ];
-
- } cfg.extraOptions;
- };
-}
diff --git a/flakes/hyprland/home_manager/hyprpaper.nix b/flakes/hyprland/home_manager/hyprpaper.nix
deleted file mode 100644
index 06d6820..0000000
--- a/flakes/hyprland/home_manager/hyprpaper.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- osConfig,
- lib,
- ...
-}:
-let
- ccfg = import ../../../config.nix;
- cfg_path = [
- ccfg.custom_config_key
- "desktopEnvironment"
- "hyprland"
- ];
- cfg = lib.attrsets.getAttrFromPath cfg_path osConfig;
-in
-{
- config = {
- services.hyprpaper = {
- enable = true;
- settings = cfg.hyprpaperSettings;
- };
- };
-}
diff --git a/flakes/hyprland/home_manager/hyprpolkitagent.nix b/flakes/hyprland/home_manager/hyprpolkitagent.nix
deleted file mode 100644
index dc68933..0000000
--- a/flakes/hyprland/home_manager/hyprpolkitagent.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- ...
-}:
-{
- services.hyprpolkitagent = {
- enable = true;
- };
-}
diff --git a/flakes/hyprland/home_manager/quickshell.nix b/flakes/hyprland/home_manager/quickshell.nix
deleted file mode 100644
index 2f5032c..0000000
--- a/flakes/hyprland/home_manager/quickshell.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- osConfig,
- lib,
- pkgs,
- upkgs,
- ...
-}:
-let
- ccfg = import ../../../config.nix;
- cfg_path = [
- ccfg.custom_config_key
- "desktopEnvironment"
- "hyprland"
- ];
- cfg = lib.attrsets.getAttrFromPath cfg_path osConfig;
-in
-{
- home.packages = with pkgs; [
- upkgs.quickshell
- pulseaudio
- brightnessctl
- networkmanager
- bluez
- bluez-tools
- power-profiles-daemon
- upower
- systemd
- hyprlock
- ];
-
- # Ensure CLI quickshell can resolve modules when not using --config-path
- home.sessionVariables = {
- QML_IMPORT_PATH = "$HOME/.config/quickshell";
- QML2_IMPORT_PATH = "$HOME/.config/quickshell";
- };
-
- # install config files
- home.file = {
- ".config/quickshell/shell.qml".source = ./quickshell/shell.qml;
- ".config/quickshell/panels/TopBar.qml".source = ./quickshell/panels/TopBar.qml;
- ".config/quickshell/notifications/NotificationServer.qml".source =
- ./quickshell/notifications/NotificationServer.qml;
- ".config/quickshell/notifications/NotificationPopup.qml".source =
- ./quickshell/notifications/NotificationPopup.qml;
- ".config/quickshell/notifications/NotificationCenter.qml".source =
- ./quickshell/notifications/NotificationCenter.qml;
- ".config/quickshell/widgets/status/Workspaces.qml".source =
- ./quickshell/widgets/status/Workspaces.qml;
- ".config/quickshell/widgets/status/Clock.qml".source = ./quickshell/widgets/status/Clock.qml;
- ".config/quickshell/widgets/status/SystemTrayWidget.qml".source =
- ./quickshell/widgets/status/SystemTrayWidget.qml;
- ".config/quickshell/widgets/status/Battery.qml".source = ./quickshell/widgets/status/Battery.qml;
- ".config/quickshell/widgets/controls/QuickSettings.qml".source =
- ./quickshell/widgets/controls/QuickSettings.qml;
- ".config/quickshell/widgets/controls/Audio.qml".source = ./quickshell/widgets/controls/Audio.qml;
- ".config/quickshell/widgets/controls/Network.qml".source =
- ./quickshell/widgets/controls/Network.qml;
- ".config/quickshell/widgets/controls/Bluetooth.qml".source =
- ./quickshell/widgets/controls/Bluetooth.qml;
- ".config/quickshell/widgets/controls/Brightness.qml".source =
- ./quickshell/widgets/controls/Brightness.qml;
- ".config/quickshell/widgets/controls/PowerProfilesWidget.qml".source =
- ./quickshell/widgets/controls/PowerProfilesWidget.qml;
- ".config/quickshell/panels/qmldir".source = ./quickshell/panels/qmldir;
- ".config/quickshell/notifications/qmldir".source = ./quickshell/notifications/qmldir;
- ".config/quickshell/widgets/status/qmldir".source = ./quickshell/widgets/status/qmldir;
- ".config/quickshell/widgets/controls/qmldir".source = ./quickshell/widgets/controls/qmldir;
- # optional: .qmlls.ini should be gitignored; create empty to enable LSP
- ".config/quickshell/.qmlls.ini".text = "";
- };
-
- systemd.user.services.quickshell = {
- Unit = {
- Description = "Quickshell Desktop Shell";
- PartOf = [ "graphical-session.target" ];
- After = [ "graphical-session.target" ];
- };
- Service = {
- ExecStart = "${upkgs.quickshell}/bin/quickshell --config-path %h/.config/quickshell";
- Restart = "on-failure";
- RestartSec = 2;
- Environment = [
- "QML_IMPORT_PATH=%h/.config/quickshell"
- "QT_QPA_PLATFORM=wayland"
- # Ensure we find icons
- "XDG_CURRENT_DESKTOP=quickshell"
- ];
- };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
- };
-}
diff --git a/flakes/hyprland/home_manager/scripts.nix b/flakes/hyprland/home_manager/scripts.nix
deleted file mode 100644
index 6c3d1c5..0000000
--- a/flakes/hyprland/home_manager/scripts.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ pkgs, ... }:
-{
- home.packages = with pkgs; [
- (writeShellScriptBin "toggle-airplane-mode" (builtins.readFile ./scripts/toggle-airplane-mode.sh))
- (writeShellScriptBin "toggle-power-profile" (builtins.readFile ./scripts/toggle-power-profile.sh))
- (writeShellScriptBin "wofi-wifi-menu" (builtins.readFile ./scripts/wofi-wifi-menu.sh))
- (writeShellScriptBin "wofi-bluetooth-menu" (builtins.readFile ./scripts/wofi-bluetooth-menu.sh))
- (writeShellScriptBin "confirm-action" (builtins.readFile ./scripts/confirm-action.sh))
- ];
-}
diff --git a/flakes/hyprland/home_manager/scripts/confirm-action.sh b/flakes/hyprland/home_manager/scripts/confirm-action.sh
deleted file mode 100755
index 5c30d11..0000000
--- a/flakes/hyprland/home_manager/scripts/confirm-action.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-
-COMMAND_TO_RUN="$1"
-PROMPT_MESSAGE="$2"
-
-if [ -z "$PROMPT_MESSAGE" ]; then
- PROMPT_MESSAGE="Are you sure?"
-fi
-
-choice=$(echo -e "No\nYes" | wofi --dmenu --location center -p "$PROMPT_MESSAGE")
-
-if [ "$choice" == "Yes" ]; then
- eval "$COMMAND_TO_RUN"
-fi
diff --git a/flakes/hyprland/home_manager/scripts/toggle-airplane-mode.sh b/flakes/hyprland/home_manager/scripts/toggle-airplane-mode.sh
deleted file mode 100755
index 7a6636a..0000000
--- a/flakes/hyprland/home_manager/scripts/toggle-airplane-mode.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-if [ "$(nmcli radio all)" = "enabled" ]; then
- nmcli radio all off
-else
- nmcli radio all on
-fi
diff --git a/flakes/hyprland/home_manager/scripts/toggle-power-profile.sh b/flakes/hyprland/home_manager/scripts/toggle-power-profile.sh
deleted file mode 100755
index 1d14395..0000000
--- a/flakes/hyprland/home_manager/scripts/toggle-power-profile.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-if [ "$(powerprofilesctl get)" = "performance" ]; then
- powerprofilesctl set balanced
-else
- powerprofilesctl set performance
-fi
diff --git a/flakes/hyprland/home_manager/scripts/wofi-bluetooth-menu.sh b/flakes/hyprland/home_manager/scripts/wofi-bluetooth-menu.sh
deleted file mode 100755
index b7a05dc..0000000
--- a/flakes/hyprland/home_manager/scripts/wofi-bluetooth-menu.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-
-devices=$(bluetoothctl devices | awk '{print $2, $3}')
-
-if [ -z "$devices" ]; then
- options=" Power On\n Scan for devices"
-else
- options="$devices\n Power Off\n Scan for devices"
-fi
-
-chosen=$(echo -e "$options" | wofi --dmenu --location 3 --yoffset 40 --xoffset -20 -p "Bluetooth")
-
-case "$chosen" in
- " Power On") bluetoothctl power on;;
- " Power Off") bluetoothctl power off;;
- " Scan for devices") bluetoothctl scan on;;
- *)
- mac=$(echo "$chosen" | awk '{print $1}')
- bluetoothctl connect "$mac"
- ;;
-esac
diff --git a/flakes/hyprland/home_manager/scripts/wofi-wifi-menu.sh b/flakes/hyprland/home_manager/scripts/wofi-wifi-menu.sh
deleted file mode 100755
index 6e4dbbe..0000000
--- a/flakes/hyprland/home_manager/scripts/wofi-wifi-menu.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env bash
-
-# Get a list of available Wi-Fi networks
-nets=$(nmcli --terse --fields SSID,SECURITY,BARS device wifi list | sed '/^--/d' | sed 's/\\:/__/g')
-
-# Get the current connection status
-connected_ssid=$(nmcli -t -f active,ssid dev wifi | egrep '^yes' | cut -d: -f2)
-
-if [[ ! -z "$connected_ssid" ]]; then
- toggle=" Toggle Wi-Fi Off"
-else
- toggle=" Toggle Wi-Fi On"
-fi
-
-# Present the menu to the user
-chosen_network=$(echo -e "$toggle\n$nets" | wofi --dmenu --location 3 --yoffset 40 --xoffset -20 -p "Wi-Fi Networks")
-
-# Perform an action based on the user's choice
-if [ "$chosen_network" = "$toggle" ]; then
- nmcli radio wifi $([ "$connected_ssid" = "" ] && echo "on" || echo "off")
-elif [ ! -z "$chosen_network" ]; then
- ssid=$(echo "$chosen_network" | sed 's/__/\\:/g' | awk -F' ' '{print $1}')
- nmcli device wifi connect "$ssid"
-fi
diff --git a/flakes/hyprland/home_manager/swaylock.nix b/flakes/hyprland/home_manager/swaylock.nix
deleted file mode 100644
index 06ebf13..0000000
--- a/flakes/hyprland/home_manager/swaylock.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- ...
-}:
-{
- programs.swaylock = {
- enable = true;
- settings = {
- color = "#000000";
- indicator-caps-lock = true;
- indicator-idle-visible = true;
- indicator-radius = 100;
- indicator-thickness = 10;
- font = "JetBrainsMono Nerd Font Regular";
- font-size = 20;
- };
- };
-}
diff --git a/flakes/hyprland/home_manager/swaync.nix b/flakes/hyprland/home_manager/swaync.nix
deleted file mode 100644
index b26fa58..0000000
--- a/flakes/hyprland/home_manager/swaync.nix
+++ /dev/null
@@ -1,251 +0,0 @@
-{
- lib,
- osConfig,
- ...
-}:
-let
- ccfg = import ../../../config.nix;
- cfg_path = [
- ccfg.custom_config_key
- "desktopEnvironment"
- "hyprland"
- "swaync"
- ];
- cfg = lib.attrsets.getAttrFromPath cfg_path osConfig;
-in
-{
- config = lib.mkIf cfg.enable {
- services.swaync = {
- enable = true;
- settings = {
- ignore = [
- "com.spotify.Client"
- ];
-
- positionX = "right";
- positionY = "top";
- layer = "overlay";
- control-center-layer = "top";
- layer-shell = true;
- cssPriority = "application";
-
- control-center-margin-top = 0;
- control-center-margin-bottom = 0;
- control-center-margin-right = 0;
- control-center-margin-left = 0;
-
- notification-2fa-action = true;
- notification-inline-replies = false;
- notification-icon-size = 64;
- notification-body-image-height = 100;
- notification-body-image-width = 200;
-
- timeout = 10;
- timeout-low = 5;
- timeout-critical = 0;
-
- control-center-width = 500;
- control-center-height = 600;
- notification-window-width = 500;
-
- keyboard-shortcuts = true;
- image-visibility = "when-available";
- transition-time = 200;
- hide-on-clear = false;
- hide-on-action = true;
- script-fail-notify = true;
-
- widgets = [
- "inhibitors"
- "title"
- "dnd"
- "volume"
- "backlight"
- "mpris"
- "buttons-grid#quick"
- "notifications"
- ];
-
- # Widget configurations
- widget-config = {
- inhibitors = {
- text = "Inhibitors";
- button-text = "Clear All";
- clear-all-button = true;
- };
- title = {
- text = "Notifications";
- clear-all-button = true;
- button-text = "Clear All";
- };
- dnd.text = "Do Not Disturb";
- mpris = {
- image-size = 96;
- image-radius = 12;
- };
- volume = {
- label = "";
- show-per-app = true;
- };
- backlight = {
- label = "";
- device = "intel_backlight";
- };
- "buttons-grid#quick" = {
- columns = 4; # adjust: 3/4/5
- icon-size = 20; # tweak to taste
- actions = [
- # Power
- {
- label = "";
- tooltip = "Shutdown";
- command = "confirm-action 'systemctl poweroff' 'Shutdown?'";
- }
- {
- label = "";
- tooltip = "Reboot";
- command = "confirm-action 'systemctl reboot' 'Reboot?'";
- }
- {
- label = "";
- tooltip = "Logout";
- command = "confirm-action 'hyprctl dispatch exit' 'Logout?'";
- }
- ];
- };
- };
- };
-
- # Custom CSS for the control center
- style = ''
- .control-center {
- background: #1a1b26;
- border: 2px solid #7dcae4;
- border-radius: 12px;
- }
-
- .control-center-list {
- background: transparent;
- }
-
- .control-center .notification-row:focus,
- .control-center .notification-row:hover {
- opacity: 1;
- background: #24283b;
- }
-
- .notification {
- border-radius: 8px;
- margin: 6px 12px;
- box-shadow: 0 0 0 1px rgba(125, 196, 228, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7), 0 2px 6px 2px rgba(0, 0, 0, 0.3);
- padding: 0;
- }
-
- /* Widget styling */
- .widget-title {
- margin: 8px;
- font-size: 1.5rem;
- color: #c0caf5;
- }
-
- .widget-dnd {
- margin: 8px;
- font-size: 1.1rem;
- color: #c0caf5;
- }
-
- .widget-dnd > switch {
- font-size: initial;
- border-radius: 8px;
- background: #414868;
- border: 1px solid #7dcae4;
- }
-
- .widget-dnd > switch:checked {
- background: #7dcae4;
- }
-
- .widget-mpris {
- color: #c0caf5;
- background: #24283b;
- padding: 8px;
- margin: 8px;
- border-radius: 8px;
- }
-
- .widget-mpris-player {
- padding: 8px;
- margin: 8px;
- }
-
- .widget-mpris-title {
- font-weight: bold;
- font-size: 1.25rem;
- }
-
- .widget-mpris-subtitle {
- font-size: 1.1rem;
- color: #9ece6a;
- }
-
- .widget-volume {
- background: #24283b;
- padding: 8px;
- margin: 8px;
- border-radius: 8px;
- color: #c0caf5;
- }
-
- .widget-backlight {
- background: #24283b;
- padding: 8px;
- margin: 8px;
- border-radius: 8px;
- color: #c0caf5;
- }
-
- .widget-menubar {
- background: #24283b;
- padding: 8px;
- margin: 8px;
- border-radius: 8px;
- color: #c0caf5;
- }
-
- .widget-menubar .menu-item button {
- background: #1f2335;
- color: #c0caf5;
- border-radius: 8px;
- padding: 6px 10px;
- margin: 4px;
- border: 1px solid #2e3440;
- font-family: "JetBrainsMonoNL Nerd Font";
- }
-
- .widget-menubar .menu-item button:hover {
- background: #414868;
- border-color: #7dcae4;
- }
-
- .topbar-buttons button {
- border: none;
- background: transparent;
- color: #c0caf5;
- font-size: 1.1rem;
- border-radius: 8px;
- margin: 0 4px;
- padding: 8px;
- }
-
- .topbar-buttons button:hover {
- background: #414868;
- }
-
- .topbar-buttons button:active {
- background: #7dcae4;
- color: #1a1b26;
- }
- '';
- };
- };
-}
diff --git a/flakes/hyprland/home_manager/template.nix b/flakes/hyprland/home_manager/template.nix
deleted file mode 100644
index 905d5e4..0000000
--- a/flakes/hyprland/home_manager/template.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- osConfig,
- lib,
- pkgs,
- ...
-}:
-let
- ccfg = import ../../../config.nix;
- cfg_path = [
- ccfg.custom_config_key
- "desktopEnvironment"
- "hyprland"
- ];
- cfg = lib.attrsets.getAttrFromPath cfg_path osConfig;
-in
-{
-
-}
diff --git a/flakes/hyprland/home_manager/theme.nix b/flakes/hyprland/home_manager/theme.nix
deleted file mode 100644
index c6045d0..0000000
--- a/flakes/hyprland/home_manager/theme.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- pkgs,
- ...
-}:
-{
- home.pointerCursor = {
- gtk.enable = true;
- # x11.enable = true;
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 16;
- };
- # GTK theming
- gtk = {
- enable = true;
-
- theme = {
- package = pkgs.flat-remix-gtk;
- name = "Flat-Remix-GTK-Grey-Darkest";
- };
-
- iconTheme = {
- package = pkgs.adwaita-icon-theme;
- name = "Adwaita";
- };
-
- font = {
- name = "Sans";
- size = 11;
- };
- };
-}
diff --git a/flakes/hyprland/home_manager/waybar.nix b/flakes/hyprland/home_manager/waybar.nix
deleted file mode 100644
index 66f3349..0000000
--- a/flakes/hyprland/home_manager/waybar.nix
+++ /dev/null
@@ -1,258 +0,0 @@
-{ lib, osConfig, ... }:
-let
- ccfg = import ../../../config.nix;
- cfg_path = [
- ccfg.custom_config_key
- "desktopEnvironment"
- "hyprland"
- "waybar"
- ];
- cfg = lib.attrsets.getAttrFromPath cfg_path osConfig;
-in
-{
- config = lib.mkIf cfg.enable {
-
- programs.waybar = {
- enable = true;
- systemd.enable = true;
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 28;
- spacing = 6;
- margin-top = 0;
- margin-bottom = 0;
- margin-left = 10;
- margin-right = 10;
-
- modules-left = [
- "hyprland/workspaces"
- ];
- modules-center = [
- "clock"
- "temperature"
- "cpu"
- "memory"
- "disk"
- ];
- modules-right = [
- "battery"
- "battery#bat2"
- "pulseaudio"
- "network"
- "bluetooth"
- "power-profiles-daemon"
- "backlight"
- "custom/notifications"
- "tray"
- "custom/power"
- ];
-
- "hyprland/workspaces" = {
- format = "{icon}";
- format-icons = {
- "1" = "一";
- "2" = "二";
- "3" = "三";
- "4" = "四";
- "5" = "五";
- "6" = "六";
- "7" = "七";
- "8" = "八";
- "9" = "九";
- "10" = "十";
- "11" = "十一";
- "12" = "十二";
- "13" = "十三";
- "14" = "十四";
- "15" = "十五";
- "16" = "十六";
- "17" = "十七";
- "18" = "十八";
- "19" = "十九";
- "20" = "二十";
- };
- disable-scroll = false;
- };
-
- # CENTER
- clock = {
- format = "{:%b %d, %H:%M}";
- tooltip-format = "{:%Y %B}\n{calendar}";
- };
-
- temperature = {
- thermal-zone = 2;
- hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
- critical-threshold = 80;
- format-critical = " {temperatureC}°C";
- format = " {temperatureC}°C";
- };
-
- cpu = {
- format = " {usage}%";
- tooltip = true;
- on-click = "btop";
- };
-
- memory = {
- format = " {}%";
- on-click = "btop";
- };
-
- disk = {
- interval = 30;
- format = " {percentage_used}%";
- path = "/";
- on-click = "btop";
- };
-
- # RIGHT
- "battery" = {
- "states" = {
- # "good"= 95;
- "warning" = 30;
- "critical" = 15;
- };
- "format" = "{capacity}% {icon}";
- "format-full" = "{capacity}% {icon}";
- "format-charging" = "{capacity}% ";
- "format-plugged" = "{capacity}% ";
- "format-alt" = "{time} {icon}";
- # "format-good"= ""; // An empty format will hide the module
- # "format-full"= "";
- "format-icons" = [
- ""
- ""
- ""
- ""
- ""
- ];
- };
- "battery#bat2" = {
- "bat" = "BAT2";
- };
-
- pulseaudio = {
- format = "{icon} {volume}%";
- format-bluetooth = " {volume}%";
- format-bluetooth-muted = " ";
- format-muted = " ";
- format-source = " {volume}%";
- format-source-muted = " ";
- format-icons = {
- headphone = "";
- hands-free = "";
- headset = "";
- phone = "";
- portable = "";
- car = "";
- default = [
- ""
- ""
- ""
- ];
- };
- scroll-step = 5;
- on-click = "pavucontrol";
- on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
- };
-
- network = {
- format-wifi = " {essid} ({signalStrength}%)";
- format-ethernet = " {ipaddr}/{cidr}";
- tooltip-format = "{ifname} via {gwaddr} ";
- format-linked = " {ifname} (No IP)";
- format-disconnected = " Disconnected";
- # on-click = "wofi-wifi-menu";
- # on-click-right = "nmcli radio wifi toggle";
- };
-
- bluetooth = {
- format = " {status}";
- format-connected = " {device_alias}";
- format-connected-battery = " {device_alias} {device_battery_percentage}%";
- tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
- tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
- tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
- tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
- # on-click = "wofi-bluetooth-menu";
- # on-click-right = "bluetoothctl power toggle";
- };
-
- "power-profiles-daemon" = {
- format = "{icon}";
- "tooltip-format" = "Power profile: {profile}\nDriver: {driver}";
- tooltip = true;
- "format-icons" = {
- default = "";
- performance = "";
- balanced = "";
- "power-saver" = "";
- };
- };
-
- backlight = {
- format = "{percent}% {icon}";
- "format-icons" = [
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ];
- };
-
- "custom/notifications" = {
- format = "{icon} {}";
- format-icons = {
- notification = "";
- none = "";
- dnd-notification = "";
- dnd-none = "";
- inhibited-notification = "";
- inhibited-none = "";
- dnd-inhibited-notification = "";
- dnd-inhibited-none = "";
- };
- return-type = "json";
- exec-if = "which swaync-client";
- exec = "swaync-client -swb";
- on-click = "swaync-client -t -sw";
- on-click-right = "swaync-client -d -sw";
- escape = true;
- tooltip = false;
- };
-
- "sway/language" = {
- format = "{}";
- };
-
- "tray" = {
- "spacing" = 10;
- };
-
- "custom/power" = {
- format = "⏻ ";
- tooltip = false;
- menu = "on-click";
- "menu-file" = ./waybar/power_menu.xml;
- "menu-actions" = {
- shutdown = "shutdown 0";
- reboot = "reboot";
- logout = "loginctl terminate-session $(loginctl list-sessions | grep seat0 | awk '{print $1}')";
- };
- };
-
- };
- };
-
- style = builtins.readFile ./waybar/waybar.css;
- };
- };
-}
diff --git a/flakes/hyprland/home_manager/waybar/power_menu.xml b/flakes/hyprland/home_manager/waybar/power_menu.xml
deleted file mode 100644
index a061b18..0000000
--- a/flakes/hyprland/home_manager/waybar/power_menu.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
diff --git a/flakes/hyprland/home_manager/waybar/waybar.css b/flakes/hyprland/home_manager/waybar/waybar.css
deleted file mode 100644
index 6ed5a8c..0000000
--- a/flakes/hyprland/home_manager/waybar/waybar.css
+++ /dev/null
@@ -1,102 +0,0 @@
-* {
- /* `otf-font-awesome` is required to be installed for icons */
- font-family: "JetBrainsMonoNL Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- font-size: 14px;
- border: none;
- border-radius: 0;
- min-height: 0;
- color: #f1f1f1;
-}
-
-window#waybar {
- background: transparent;
-}
-
-#workspaces button.focused,
-#workspaces button.active {
- background-color: rgba(220, 220, 220, 0.2);
-}
-
-#workspaces button.urgent {
- background-color: rgba(214, 82, 82, 0.3);
-}
-
-button,
-#clock,
-#battery,
-#cpu,
-#memory,
-#disk,
-#temperature,
-#backlight,
-#network,
-#pulseaudio,
-#wireplumber,
-#custom-media,
-#custom-notifications,
-#custom-power,
-#tray,
-#mode,
-#idle_inhibitor,
-#scratchpad,
-#power-profiles-daemon,
-#bluetooth,
-#language,
-#mpd {
- padding: 0 5px;
- color: #f1f1f1;
- background-color: rgba(220, 220, 220, 0.1);
- border-radius: 6px;
-}
-
-
-button:hover,
-#clock:hover,
-#battery:hover,
-#cpu:hover,
-#memory:hover,
-#disk:hover,
-#temperature:hover,
-#backlight:hover,
-#network:hover,
-#pulseaudio:hover,
-#wireplumber:hover,
-#custom-media:hover,
-#custom-notifications:hover,
-#tray:hover,
-#mode:hover,
-#idle_inhibitor:hover,
-#scratchpad:hover,
-#power-profiles-daemon:hover,
-#bluetooth:hover,
-#language:hover,
-#mpd:hover {
- color: #f1f1f1;
- background-color: rgba(220, 220, 220, 0.2);
- border-radius: 6px;
-}
-
-#power-profiles-daemon {
- padding-right: 15px;
-}
-
-#power-profiles-daemon.performance {
- color: #fff7d6;
-}
-
-#power-profiles-daemon.balanced {
- color: #d6efff;
-}
-
-#power-profiles-daemon.power-saver {
- color:#dcffd6;
-}
-
-#tray>.passive {
- -gtk-icon-effect: dim;
-}
-
-#tray>.needs-attention {
- -gtk-icon-effect: highlight;
- background-color: #eb4d4b;
-}
diff --git a/flakes/hyprland/home_manager/wofi.nix b/flakes/hyprland/home_manager/wofi.nix
deleted file mode 100644
index f2df05b..0000000
--- a/flakes/hyprland/home_manager/wofi.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- ...
-}:
-{
- programs.wofi = {
- enable = true;
- settings = {
- width = 500;
- height = 600;
- location = "bottom";
- show = "drun";
- prompt = "...";
- filter_rate = 100;
- allow_markup = true;
- no_actions = true;
- halign = "fill";
- orientation = "vertical";
- content_halign = "fill";
- insensitive = true;
- allow_images = true;
- image_size = 40;
- gtk_dark = true;
- };
- };
-
-}
diff --git a/flakes/secrets/flake.nix b/flakes/secrets/flake.nix
deleted file mode 100644
index a282f79..0000000
--- a/flakes/secrets/flake.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- inputs = {
- ragenix.url = "github:yaxitech/ragenix";
- };
-
- outputs =
- {
- ragenix,
- ...
- }:
- {
- nixosModules = {
- default =
- {
- config,
- lib,
- pkgs,
- ...
- }:
- {
- imports = [
- ragenix.nixosModules.age
- ./secrets
- ];
- config = {
- _module.args = {
- inherit ragenix;
- };
- };
- };
- };
- };
-}
diff --git a/flakes/test b/flakes/test
deleted file mode 100644
index e69de29..0000000
diff --git a/hosts/lio/home_manager.nix b/hosts/lio/home_manager.nix
deleted file mode 100644
index f42762b..0000000
--- a/hosts/lio/home_manager.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- config,
- lib,
- pkgs,
- modulesPath,
- ...
-}:
-{
-
-}