diff --git a/systems/balrog/default.nix b/systems/balrog/default.nix index 2d89ee4..198fb93 100644 --- a/systems/balrog/default.nix +++ b/systems/balrog/default.nix @@ -19,7 +19,7 @@ ../modules/bambu-studio-flatpak.nix ../modules/arduino-ide.nix ../modules/devenv.nix - ../modules/bitwarden.nix +# ../modules/bitwarden.nix ]; boot.kernelPackages = pkgs.linuxPackages_latest; diff --git a/systems/modules/home/programs/firefox.nix b/systems/modules/home/programs/firefox.nix index e3706a5..e49fa1c 100644 --- a/systems/modules/home/programs/firefox.nix +++ b/systems/modules/home/programs/firefox.nix @@ -1,9 +1,9 @@ -{ pkgs, ... }: +{ pkgs, config, ... }: { programs.firefox = { enable = true; - + configPath = "${config.xdg.configHome}/mozilla/firefox"; profiles.default = { settings = { "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; diff --git a/systems/modules/home/programs/nvim.nix b/systems/modules/home/programs/nvim.nix index 4f2a001..cfa2c99 100644 --- a/systems/modules/home/programs/nvim.nix +++ b/systems/modules/home/programs/nvim.nix @@ -3,6 +3,8 @@ { programs.neovim = { enable = true; + withRuby = false; + withPython3 = false; defaultEditor = true; extraLuaPackages = ps: [ ps.magick ]; extraPackages = [ @@ -27,7 +29,7 @@ image-nvim ]; - extraLuaConfig = '' + initLua = '' vim.cmd("colorscheme catppuccin-mocha") -- Basic settings vim.o.number = true diff --git a/systems/modules/home/wm/gtk.nix b/systems/modules/home/wm/gtk.nix index c80c880..9e6e322 100644 --- a/systems/modules/home/wm/gtk.nix +++ b/systems/modules/home/wm/gtk.nix @@ -15,6 +15,7 @@ name = "Adwaita"; package = pkgs.adwaita-icon-theme; }; + gtk4.theme = null; }; home.sessionVariables = { diff --git a/systems/modules/home/wm/hyprland.nix b/systems/modules/home/wm/hyprland.nix index 839a51e..325e0af 100644 --- a/systems/modules/home/wm/hyprland.nix +++ b/systems/modules/home/wm/hyprland.nix @@ -23,133 +23,145 @@ in wayland.windowManager.hyprland = { enable = true; - - settings = { - ### MONITOR - monitor = [ - "eDP-1,1920x1200,auto,1" - "DP-3,2440x1440,auto,1" - ",preferred,auto,1" - ]; - - ### VARIABLES - "$mod" = "SUPER"; - "$terminal" = "kitty"; - "$menu" = "rofi -show drun"; - "$bluetoothMenu" = "bzmenu --launcher rofi"; - "$files" = "rofi -show filebrowser"; - - ### BASIC LAYOUT - general = { - layout = "dwindle"; - resize_on_border = true; + configType = "lua"; + settings = + let + mkLuaInline = lib.generators.mkLuaInline; + toLua = lib.generators.toLua; + mkArgs = args: { _args = args; }; + bind = + keys: dispatcher: options: + mkArgs [ + keys + dispatcher + options + ]; + dsp = { + exec_cmd = app: mkLuaInline ''hl.dsp.exec_cmd("${app}")''; + focus = arg: mkLuaInline "hl.dsp.focus(${toLua { } arg})"; + window = { + move = arg: mkLuaInline "hl.dsp.window.move(${toLua { } arg})"; + drag = mkLuaInline "hl.dsp.window.drag()"; + resize = mkLuaInline "hl.dsp.window.resize()"; + close = mkLuaInline "hl.dsp.window.close()"; + kill = mkLuaInline "hl.dsp.window.kill()"; + fullscreen = mkLuaInline "hl.dsp.window.fullscreen()"; + }; + exit = mkLuaInline "hl.dsp.exit()"; + workspace = { + move = arg: mkLuaInline "hl.dsp.workspace.move(${toLua { } arg})"; + }; }; - - decoration = { - inactive_opacity = 0.8; - active_opacity = 0.9; - rounding = 5; - rounding_power = 2.5; - blur = { - enabled = true; - brightness = 1.0; - contrast = 1.0; - noise = 0.01; - - vibrancy = 0.2; - vibrancy_darkness = 0.5; - - passes = 4; - size = 7; - - popups = true; - popups_ignorealpha = 0.2; + mod = "SUPER"; + workspaces = lib.stringToCharacters "abcdefgimnopqrstuvwxyz"; + in + { + config = { + general = { + resize_on_border = true; + allow_tearing = true; }; - shadow = { - enabled = true; - color = "rgba(00000055)"; - #ignore_window = true; - offset = "0 15"; - range = 100; - render_power = 2; - scale = 0.97; + animations.enabled = true; + + decoration = { + inactive_opacity = 0.8; + active_opacity = 0.9; + rounding = 5; + rounding_power = 2.5; + blur = { + enabled = true; + brightness = 1.0; + contrast = 1.0; + noise = 0.01; + + vibrancy = 0.2; + vibrancy_darkness = 0.5; + + passes = 4; + size = 7; + + popups = true; + popups_ignorealpha = 0.2; + }; + shadow = { + enabled = true; + color = "rgba(00000055)"; + offset = "0 15"; + range = 100; + render_power = 2; + scale = 0.97; + }; + }; + + misc = { + focus_on_activate = true; }; }; - # Use the configurable option here (default `[ "waybar" ]`) - exec-once = (if cfg == null then { execOnce = [ "waybar" ]; } else cfg).execOnce; + bind = lib.flatten [ + (bind "${mod} + Q" (dsp.window.kill) { }) + (bind "${mod} + L" (dsp.exec_cmd "hyprlock") { }) + (bind "${mod} + D" (dsp.exec_cmd "rofi -show drun") { }) + (bind "${mod} + B" (dsp.exec_cmd "bzmenu --launcher rofi") { }) + (bind "${mod} + F" (dsp.window.fullscreen) { }) + (bind "${mod} + Z" (dsp.exec_cmd "hyprshot -m region") { }) + (bind "${mod} + M" (dsp.exit) { }) + (bind "${mod} + SPACE" (dsp.exec_cmd "firefox") { }) + (bind "${mod} + RETURN" (dsp.exec_cmd "kitty") { }) - ### INPUT - input = { - kb_layout = "us"; - }; + (bind "${mod} + SHIFT + LEFT" (dsp.window.move { direction = "l"; }) { }) + (bind "${mod} + SHIFT + DOWN" (dsp.window.move { direction = "d"; }) { }) + (bind "${mod} + SHIFT + UP" (dsp.window.move { direction = "u"; }) { }) + (bind "${mod} + SHIFT + RIGHT" (dsp.window.move { direction = "r"; }) { }) - ### KEYBINDINGS - bind = [ - # Apps - "$mod, RETURN, exec, $terminal" - "$mod, D, exec, $menu" - "$mod, B, exec, $bluetoothMenu" - "$mod, G, exec, $files" - "$mod, Q, killactive" - "$mod, F, fullscreen" - "$mod, M, exit" - "$mod, L, exec, hyprlock" + (bind "${mod} + LEFT" (dsp.focus { direction = "l"; }) { }) + (bind "${mod} + DOWN" (dsp.focus { direction = "d"; }) { }) + (bind "${mod} + UP" (dsp.focus { direction = "u"; }) { }) + (bind "${mod} + RIGHT" (dsp.focus { direction = "r"; }) { }) - # show/hide waybar - "$mod, W, exec, pkill -SIGUSR1 -f '^waybar$'" + (bind "${mod} + 1" (dsp.focus { workspace = 1; }) {}) + (bind "${mod} + 2" (dsp.focus { workspace = 2; }) {}) + (bind "${mod} + 3" (dsp.focus { workspace = 3; }) {}) + (bind "${mod} + 4" (dsp.focus { workspace = 4; }) {}) + (bind "${mod} + 5" (dsp.focus { workspace = 5; }) {}) + (bind "${mod} + 6" (dsp.focus { workspace = 6; }) {}) + (bind "${mod} + 7" (dsp.focus { workspace = 7; }) {}) + (bind "${mod} + 8" (dsp.focus { workspace = 8; }) {}) + (bind "${mod} + 9" (dsp.focus { workspace = 9; }) {}) - # Focus - "$mod, LEFT, movefocus, l" - "$mod, RIGHT, movefocus, r" - "$mod, UP, movefocus, u" - "$mod, DOWN, movefocus, d" + (bind "${mod} + SHIFT + 1" (dsp.window.move { workspace = 1; }) {}) + (bind "${mod} + SHIFT + 2" (dsp.window.move { workspace = 2; }) {}) + (bind "${mod} + SHIFT + 3" (dsp.window.move { workspace = 3; }) {}) + (bind "${mod} + SHIFT + 4" (dsp.window.move { workspace = 4; }) {}) + (bind "${mod} + SHIFT + 5" (dsp.window.move { workspace = 5; }) {}) + (bind "${mod} + SHIFT + 6" (dsp.window.move { workspace = 6; }) {}) + (bind "${mod} + SHIFT + 7" (dsp.window.move { workspace = 7; }) {}) + (bind "${mod} + SHIFT + 8" (dsp.window.move { workspace = 8; }) {}) + (bind "${mod} + SHIFT + 9" (dsp.window.move { workspace = 9; }) {}) - # Workspaces - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" + (bind "XF86AudioLowerVolume" (dsp.exec_cmd "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-") { + repeating = true; + locked = true; + }) + (bind "XF86AudioRaiseVolume" (dsp.exec_cmd "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+") { + repeating = true; + locked = true; + }) + (bind "XF86AudioPlay" (dsp.exec_cmd "playerctl play-pause") { locked = true; }) + (bind "XF86AudioPrev" (dsp.exec_cmd "playerctl previous") { locked = true; }) + (bind "XF86AudioNext" (dsp.exec_cmd "playerctl next") { locked = true; }) - "$mod SHIFT, 1, movetoworkspace, 1" - "$mod SHIFT, 2, movetoworkspace, 2" - "$mod SHIFT, 3, movetoworkspace, 3" - "$mod SHIFT, 4, movetoworkspace, 4" - "$mod SHIFT, 5, movetoworkspace, 5" - "$mod SHIFT, 6, movetoworkspace, 6" - "$mod SHIFT, 7, movetoworkspace, 7" - "$mod SHIFT, 8, movetoworkspace, 8" - "$mod SHIFT, 9, movetoworkspace, 9" - - # Window movement - "$mod SHIFT, LEFT, movewindow, l" - "$mod SHIFT, RIGHT, movewindow, r" - "$mod SHIFT, UP, movewindow, u" - "$mod SHIFT, DOWN, movewindow, d" - - # Hyprshot - "$mod, Z, exec, hyprshot -m region" - - # Media keys - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ", XF86AudioNext, exec, playerctl next" - ", XF86AudioPrev, exec, playerctl previous" - - ", XF86Calculator, exec, speedcrunch" + (bind "${mod} + mouse:272" dsp.window.drag { mouse = true; }) + (bind "${mod} + mouse:273" dsp.window.resize { mouse = true; }) ]; - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" + on = mkArgs [ + "hyprland.start" + (mkLuaInline '' + function() + hl.exec_cmd("waybar") + end'') ]; }; }; diff --git a/systems/modules/users.nix b/systems/modules/users.nix index 0da110e..2f90166 100644 --- a/systems/modules/users.nix +++ b/systems/modules/users.nix @@ -10,7 +10,7 @@ home-manager legcord spotify - protonvpn-gui + proton-vpn ]; shell = pkgs.zsh; };