diff --git a/pkgs/awakened-poe-trade.nix b/pkgs/awakened-poe-trade.nix
index 88241c4..77e9c1a 100644
--- a/pkgs/awakened-poe-trade.nix
+++ b/pkgs/awakened-poe-trade.nix
@@ -20,7 +20,7 @@
icon = pkgs.fetchurl {
url = "https://web.poecdn.com/image/Art/2DItems/Currency/TransferOrb.png";
- hash = "sha256-LP6qB68GLq5dstsUxXC/uj0afceQRPYoymgCDU/5l6k=";
+ hash = "sha256-K6cG5ybC3uIveu/4JIcc5mGQFgDlQSw8L9aSzbkLe1w=";
};
in
pkgs.appimageTools.wrapType2 {
diff --git a/users/myuser/graphical/default.nix b/users/myuser/graphical/default.nix
index 3e6158d..6875247 100644
--- a/users/myuser/graphical/default.nix
+++ b/users/myuser/graphical/default.nix
@@ -14,11 +14,10 @@
./signal.nix
./theme.nix
./thunderbird.nix
- # XXX: disabled for the time being because gaming under nvidia+wayland has too many bugs
- # XXX: retest this in the future. Problems were flickering under gles, black screens and refresh issues under vulkan, black wine windows.
- # ./sway.nix
./i3.nix
+ ./rofi.nix
./hyprland.nix
+ ./waybar.nix
]
++ lib.optionals nixosConfig.graphical.gaming.enable [
./games
diff --git a/users/myuser/graphical/hyprland.nix b/users/myuser/graphical/hyprland.nix
index 49d49de..063c51f 100644
--- a/users/myuser/graphical/hyprland.nix
+++ b/users/myuser/graphical/hyprland.nix
@@ -9,11 +9,12 @@
concatMap
elem
flip
- getExe
mkIf
mkMerge
optionals
;
+
+ rofi-drun = "rofi -show drun -theme ~/.config/rofi/launchers/type-1/style-10.rasi";
in {
home.packages = with pkgs; [
wl-clipboard
@@ -47,8 +48,8 @@ in {
"SUPER + CTRL + SHIFT,q,exit"
# Applications
- "SUPER,code:49,exec,${getExe pkgs.rofi-wayland} -show drun" # SUPER+^
- ",Menu,exec,${getExe pkgs.rofi-wayland} -show drun"
+ "SUPER,code:49,exec,${rofi-drun}" # SUPER+^
+ ",Menu,exec,${rofi-drun}"
"SUPER,t,exec,kitty"
"SUPER,b,exec,firefox"
diff --git a/users/myuser/graphical/rofi.nix b/users/myuser/graphical/rofi.nix
new file mode 100644
index 0000000..ae9785d
--- /dev/null
+++ b/users/myuser/graphical/rofi.nix
@@ -0,0 +1,33 @@
+{pkgs, ...}: {
+ programs.rofi = {
+ enable = true;
+ package = pkgs.rofi-wayland;
+ extraConfig = {
+ matching = "fuzzy";
+ terminal = "kitty";
+ };
+ };
+
+ home.file = let
+ rofi-themes = pkgs.fetchFromGitHub {
+ owner = "adi1090x";
+ repo = "rofi";
+ rev = "3a28753b0a8fb666f4bd0394ac4b0e785577afa2";
+ hash = "sha256-G3sAyIZbq1sOJxf+NBlXMOtTMiBCn6Sat8PHryxRS0w=";
+ };
+ in {
+ ".config/rofi/colors" = {
+ source = "${rofi-themes}/files/colors";
+ recursive = true;
+ };
+ ".config/rofi/launchers/type-1/style-10.rasi".source = "${rofi-themes}/files/launchers/type-1/style-10.rasi";
+ ".config/rofi/launchers/type-1/shared/colors.rasi".text =
+ /*
+ css
+ */
+ ''
+ @import "~/.config/rofi/colors/onedark.rasi"
+ '';
+ ".config/rofi/launchers/type-1/shared/fonts.rasi".text = "";
+ };
+}
diff --git a/users/myuser/graphical/sway.nix b/users/myuser/graphical/sway.nix
deleted file mode 100644
index 738b773..0000000
--- a/users/myuser/graphical/sway.nix
+++ /dev/null
@@ -1,184 +0,0 @@
-{
- lib,
- config,
- nixosConfig,
- pkgs,
- ...
-}: let
- inherit
- (lib)
- mapAttrs'
- nameValuePair
- ;
-
- bindWithModifier = mapAttrs' (k: nameValuePair (cfg.modifier + "+" + k));
- cfg = config.wayland.windowManager.sway.config;
-in {
- wayland.windowManager.sway = {
- enable = true;
- config =
- {
- modifier = "Mod4";
- terminal = "kitty";
-
- # Excuse me, le füque
- focus.followMouse = false;
- focus.mouseWarping = false;
-
- # TODO menu = "rofi -show run";
-
- keybindings =
- {
- "XF86AudioRaiseVolume" = "exec --no-startup-id wpctl set-sink-volume @DEFAULT_SINK@ +5%";
- "XF86AudioLowerVolume" = "exec --no-startup-id wpctl set-sink-volume @DEFAULT_SINK@ -5%";
- "XF86AudioMute" = "exec --no-startup-id wpctl set-sink-mute @DEFAULT_SINK@ toggle";
- "XF86AudioMicMute" = "exec --no-startup-id wpctl set-source-mute @DEFAULT_SOURCE@ toggle";
-
- #"Print" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot copy area";
- #"${mod}+Print" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot save area";
- }
- # // optionalAttrs useBacklight {
- # "XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 5";
- # "XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 5";
- # }
- // {
- "Menu" = "exec ${cfg.menu}";
- }
- # General mappings that start with $modifier+...
- // bindWithModifier {
- "t" = "exec ${cfg.terminal}";
- "asciicircum" = "exec ${cfg.menu}";
- "b" = "exec firefox";
-
- "Shift+r" = "reload";
- "q" = "kill";
-
- "Left" = "focus left";
- "Right" = "focus right";
- "Up" = "focus up";
- "Down" = "focus down";
-
- "Shift+Left" = "move left";
- "Shift+Right" = "move right";
- "Shift+Up" = "move up";
- "Shift+Down" = "move down";
-
- "s" = "splith";
- "v" = "splitv";
- "f" = "floating toggle";
- "Return" = "fullscreen toggle";
- "Space" = "focus mode_toggle";
- # "a" = "focus parent";
- # "s" = "layout stacking";
- # "w" = "layout tabbed";
- # "e" = "layout toggle split";
-
- "Shift+Ctrl+q" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
- "r" = "mode resize";
-
- "1" = "workspace number 1";
- "2" = "workspace number 2";
- "3" = "workspace number 3";
- "4" = "workspace number 4";
- "5" = "workspace number 5";
- "6" = "workspace number 6";
- "7" = "workspace number 7";
- "8" = "workspace number 8";
- "9" = "workspace number 9";
- "Comma" = "workspace prev";
- "Period" = "workspace next";
-
- "Shift+1" = "move container to workspace number 1";
- "Shift+2" = "move container to workspace number 2";
- "Shift+3" = "move container to workspace number 3";
- "Shift+4" = "move container to workspace number 4";
- "Shift+5" = "move container to workspace number 5";
- "Shift+6" = "move container to workspace number 6";
- "Shift+7" = "move container to workspace number 7";
- "Shift+8" = "move container to workspace number 8";
- "Shift+9" = "move container to workspace number 9";
- "Shift+Comma" = "move container to workspace prev";
- "Shift+Period" = "move container to workspace next";
- };
-
- window.titlebar = false;
-
- input = {
- "type:keyboard" = {
- repeat_delay = "235";
- repeat_rate = "60";
- xkb_layout = "de";
- xkb_variant = "nodeadkeys";
- xkb_numlock = "enabled";
- };
- "type:pointer" = {
- accel_profile = "flat";
- pointer_accel = "0";
- };
- };
-
- assigns = {
- "9" = [
- {class = "^steam_app_";}
- {app_id = "^steam$";}
- {class = "^steam$";}
- ];
- };
- # TODO eww -> bars = [ ];
- }
- # Extra configuration based on which system we are on. It's not ideal to
- # distinguish by node name here, but at least this way it can stay in the
- # sway related config file.
- // {
- kroma = let
- monitorMain = "LG Electronics 27GN950 111NTGYLB719";
- monitorLeft = "LG Electronics LG Ultra HD 0x00077939";
- in {
- output = {
- # TODO "*" = { background = background; };
- ${monitorLeft} = {
- mode = "3840x2160@60Hz";
- pos = "0 0";
- adaptive_sync = "enable";
- subpixel = "rgb";
- };
- ${monitorMain} = {
- mode = "3840x2160@144Hz";
- pos = "3840 0";
- adaptive_sync = "enable";
- subpixel = "rgb";
- render_bit_depth = "10";
- };
- };
- workspaceOutputAssign = [
- {
- workspace = "1";
- output = monitorMain;
- }
- {
- workspace = "7";
- output = monitorLeft;
- }
- ];
- };
- }
- .${nixosConfig.node.name}
- or {};
- };
- # TODO for_window [app_id="flameshot"] border pixel 0, floating enable, fullscreen disable, move absolute position 0 0
-
- home.sessionVariables = {
- # Let nixos electron wrappers enable wayland
- NIXOS_OZONE_WL = 1;
- # Cursor is invisible otherwise
- # XXX: retest in 2024
- WLR_NO_HARDWARE_CURSORS = 1;
- # opengl backend flickers, also vulkan is love.
- WLR_RENDERER = "vulkan";
- };
-
- home.packages = with pkgs; [
- wdisplays
- wl-clipboard
- ];
-}
diff --git a/users/myuser/graphical/waybar-style.css b/users/myuser/graphical/waybar-style.css
new file mode 100644
index 0000000..e69de29
diff --git a/users/myuser/graphical/waybar.nix b/users/myuser/graphical/waybar.nix
new file mode 100644
index 0000000..acc01d4
--- /dev/null
+++ b/users/myuser/graphical/waybar.nix
@@ -0,0 +1,90 @@
+{
+ programs.waybar = {
+ enable = true;
+ style = builtins.readFile ./waybar-style.css;
+ settings.main = {
+ layer = "top";
+ position = "top";
+ height = 30;
+
+ modules-left = ["wlr/workspaces" "wlr/taskbar"];
+ modules-center = ["hyprland/window"];
+ modules-right = ["network" "clock" "bluetooth" "cpu" "memory" "tray"];
+
+ "wlr/workspaces" = {
+ format = "{icon}";
+ on-click = "activate";
+ format-icons = {
+ urgent = "";
+ };
+ sort-by-number = true;
+ all-outputs = true;
+ };
+
+ clock = {
+ format = "{:%H:%M}";
+ format-alt = "{:%A, %B %d, %Y (%R)}";
+ tooltip-format = "{calendar}";
+ calendar = {
+ mode = "year";
+ mode-mon-col = 3;
+ weeks-pos = "right";
+ on-scroll = 1;
+ on-click-right = "mode";
+ format = {
+ months = "{}";
+ days = "{}";
+ weeks = "W{}";
+ weekdays = "{}";
+ today = "{}";
+ };
+ actions = {
+ on-click-right = "mode";
+ on-click-forward = "tz_up";
+ on-click-backward = "tz_down";
+ on-scroll-up = "shift_up";
+ on-scroll-down = "shift_down";
+ };
+ };
+ };
+
+ network = {
+ interval = 5;
+ format-ethernet = " {ipaddr}/{cidr}"; # Icon: ethernet
+ format-disconnected = "⚠ Disconnected";
+ tooltip-format = ": {bandwidthDownBytes} : {bandwidthUpBytes}";
+ };
+
+ 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}%";
+ };
+
+ memory = {
+ interval = 5;
+ format = " {}%";
+ states = {
+ warning = 70;
+ critical = 90;
+ };
+ };
+
+ cpu = {
+ interval = 5;
+ format = " {icon0} {icon1} {icon2} {icon3} {icon4} {icon5} {icon6} {icon7}";
+ tooltip-format = "{usage}";
+ format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
+ };
+
+ tray = {
+ icon-size = 21;
+ spacing = 10;
+ };
+ };
+ };
+}