diff --git a/home/default.nix b/home/default.nix deleted file mode 100644 index c35a77c..0000000 --- a/home/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ - stateVersion, - username, - homeDirectory, - pkgs, - ... -}: -{ - imports = [ - ./firefox - ./fish - ./sway - ./neovim - ./rofi - ./thunderbird - ./git - ./vscodium - ./themes/catppuccin.nix - ]; - - dconf = { - enable = true; - settings."org/virt-manager/virt-manager/connections" = { - autoconnect = [ "qemu:///system" ]; - uris = [ "qemu:///system" ]; - }; - }; - - services.blueman-applet.enable = true; - - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; - - home = { - inherit stateVersion; - inherit username; - inherit homeDirectory; - - packages = - let - pk = with pkgs; [ - digikam - fragments - element-desktop - libreoffice - loupe - gnome.seahorse - gimp - vlc - thunderbird - keepassxc - gnome.nautilus - rofi-power-menu - lollypop - protonmail-bridge-gui - varia - signal-desktop - calibre - - # Proprietary - postman - mongodb-compass - obsidian - - # CLI tools - delta - fzf - jhead - fdupes - exiftool - sshfs - zip - unzip - lazygit - fd - ripgrep - swaybg - ]; - scripts = with import ./scripts { inherit pkgs; }; [ - screenshot - set-background - nixedit - ]; - in - scripts ++ pk; - }; -} diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix index 35a2272..3cdf290 100644 --- a/home/hyprland/default.nix +++ b/home/hyprland/default.nix @@ -74,13 +74,24 @@ lib.mkIf osConfig.programs.hyprland.enable { vibrancy = 0.1696; }; }; - windowrulev2 = [ - "float,initialClass:(com.nextcloud.desktopclient.nextcloud)" - "bordercolor rgba(FF0000AA) rgba(88080877),fullscreen:1" - "float,initialClass:(org.keepassxc.KeePassXC)" - "workspace 2,initialClass:(firefox)" - "workspace 5,initialClass:(lollypop)" - ]; + windowrulev2 = + let + mkRegexList = list: "^(${(lib.strings.concatStringsSep "|" list)})$"; + in + [ + "float,initialClass:(${ + mkRegexList [ + "com.nextcloud.desktopclient.nextcloud" + "soffice" + "xdg-desktop-portal-gtk" + ] + })" + "bordercolor rgb(e50000) rgb(ff8d00) rgb(ffee00) rgb(028121) rgb(004cff) rgb(770088), fullscreen:1" + "workspace 2,initialClass:(${mkRegexList [ "firefox" ]})" + "workspace 3,initialClass:(${mkRegexList [ "obsidian" ]})" + "workspace 4,initialClass:(${mkRegexList [ "discord" ]})" + "workspace 5,initialClass:(${mkRegexList [ "lollypop" ]})" + ]; # https://wiki.hyprland.org/Configuring/Variables/#animations animations = { @@ -106,11 +117,6 @@ lib.mkIf osConfig.programs.hyprland.enable { preserve_split = true; # You probably want this }; - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - #master = { - #new_status = "master"; - #}; - # https://wiki.hyprland.org/Configuring/Variables/#misc misc = { force_default_wallpaper = -1; # Set to 0 or 1 to disable the anime mascot wallpapers @@ -126,7 +132,7 @@ lib.mkIf osConfig.programs.hyprland.enable { "$mod, Return, exec, ${pkgs.alacritty}/bin/alacritty" #"$mod, S, exec, rofi -show clipboard -show-icons" "$mod SHIFT, Q, killactive," - "$mod SHIFT, P, exec, rofi -show p -modi p:rofi-power-menu" + "$mod SHIFT, P, exec, rofi -show p -modi p:${pkgs.rofi-power-menu}/bin/rofi-power-menu" "$mod, P, exec, cliphist wipe & ${pkgs.hyprlock}/bin/hyprlock" "$mod SHIFT, C, exec, hyprctl reload" "$mod, left, movefocus, l" @@ -143,6 +149,19 @@ lib.mkIf osConfig.programs.hyprland.enable { "$mod, U, exec, ${pkgs.hyprpicker}/bin/hyprpicker -r -z & ${pkgs.hyprshot}/bin/hyprshot -o ~/Pictures/screenshots -m region" "$mod CTRL, U, exec, ${pkgs.hyprpicker}/bin/hyprpicker -r -z & ${pkgs.hyprshot}/bin/hyprshot -o ~/Pictures/screenshots -m window" "$mod SHIFT, U, exec, ${pkgs.hyprshot}/bin/hyprshot -o ~/Pictures/screenshots -m active -m output" + + #: Brightness and Media {{{ + ",XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +10%" + ",XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 10%-" + ",XF86AudioRaiseVolume, exec, ${pkgs.pamixer}/bin/pamixer -i 5" + ",XF86AudioLowerVolume, exec, ${pkgs.pamixer}/bin/pamixer -d 5" + ",XF86AudioMicMute, exec, ${pkgs.pamixer}/bin/pamixer --default-source -m" + ",XF86AudioMute, exec, ${pkgs.pamixer}/bin/pamixer -t" + ",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" + ",XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause" + ",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" + ",XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" + #: }}} ] ++ ( # workspaces diff --git a/home/sway/default.nix b/home/sway/default.nix index 3d2a30a..a51eaf6 100644 --- a/home/sway/default.nix +++ b/home/sway/default.nix @@ -65,7 +65,7 @@ lib.mkOptionDefault { # TODO: Update to use nixpkgs version of cliphist "${mod}+p" = "exec cliphist wipe & ${pkgs.swaylock}/bin/swaylock"; - "${mod}+Shift+p" = "exec rofi -show p -modi p:rofi-power-menu"; + "${mod}+Shift+p" = "exec rofi -show p -modi p:${pkgs.rofi-power-menu}/bin/rofi-power-menu"; # Reload the config file "${mod}+Shift+c" = "reload"; # Kill the focused window diff --git a/hosts/brontes/configuration.nix b/hosts/brontes/configuration.nix index 87975d6..8d39182 100644 --- a/hosts/brontes/configuration.nix +++ b/hosts/brontes/configuration.nix @@ -20,7 +20,7 @@ hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; services.blueman.enable = true; - + services.flatpak.enable = true; services.greetd = { enable = true; settings = rec { @@ -31,6 +31,13 @@ default_session = initial_session; }; }; + + #: Power Consumption {{{ + services.logind = { + powerKey = "hibernate"; + }; + #: }}} + xdg.portal = { enable = true; config.common.default = "*"; diff --git a/hosts/brontes/home.nix b/hosts/brontes/home.nix index c3001a4..d3e3129 100644 --- a/hosts/brontes/home.nix +++ b/hosts/brontes/home.nix @@ -48,10 +48,10 @@ gnome.seahorse gimp vlc + pavucontrol thunderbird keepassxc gnome.nautilus - rofi-power-menu lollypop protonmail-bridge-gui varia @@ -59,6 +59,9 @@ calibre alacritty + # proprietary + obsidian + # CLI tools delta fzf diff --git a/hosts/marr/configuration.nix b/hosts/marr/configuration.nix index d3c0af2..33f1ec8 100644 --- a/hosts/marr/configuration.nix +++ b/hosts/marr/configuration.nix @@ -1,24 +1,18 @@ # vim:fileencoding=utf-8:foldmethod=marker { - config, pkgs, - lib, inputs, - system, username, hostname, ... }: -let - stateVersion = "23.11"; - homeDirectory = "/home/${username}"; -in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix inputs.home-manager.nixosModules.home-manager ../../modules + ./home.nix ]; # Bootloader. @@ -40,36 +34,10 @@ in variant = ""; }; - services.logind = { - lidSwitch = "suspend-then-hibernate"; - powerKey = "hibernate"; - }; - systemd.sleep.extraConfig = '' HibernateDelaySec=1200 ''; - xdg.mime = { - enable = true; - defaultApplications = - let - fileManager = "org.gnome.Nautilus.desktop"; - browser = "firefox.desktop"; - in - { - "inode/directory" = fileManager; - "application/zip" = fileManager; - "application/pdf" = browser; - "x-www-browser" = browser; - "text/html" = browser; - "image/*" = "org.gnome.Loupe.desktop"; - "image/png" = "org.gnome.Loupe.desktop"; - "image/jpeg" = "org.gnome.Loupe.desktop"; - "x-scheme-handler/http" = browser; - "x-scheme-handler/https" = browser; - }; - }; - programs = { dconf.enable = true; steam.enable = true; @@ -79,19 +47,6 @@ in sway.enable = true; }; - home-manager.users.${username} = import ../../home { - inherit - config - pkgs - system - inputs - stateVersion - username - lib - homeDirectory - ; - }; - #: Virtualisation {{{ virtualisation.docker.enable = true; virtualisation.docker.enableOnBoot = false; @@ -104,6 +59,12 @@ in #: }}} #: Power Consumption {{{ + + services.logind = { + lidSwitch = "suspend-then-hibernate"; + powerKey = "hibernate"; + }; + services.thermald.enable = true; services.tlp = { @@ -245,5 +206,5 @@ in # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = stateVersion; # Did you read the comment? + system.stateVersion = "23.11"; # Did you read the comment? } diff --git a/hosts/marr/home.nix b/hosts/marr/home.nix new file mode 100644 index 0000000..6c8c3a2 --- /dev/null +++ b/hosts/marr/home.nix @@ -0,0 +1,88 @@ +{ + username, + pkgs, + config, + ... +}: +{ + home-manager.users.${username} = { + imports = [ + ../../home/firefox + ../../home/fish + ../../home/sway + ../../home/neovim + ../../home/rofi + ../../home/thunderbird + ../../home/git + ../../home/vscodium + ../../home/themes/catppuccin.nix + ]; + + dconf = { + enable = true; + settings."org/virt-manager/virt-manager/connections" = { + autoconnect = [ "qemu:///system" ]; + uris = [ "qemu:///system" ]; + }; + }; + + services.blueman-applet.enable = true; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + + home = { + stateVersion = config.system.stateVersion; + inherit username; + + packages = + let + pk = with pkgs; [ + digikam + fragments + element-desktop + libreoffice + loupe + gnome.seahorse + gimp + vlc + thunderbird + keepassxc + gnome.nautilus + lollypop + protonmail-bridge-gui + varia + signal-desktop + calibre + + # Proprietary + postman + mongodb-compass + obsidian + + # CLI tools + delta + fzf + jhead + fdupes + exiftool + sshfs + zip + unzip + lazygit + fd + ripgrep + swaybg + ]; + scripts = with import ../../home/scripts { inherit pkgs; }; [ + screenshot + set-background + nixedit + ]; + in + scripts ++ pk; + }; + }; +} diff --git a/modules/default.nix b/modules/default.nix index cb4f4e7..02c9e1d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -12,5 +12,6 @@ ./programs/steam.nix ./programs/hyprland.nix ./home-manager.nix + ./system/mime.nix ]; } diff --git a/modules/system/mime.nix b/modules/system/mime.nix index ffcd441..37ee000 100644 --- a/modules/system/mime.nix +++ b/modules/system/mime.nix @@ -1 +1,24 @@ -{ } +{ + xdg.mime = { + enable = true; + defaultApplications = + let + fileManager = "org.gnome.Nautilus.desktop"; + browser = "firefox.desktop"; + in + { + "inode/directory" = fileManager; + "application/zip" = fileManager; + "application/pdf" = browser; + "x-www-browser" = browser; + "text/html" = browser; + "application/vnd.comicbook+zip" = "calibre-ebook-viewer.desktop"; + "application/epub+zip" = "calibre-ebook-viewer.desktop"; + "image/*" = "org.gnome.Loupe.desktop"; + "image/png" = "org.gnome.Loupe.desktop"; + "image/jpeg" = "org.gnome.Loupe.desktop"; + "x-scheme-handler/http" = browser; + "x-scheme-handler/https" = browser; + }; + }; +}