From 83aa4d9424b6c373b76b47dcbe113806e8b86b54 Mon Sep 17 00:00:00 2001 From: notgne2 Date: Wed, 21 Sep 2022 07:06:15 -0700 Subject: [PATCH] add de3 --- flake.nix | 7 +- home-manager/modules/colors.nix | 10 +- home-manager/modules/de2u.nix | 93 +++++--- home-manager/modules/de3u.nix | 376 ++++++++++++++++++++++++++++++ home-manager/modules/default.nix | 2 +- home-manager/modules/ezpcusr.nix | 32 +-- home-manager/modules/fonts.nix | 68 ++++-- home-manager/modules/gamerenv.nix | 51 ---- home-manager/modules/kermit.nix | 6 +- home-manager/users/notgne2.nix | 4 +- modules/de3.nix | 39 ++++ modules/default.nix | 1 + modules/ezpw.nix | 1 - modules/fuckingprint.nix | 126 +++++----- modules/workstation.nix | 2 + 15 files changed, 620 insertions(+), 198 deletions(-) create mode 100644 home-manager/modules/de3u.nix delete mode 100644 home-manager/modules/gamerenv.nix create mode 100644 modules/de3.nix diff --git a/flake.nix b/flake.nix index ee90874..014f360 100644 --- a/flake.nix +++ b/flake.nix @@ -54,6 +54,9 @@ url = "github:nix-community/npmlock2nix"; flake = false; }; + plasma-manager = { + url = "github:pjones/plasma-manager"; + }; }; outputs = { self, nixpkgs, ... }@inputs: { @@ -65,6 +68,7 @@ workstation = import ./modules/workstation.nix; ezpw = import ./modules/ezpw.nix; de2 = import ./home-manager/modules/de2.nix; + de3 = import ./home-manager/modules/de3.nix; all = import ./modules/default.nix; }; @@ -73,9 +77,8 @@ colors = import ./home-manager/modules/colors.nix inputs; fonts = import ./home-manager/modules/fonts.nix; gaming = import ./home-manager/modules/gaming.nix inputs; - gamerenv = import ./home-manager/modules/gamerenv.nix; kermit = import ./home-manager/modules/kermit.nix; - de2u = import ./home-manager/modules/de2u.nix inputs; + de3u = import ./home-manager/modules/de3u.nix inputs; all = import ./home-manager/modules/default.nix inputs; }; diff --git a/home-manager/modules/colors.nix b/home-manager/modules/colors.nix index 3773621..4d2f78a 100644 --- a/home-manager/modules/colors.nix +++ b/home-manager/modules/colors.nix @@ -2,7 +2,7 @@ inputs: { config, lib, pkgs, ... }: with lib; let - cfg = config.colors; + cfg = config.ezcolors; pow = n: i: if i == 1 then n else if i == 0 then 1 else n * pow n (i - 1); @@ -77,7 +77,7 @@ let }; in { - options.colors = { + options.ezcolors = { enable = mkEnableOption "Enable automatic colors"; base16Rgb = mkOption { @@ -243,9 +243,9 @@ in in mkIf cfg.enable { # Read only utility attributes - colors.base16 = if builtins.typeOf cfg.baseColors == "set" then cfg.baseColors else base16FromImage; - colors.base16Rgb = builtins.mapAttrs hexToRgb cfg.base16; - colors.base16Split = builtins.mapAttrs splitHex cfg.base16; + ezcolors.base16 = if builtins.typeOf cfg.baseColors == "set" then cfg.baseColors else base16FromImage; + ezcolors.base16Rgb = builtins.mapAttrs hexToRgb cfg.base16; + ezcolors.base16Split = builtins.mapAttrs splitHex cfg.base16; # Element xdg.configFile."Riot/config.json".text = builtins.toJSON elementConfig; diff --git a/home-manager/modules/de2u.nix b/home-manager/modules/de2u.nix index 72ab214..77f0646 100644 --- a/home-manager/modules/de2u.nix +++ b/home-manager/modules/de2u.nix @@ -22,8 +22,8 @@ in }; config = mkIf cfg.enable { - colors.enable = lib.mkDefault true; - fonts.enable = lib.mkDefault true; + ezcolors.enable = lib.mkDefault true; + ezfonts.enable = lib.mkDefault true; systemd.user.services.yubikey-touch-detector = { Service = { @@ -156,44 +156,69 @@ in }; xdg.configFile."mimeapps.list".force = true; - xdg.mimeApps = { - enable = true; - defaultApplications = - let - browser = - if config.programs.firefox.enable then - ( - if config.programs.firefox.package.pname == "firefox" then - "firefox.desktop" - else - "librewolf.desktop" - ) + xdg.mimeApps = let + browser = + if config.programs.firefox.enable then + ( + if config.programs.firefox.package.pname == "firefox" then + "firefox.desktop" else - "chromium-browser.desktop"; - in - { - "text/plain" = "org.gnome.TextEditor.desktop"; + "librewolf.desktop" + ) + else + "chromium-browser.desktop"; - "inode/directory" = "org.gnome.Nautilus.desktop"; + apps = { + "text/plain" = "org.gnome.TextEditor.desktop"; - "image/*" = "org.gnome.eog.desktop"; - "video/*" = "org.gnome.Totem.desktop"; + "inode/directory" = "org.gnome.Nautilus.desktop"; - "text/html" = browser; - "x-scheme-handler/http" = browser; - "x-scheme-handler/https" = browser; - "x-scheme-handler/about" = browser; + "image/*" = "org.gnome.eog.desktop"; + # and because mimeapps.list is DUMB + "image/jpeg" = "org.gnome.eog.desktop"; + "image/bmp" = "org.gnome.eog.desktop"; + "image/gif" = "org.gnome.eog.desktop"; + "image/jpg" = "org.gnome.eog.desktop"; + "image/pjpeg" = "org.gnome.eog.desktop"; + "image/png" = "org.gnome.eog.desktop"; + "image/tiff" = "org.gnome.eog.desktop"; + "image/x-bmp" = "org.gnome.eog.desktop"; + "image/x-gray" = "org.gnome.eog.desktop"; + "image/x-icb" = "org.gnome.eog.desktop"; + "image/x-ico" = "org.gnome.eog.desktop"; + "image/x-png" = "org.gnome.eog.desktop"; + "image/x-portable-anymap" = "org.gnome.eog.desktop"; + "image/x-portable-bitmap" = "org.gnome.eog.desktop"; + "image/x-portable-graymap" = "org.gnome.eog.desktop"; + "image/x-portable-pixmap" = "org.gnome.eog.desktop"; + "image/x-xbitmap" = "org.gnome.eog.desktop"; + "image/x-xpixmap" = "org.gnome.eog.desktop"; + "image/x-pcx" = "org.gnome.eog.desktop"; + "image/svg+xml" = "org.gnome.eog.desktop"; + "image/svg+xml-compressed" = "org.gnome.eog.desktop"; + "image/vnd.wap.wbmp" = "org.gnome.eog.desktop"; + "image/x-icns" = "org.gnome.eog.desktop"; - "x-scheme-handler/mailto" = "org.gnome.Geary.desktop"; + "video/*" = "org.gnome.Totem.desktop"; - "application/zip" = "org.gnome.FileRoller.desktop"; - "application/rar" = "org.gnome.FileRoller.desktop"; - "application/7z" = "org.gnome.FileRoller.desktop"; - "application/*tar" = "org.gnome.FileRoller.desktop"; + "text/html" = browser; + "x-scheme-handler/http" = browser; + "x-scheme-handler/https" = browser; + "x-scheme-handler/about" = browser; - "x-scheme-handler/sms" = "org.gnome.Shell.Extensions.GSConnect.desktop"; - "x-scheme-handler/tel" = "org.gnome.Shell.Extensions.GSConnect.desktop"; - }; + "x-scheme-handler/mailto" = "org.gnome.Geary.desktop"; + + "application/zip" = "org.gnome.FileRoller.desktop"; + "application/rar" = "org.gnome.FileRoller.desktop"; + "application/7z" = "org.gnome.FileRoller.desktop"; + "application/*tar" = "org.gnome.FileRoller.desktop"; + "x-scheme-handler/sms" = "org.gnome.Shell.Extensions.GSConnect.desktop"; + "x-scheme-handler/tel" = "org.gnome.Shell.Extensions.GSConnect.desktop"; + }; + in { + enable = true; + associations.added = apps; + defaultApplications = apps; }; dconf.settings = with lib.hm.gvariant; { @@ -219,7 +244,7 @@ in tray-pos = "center"; }; "org/gnome/shell/extensions/user-theme" = { - name = if config.colors.enable then "Generated" else "Default"; + name = if config.ezcolors.enable then "Generated" else "Default"; }; "org/gnome/shell/extensions/just-perfection" = { # activities-button = !cfg.tiling; # conflicts with unite? diff --git a/home-manager/modules/de3u.nix b/home-manager/modules/de3u.nix new file mode 100644 index 0000000..c53ee42 --- /dev/null +++ b/home-manager/modules/de3u.nix @@ -0,0 +1,376 @@ + +inputs: +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.de3u; +in +{ + imports = [ + inputs.plasma-manager.homeManagerModules.plasma-manager + ]; + + options.de3u = { + enable = mkEnableOption "Enable de3 user stuff"; + + tiling = mkOption { + type = types.bool; + default = true; + description = "Enable tiling stuff"; + }; + + touch = mkOption { + type = types.bool; + default = false; + description = "Make usable for touchscreens"; + }; + }; + + config = mkIf cfg.enable { + ezcolors.enable = lib.mkDefault true; + ezfonts.enable = lib.mkDefault true; + + home.file."${config.home.homeDirectory}/.gtkrc-2.0".force = true; + gtk.cursorTheme.name = "breeze_cursors"; + gtk.cursorTheme.size = 24; + gtk.iconTheme.name = "breeze-dark"; + gtk.gtk2.extraConfig = '' + gtk-primary-button-warps-slider=0 + gtk-toolbar-style=3 + gtk-menu-images=1 + gtk-button-images=1 + ''; + + programs.plasma = { + enable = true; + + workspace = { + clickItemTo = "open"; + }; + + files = { + kwinrc = { + Plugins.bismuthEnabled = true; + "Effect-windowview".BorderActivateAll = 9; + + Windows = { + SeparateScreenFocus = true; + FocusPolicy = "FocusFollowsMouse"; + DelayFocusInterval = 150; + }; + + Desktops = { + Name_1 = "Desktop 1"; + Name_2 = "Desktop 2"; + Name_3 = "Desktop 3"; + Name_4 = "Desktop 4"; + Name_5 = "Desktop 5"; + Name_6 = "Desktop 6"; + Name_7 = "Desktop 7"; + Name_8 = "Desktop 8"; + Name_9 = "Desktop 9"; + + Id_1 = "00b35302-cb53-4916-a0dc-298be5ff8aa5"; + Id_2 = "42f85748-5f93-4071-a52e-98d073ffaeb5"; + Id_3 = "08fadbbc-5dcd-4cb6-b2f1-c2c75ac7f502"; + Id_4 = "cb38b6b0-6027-4ef0-a249-0cdb74bfcb82"; + Id_5 = "18e21702-5ee1-4093-85e8-ba7fc2d97f56"; + Id_6 = "012bd0db-84ab-4f9a-8eb2-8ea50b23357e"; + Id_7 = "97465b5b-3409-47d6-9b89-a57e1906edc3"; + Id_8 = "f7d25083-250e-4bcf-84ee-340af7ad0eeb"; + Id_9 = "b8c3616c-7cef-4e67-92cf-661f3d32833e"; + + Number = 9; + }; + + "Script-bismuth" = { + untileByDragging = false; + }; + }; + + kdeglobals.General = { + BrowserApplication = + if config.programs.firefox.enable then + ( + if config.programs.firefox.package.pname == "firefox" then + "firefox.desktop" + else + "librewolf.desktop" + ) + else + "chromium-browser.desktop"; + TerminalApplication = "kermit"; + TerminalService = "kermit.desktop"; + }; + + kwalletrc = { + Wallet.Enabled = false; + "org.freedesktop.secrets".apiEnabled = false; + }; + }; + + hotkeys.commands."Launch Kermit" = { + key = "Meta+T"; + command = "kermit"; + }; + + shortcuts = { + "org.kde.krunner.desktop"."_launch" = ["Meta+D" "Search" "Alt+Space"]; + + plasmashell = { + "activate task manager entry 1" = [ ]; + "activate task manager entry 2" = [ ]; + "activate task manager entry 3" = [ ]; + "activate task manager entry 4" = [ ]; + "activate task manager entry 5" = [ ]; + "activate task manager entry 6" = [ ]; + "activate task manager entry 7" = [ ]; + "activate task manager entry 8" = [ ]; + "activate task manager entry 9" = [ ]; + "activate task manager entry 10" = [ ]; + "next activity" = [ ]; + "manage activities" = [ ]; + }; + + kwin = { + "Window Quick Tile Left" = []; + "Window Quick Tile Right" = []; + "Window Quick Tile Top" = []; + "Window Quick Tile Bottom" = []; + + "Switch to Desktop 1" = "Meta+1"; + "Switch to Desktop 2" = "Meta+2"; + "Switch to Desktop 3" = "Meta+3"; + "Switch to Desktop 4" = "Meta+4"; + "Switch to Desktop 5" = "Meta+5"; + "Switch to Desktop 6" = "Meta+6"; + "Switch to Desktop 7" = "Meta+7"; + "Switch to Desktop 8" = "Meta+8"; + "Switch to Desktop 9" = "Meta+9"; + + "Window to Desktop 1" = "Meta+!"; + "Window to Desktop 2" = "Meta+@"; + "Window to Desktop 3" = "Meta+#"; + "Window to Desktop 4" = "Meta+$"; + "Window to Desktop 5" = "Meta+%"; + "Window to Desktop 6" = "Meta+^"; + "Window to Desktop 7" = "Meta+&"; + "Window to Desktop 8" = "Meta+*"; + "Window to Desktop 9" = "Meta+("; + + "Window Close" = "Meta+Q"; + "Window Fullscreen" = "Meta+F"; + + view_zoom_in = "Meta++"; + view_zoom_out = "Meta+_"; + + "Window to Next Screen" = "Meta+>"; + "Window to Previous Screen" ="Meta+<"; + "Switch to Next Screen" = "Meta+."; + "Switch to Previous Screen" ="Meta+,"; + + "Show Desktop" = [ ]; + + "Window On All Desktops" = "Meta+A"; + }; + + bismuth = { + focus_next_window = "Meta+Tab"; + focus_prev_window = "Meta+Shift+Tab"; + focus_bottom_window = "Meta+Down"; + focus_left_window = "Meta+Left"; + focus_right_window = "Meta+Right"; + focus_upper_window = "Meta+Up"; + + next_layout = "Meta+Space"; + prev_layout = "Meta+Shift+Space"; + + toggle_window_floating = "Meta+S"; + + increase_window_height = "Meta+Shift+Up"; + decrease_window_height = "Meta+Shift+Down"; + increase_window_width = "Meta+Shift+Right"; + decrease_window_width = "Meta+Shift+Left"; + + increase_master_size = "Meta+="; + decrease_master_size = "Meta+-"; + + decrease_master_win_count = [ ]; + increase_master_win_count = [ ]; + move_window_to_bottom_pos = [ ]; + move_window_to_left_pos = [ ]; + move_window_to_next_pos = [ ]; + move_window_to_prev_pos = [ ]; + move_window_to_right_pos = [ ]; + move_window_to_upper_pos = [ ]; + push_window_to_master = [ ]; + rotate = [ ]; + rotate_part = [ ]; + rotate_reverse = [ ]; + toggle_float_layout = [ ]; + toggle_monocle_layout = [ ]; + toggle_quarter_layout = [ ]; + toggle_spiral_layout = [ ]; + toggle_spread_layout = [ ]; + toggle_stair_layout = [ ]; + toggle_three_column_layout = [ ]; + toggle_tile_layout = [ ]; + }; + }; + }; + + systemd.user.services.yubikey-touch-detector = { + Service = { + ExecStart = toString (pkgs.writeShellScript "yubikey-touch-detector-libnotify" '' + export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)" + ${pkgs.yubikey-touch-detector}/bin/yubikey-touch-detector -libnotify + ''); + }; + Install = rec { + WantedBy = [ "graphical-session.target" ]; + }; + }; + + programs.firefox = { + enable = lib.mkDefault true; + + package = lib.mkDefault (librewolf.override { + cfg = { + enableGnomeExtensions = true; + pipewireSupport = true; + }; + }); + + extensions = lib.optionals (pkgs ? nur.repos.rycee.firefox-addons) (with pkgs.nur.repos.rycee.firefox-addons; [ + darkreader + bitwarden + violentmonkey + canvasblocker + sponsorblock + stylus + vimium + ]); + + profiles.default = { + settings = { + "browser.startup.homepage" = "https://wizbos.club"; + + # Make the browser usable, if I wanted autism privacy, I would use TOR browser. + "privacy.resistFingerprinting" = false; + "webgl.disabled" = false; + "privacy.clearOnShutdown.history" = false; + "privacy.clearOnShutdown.cookies" = false; + "privacy.clearOnShutdown.sessions" = false; + "privacy.clearOnShutdown.cache" = false; + "places.history.enabled" = true; + "network.dns.disableIPv6" = false; + "media.peerconnection.ice.no_host" = false; + + # Make Jitsi work sanely + "media.setsinkid.enabled" = true; + "privacy.webrtc.legacyGlobalIndicator" = false; + "privacy.webrtc.hideGlobalIndicator" = true; + + # good tweaks + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "layers.acceleration.force-enabled" = true; + "gfx.webrender.all" = true; + "svg.context-properties.content.enabled" = true; + + "reader.color_scheme" = "dark"; + + # # LibreWolf ruins the user agent making sites unusable without RFP, so use the user agent from RFP manually. This also seems sane for compatibility when using Firefox. + # "general.useragent.override" = "Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"; + # set the user agent to a _realistic_ user agent because cloudflare keeps sniffing my balls + "general.useragent.override" = "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"; + }; + }; + }; + + programs.kermit = { + enable = lib.mkDefault true; + settings = { + key = lib.mkDefault "shift"; + opacity = lib.mkDefault "1"; + }; + }; + + home.packages = with pkgs; [ + plasma5Packages.bismuth + plasma5Packages.kate + + xdg-desktop-portal-kde + ]; + + systemd.user.sessionVariables = { + MOZ_ENABLE_WAYLAND = "1"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = lib.mkIf (cfg.tiling && !cfg.touch) "1"; + }; + + xdg.configFile."mimeapps.list".force = true; + xdg.mimeApps = let + browser = + if config.programs.firefox.enable then + ( + if config.programs.firefox.package.pname == "firefox" then + "firefox.desktop" + else + "librewolf.desktop" + ) + else + "chromium-browser.desktop"; + + apps = { + "text/plain" = "org.kde.kate.desktop"; + + "inode/directory" = "org.kde.dolphin.desktop"; + + "image/*" = "org.kde.gwenview.desktop"; + # and because mimeapps.list is DUMB + "image/jpeg" = "org.kde.gwenview.desktop"; + "image/bmp" = "org.kde.gwenview.desktop"; + "image/gif" = "org.kde.gwenview.desktop"; + "image/jpg" = "org.kde.gwenview.desktop"; + "image/pjpeg" = "org.kde.gwenview.desktop"; + "image/png" = "org.kde.gwenview.desktop"; + "image/tiff" = "org.kde.gwenview.desktop"; + "image/x-bmp" = "org.kde.gwenview.desktop"; + "image/x-gray" = "org.kde.gwenview.desktop"; + "image/x-icb" = "org.kde.gwenview.desktop"; + "image/x-ico" = "org.kde.gwenview.desktop"; + "image/x-png" = "org.kde.gwenview.desktop"; + "image/x-portable-anymap" = "org.kde.gwenview.desktop"; + "image/x-portable-bitmap" = "org.kde.gwenview.desktop"; + "image/x-portable-graymap" = "org.kde.gwenview.desktop"; + "image/x-portable-pixmap" = "org.kde.gwenview.desktop"; + "image/x-xbitmap" = "org.kde.gwenview.desktop"; + "image/x-xpixmap" = "org.kde.gwenview.desktop"; + "image/x-pcx" = "org.kde.gwenview.desktop"; + "image/svg+xml" = "org.kde.gwenview.desktop"; + "image/svg+xml-compressed" = "org.kde.gwenview.desktop"; + "image/vnd.wap.wbmp" = "org.kde.gwenview.desktop"; + "image/x-icns" = "org.kde.gwenview.desktop"; + + # "video/*" = "org.gnome.Totem.desktop"; + + "text/html" = browser; + "x-scheme-handler/http" = browser; + "x-scheme-handler/https" = browser; + "x-scheme-handler/about" = browser; + + # "x-scheme-handler/mailto" = "org.gnome.Geary.desktop"; + + # "application/zip" = "org.gnome.FileRoller.desktop"; + # "application/rar" = "org.gnome.FileRoller.desktop"; + # "application/7z" = "org.gnome.FileRoller.desktop"; + # "application/*tar" = "org.gnome.FileRoller.desktop"; + # "x-scheme-handler/sms" = "org.gnome.Shell.Extensions.GSConnect.desktop"; + # "x-scheme-handler/tel" = "org.gnome.Shell.Extensions.GSConnect.desktop"; + }; + in { + enable = true; + associations.added = apps; + defaultApplications = apps; + }; + }; +} diff --git a/home-manager/modules/default.nix b/home-manager/modules/default.nix index b97f307..de0231a 100644 --- a/home-manager/modules/default.nix +++ b/home-manager/modules/default.nix @@ -9,9 +9,9 @@ inputs: (import ./ezpcusr.nix inputs) (import ./colors.nix inputs) (import ./gaming.nix inputs) - ./gamerenv.nix ./fonts.nix ./kermit.nix (import ./de2u.nix inputs) + (import ./de3u.nix inputs) ]; } diff --git a/home-manager/modules/ezpcusr.nix b/home-manager/modules/ezpcusr.nix index d12c0e7..cf1bf78 100644 --- a/home-manager/modules/ezpcusr.nix +++ b/home-manager/modules/ezpcusr.nix @@ -4,7 +4,7 @@ with lib; let cfg = config.ezpcusr; - lockCommand = "${pkgs.swaylock-effects}/bin/swaylock --clock --indicator --screenshots --effect-scale 0.8 --effect-blur 8x3 --effect-vignette 0.2:0.5 --fade-in 0.5 --text-color ${config.colors.base16.base08} --inside-color ${config.colors.base16.base00} --ring-color ${config.colors.base16.base01} --datestr \"%Y-%m-%e\" --timestr \"%I:%M %p\""; + lockCommand = "${pkgs.swaylock-effects}/bin/swaylock --clock --indicator --screenshots --effect-scale 0.8 --effect-blur 8x3 --effect-vignette 0.2:0.5 --fade-in 0.5 --text-color ${config.ezcolors.base16.base08} --inside-color ${config.ezcolors.base16.base00} --ring-color ${config.ezcolors.base16.base01} --datestr \"%Y-%m-%e\" --timestr \"%I:%M %p\""; selshot = pkgs.writeScript "selshot.sh" '' #!${pkgs.zsh}/bin/zsh @@ -503,13 +503,13 @@ in style = '' window#waybar { - background: #${config.colors.base16.base01}; - color: #${config.colors.base16.base06}; + background: #${config.ezcolors.base16.base01}; + color: #${config.ezcolors.base16.base06}; } #custom-spacer { font-size: 12px; - color: #${config.colors.base16.base00}; + color: #${config.ezcolors.base16.base00}; font-weight: bold; margin: 0; padding: 0; @@ -531,7 +531,7 @@ in #custom-weather-precip, #custom-weather-wind, #custom-media { - background: #${config.colors.base16.base00}; + background: #${config.ezcolors.base16.base00}; padding: 5px 0; margin: 0; } @@ -546,32 +546,32 @@ in #custom-weather-wind { padding: 0 0 5px 0; } #custom-media.playing { - color: #${config.colors.base16.base0A}; + color: #${config.ezcolors.base16.base0A}; } #workspaces button.focused { - color: #${config.colors.base16.base0A}; + color: #${config.ezcolors.base16.base0A}; } #workspaces button:hover { - background: #${config.colors.base16.base02}; + background: #${config.ezcolors.base16.base02}; } #pulseaudio { - color: #${config.colors.base16.base0B}; + color: #${config.ezcolors.base16.base0B}; } #memory { - color: #${config.colors.base16.base0C}; + color: #${config.ezcolors.base16.base0C}; } #cpu { - color: #${config.colors.base16.base0D}; + color: #${config.ezcolors.base16.base0D}; } #battery { - color: #${config.colors.base16.base0E}; + color: #${config.ezcolors.base16.base0E}; } * { - font-family: "${config.fonts.favFont.name}"; - font-size: ${toString (config.fonts.favFont.size + 1)}px; + font-family: "${config.ezfonts.font.name}"; + font-size: ${toString (config.ezfonts.font.size + 1)}px; border-radius: 0; border: none; } @@ -596,8 +596,8 @@ in }; }; - colors.enable = lib.mkDefault true; - fonts.enable = lib.mkDefault true; + ezcolors.enable = lib.mkDefault true; + ezfonts.enable = lib.mkDefault true; programs.chromium.enable = lib.mkDefault true; diff --git a/home-manager/modules/fonts.nix b/home-manager/modules/fonts.nix index d06a6f8..8851019 100644 --- a/home-manager/modules/fonts.nix +++ b/home-manager/modules/fonts.nix @@ -1,15 +1,20 @@ -{ config, lib, pkgs, ... }: -with lib; -let - cfg = config.fonts; -in { - options.fonts = { + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.ezfonts; +in { + options.ezfonts = { enable = mkEnableOption "Enable automatic fonts"; - favFont = mkOption { + plasma = mkEnableOption "Enable automatic for plasma (using plasma-manager)"; + + font = mkOption { description = "Your favourite font"; - default = { }; + default = {}; type = types.submodule { options = { name = mkOption { @@ -19,7 +24,7 @@ in }; package = mkOption { type = types.package; - default = pkgs.nerdfonts.override { fonts = [ "Hack" "Monoid" "Hermit" ]; }; + default = pkgs.nerdfonts.override {fonts = ["Hack" "Monoid" "Hermit"];}; description = "Package for your font"; }; size = mkOption { @@ -32,41 +37,54 @@ in }; }; - config = - mkIf cfg.enable { + config = mkMerge [ + (mkIf cfg.enable { fonts.fontconfig.enable = lib.mkDefault true; - home.packages = [ cfg.favFont.package ]; + home.packages = [cfg.font.package]; programs.vscode.userSettings = { - "editor.fontFamily" = "\"${cfg.favFont.name}\""; + "editor.fontFamily" = "\"${cfg.font.name}\""; }; gtk.font = { - package = cfg.favFont.package; - name = "${cfg.favFont.name} ${toString cfg.favFont.size}"; + package = cfg.font.package; + name = "${cfg.font.name} ${toString cfg.font.size}"; }; programs.kitty.settings = { - font_family = cfg.favFont.name; - font_size = cfg.favFont.size; + font_family = cfg.font.name; + font_size = cfg.font.size; }; programs.kermit.settings = { - font = "${cfg.favFont.name}, normal ${toString cfg.favFont.size}"; + font = "${cfg.font.name}, normal ${toString cfg.font.size}"; }; - programs.rofi.font = "${cfg.favFont.name} ${toString cfg.favFont.size}"; + programs.rofi.font = "${cfg.font.name} ${toString cfg.font.size}"; - programs.mako.font = "${cfg.favFont.name} ${toString cfg.favFont.size}"; + programs.mako.font = "${cfg.font.name} ${toString cfg.font.size}"; wayland.windowManager.sway.config.fonts = { - names = [ cfg.favFont.name ]; - size = cfg.favFont.size + 0.0; + names = [cfg.font.name]; + size = cfg.font.size + 0.0; }; - xsession.windowManager.i3.config.fonts = [ cfg.favFont.name ]; + xsession.windowManager.i3.config.fonts = [cfg.font.name]; programs.neovim.extraConfig = '' - set guifont=${lib.replaceChars [ " " ] [ "\\ " ] cfg.favFont.name}:h${toString (cfg.favFont.size + 0.5)} + set guifont=${lib.replaceChars [" "] ["\\ "] cfg.font.name}:h${toString (cfg.font.size + 0.5)} ''; - }; + }) + (mkIf (cfg.enable && cfg.plasma) { + programs.plasma.files = { + kdeglobals.General = { + fixed = "${cfg.font.name},${toString cfg.font.size},-1,5,50,0,0,0,0,0"; + font = "${cfg.font.name},${toString cfg.font.size},-1,5,50,0,0,0,0,0"; + menuFont = "${cfg.font.name},${toString cfg.font.size},-1,5,50,0,0,0,0,0"; + smallestReadableFont = "${cfg.font.name},${toString (cfg.font.size - 2)},-1,5,50,0,0,0,0,0"; + toolBarFont = "${cfg.font.name},${toString cfg.font.size},-1,5,50,0,0,0,0,0"; + }; + kdeglobals.WM.activeFont = "${cfg.font.name},${toString cfg.font.size},-1,5,50,0,0,0,0,0"; + }; + }) + ]; } diff --git a/home-manager/modules/gamerenv.nix b/home-manager/modules/gamerenv.nix deleted file mode 100644 index b73c684..0000000 --- a/home-manager/modules/gamerenv.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ config, lib, pkgs, ... }: -with lib; -let - cfg = config.gamerenv; -in -{ - options.gamerenv = { - enable = mkEnableOption "Enable gaming environment stuff"; - }; - - config = mkIf cfg.enable { - programs.rofi = { - enable = lib.mkDefault true; - terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty"; - }; - - programs.kitty.enable = lib.mkDefault true; - - programs.chromium.enable = lib.mkDefault true; - - fonts.enable = lib.mkDefault true; - - colors = { - enable = lib.mkDefault true; - }; - - home.packages = with pkgs; [ - ark - unzip - unrar - - mpv - ]; - - xsession.enable = true; - xsession.windowManager.i3 = { - enable = true; - package = pkgs.i3-gaps; - config = { - modifier = "Mod1"; - terminal = "${pkgs.kitty}/bin/kitty"; - floating.criteria = [{ class = "[.]*"; }]; - defaultWorkspace = "workspace number 1"; - keybindings = lib.mkOptionDefault { - "Mod1+F4" = "kill"; - "${config.xsession.windowManager.i3.config.modifier}+q" = "kill"; - }; - }; - }; - }; -} diff --git a/home-manager/modules/kermit.nix b/home-manager/modules/kermit.nix index 8844ffb..75652e7 100644 --- a/home-manager/modules/kermit.nix +++ b/home-manager/modules/kermit.nix @@ -31,6 +31,10 @@ in } cfg.settings) + cfg.extraConfig; - home.packages = [ pkgs.kermit-terminal ]; + home.packages = [ (pkgs.kermit-terminal.overrideAttrs (super: { + postInstall = '' + sed -i 's/\/usr\/bin\///' $out/share/applications/kermit.desktop + ''; + })) ]; }; } diff --git a/home-manager/users/notgne2.nix b/home-manager/users/notgne2.nix index a9536e5..181d7b5 100644 --- a/home-manager/users/notgne2.nix +++ b/home-manager/users/notgne2.nix @@ -205,13 +205,13 @@ in echo "https://p.gen2.space/uploads/$fileid.$extension" ''; - fonts.favFont = { + ezfonts.font = { name = "Anonymice Nerd Font"; package = pkgs.nerdfonts.override { fonts = [ "AnonymousPro" ]; }; size = 11; }; - colors.baseColors = { + ezcolors.baseColors = { base00 = "282936"; base01 = "3a3c4e"; base02 = "4d4f68"; diff --git a/modules/de3.nix b/modules/de3.nix new file mode 100644 index 0000000..e4b7b5f --- /dev/null +++ b/modules/de3.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: +with lib; +let cfg = config.de3; +in { + options.de3.enable = mkEnableOption "Enable de3 system stuff"; + + config = mkIf cfg.enable { + i18n.inputMethod = { + enabled = "ibus"; + ibus.engines = with pkgs.ibus-engines; [ typing-booster uniemoji ]; + }; + + xdg.portal.enable = lib.mkDefault true; + xdg.portal.extraPortals = with pkgs; [ + xdg-desktop-portal-kde + xdg-desktop-portal-gnome + xdg-desktop-portal-gtk + ]; + + services.xserver = { + enable = lib.mkDefault true; + displayManager.sddm.enable = lib.mkDefault true; + desktopManager.plasma5.enable = lib.mkDefault true; + }; + + hardware.pulseaudio.enable = false; + services.power-profiles-daemon.enable = lib.mkDefault false; + + # for KDE connect + networking.firewall.allowedTCPPortRanges = [{ + from = 1714; + to = 1764; + }]; + networking.firewall.allowedUDPPortRanges = [{ + from = 1714; + to = 1764; + }]; + }; +} diff --git a/modules/default.nix b/modules/default.nix index 49302e5..b8ef97c 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -9,5 +9,6 @@ ./workstation.nix ./ezpw.nix ./de2.nix + ./de3.nix ]; } diff --git a/modules/ezpw.nix b/modules/ezpw.nix index 147892c..55d3209 100644 --- a/modules/ezpw.nix +++ b/modules/ezpw.nix @@ -199,7 +199,6 @@ in { ''; xdg.portal.enable = lib.mkDefault true; - xdg.portal.gtkUsePortal = lib.mkDefault true; xdg.portal.extraPortals = lib.mkDefault (with pkgs; [ xdg-desktop-portal-gnome xdg-desktop-portal-wlr diff --git a/modules/fuckingprint.nix b/modules/fuckingprint.nix index 8d7aae3..bd9597a 100644 --- a/modules/fuckingprint.nix +++ b/modules/fuckingprint.nix @@ -16,85 +16,91 @@ in config = mkIf cfg.enable { # Enable CUPS and SANE for printing and scanning - services.printing.enable = true; - services.printing.drivers = with pkgs; [ - gutenprint - gutenprintBin + services.printing = { + enable = true; + drivers = with pkgs; [ + gutenprint + gutenprintBin - hplip + hplip - samsung-unified-linux-driver - splix - brlaser + samsung-unified-linux-driver + splix + brlaser - brgenml1lpr - brgenml1cupswrapper + brgenml1lpr + brgenml1cupswrapper - carps-cups + carps-cups - epson-201106w - epson-alc1100 - epson-escpr - epson-escpr2 - epson-workforce-635-nx625-series - epson_201207w + epson-201106w + epson-alc1100 + epson-escpr + epson-escpr2 + epson-workforce-635-nx625-series + epson_201207w - fxlinuxprint + fxlinuxprint - canon-cups-ufr2 + canon-cups-ufr2 - cups-bjnp + cups-bjnp - cups-brother-hl1110 - cups-brother-hl1210w - cups-brother-hl3140cw - cups-brother-hll2340dw + cups-brother-hl1110 + cups-brother-hl1210w + cups-brother-hl3140cw + cups-brother-hll2340dw - cups-drv-rastertosag-gdi + cups-drv-rastertosag-gdi - cups-dymo + cups-dymo - cups-kyocera - cups-kyocera-ecosys-m552x-p502x - # cups-kyodialog3 # Mirror is down + # cups-kyocera # mirror is down + cups-kyocera-ecosys-m552x-p502x + # cups-kyodialog3 # Mirror is down - cups-toshiba-estudio + cups-toshiba-estudio - cups-zj-58 + cups-zj-58 - mfc9140cdncupswrapper - mfc9140cdnlpr + mfc9140cdncupswrapper + mfc9140cdnlpr - mfcj470dw-cupswrapper - mfcj470dwlpr + mfcj470dw-cupswrapper + mfcj470dwlpr - mfcj6510dw-cupswrapper - mfcj6510dwlpr + mfcj6510dw-cupswrapper + mfcj6510dwlpr - mfcl2700dncupswrapper - mfcl2700dnlpr - mfcl2720dwcupswrapper - mfcl2720dwlpr - mfcl2740dwcupswrapper - mfcl2740dwlpr + mfcl2700dncupswrapper + mfcl2700dnlpr + mfcl2720dwcupswrapper + mfcl2720dwlpr + mfcl2740dwcupswrapper + mfcl2740dwlpr - mfcl3770cdwcupswrapper - mfcl3770cdwlpr + mfcl3770cdwcupswrapper + mfcl3770cdwlpr - # Maybe this isn't a good idea? - (mfcl8690cdwcupswrapper.override { - mfcl8690cdwlpr = fixPlatforms mfcl8690cdwlpr; - }) - (fixPlatforms mfcl8690cdwlpr) - ]; - hardware.sane.enable = true; - hardware.sane.brscan4.enable = true; - hardware.sane.extraBackends = with pkgs; [ - utsushi - epkowa - hplipWithPlugin - brscan4 - dsseries - ]; + # Maybe this isn't a good idea? + (mfcl8690cdwcupswrapper.override { + mfcl8690cdwlpr = fixPlatforms mfcl8690cdwlpr; + }) + (fixPlatforms mfcl8690cdwlpr) + ]; + }; + hardware.sane = { + enable = true; + brscan4.enable = true; + brscan5.enable = true; + dsseries.enable = true; + drivers.scanSnap.enable = true; + extraBackends = with pkgs; [ + utsushi + epkowa + hplipWithPlugin + ]; + }; + services.udev.packages = [ pkgs.utsushi ]; }; } diff --git a/modules/workstation.nix b/modules/workstation.nix index b17b9d2..cde4f98 100644 --- a/modules/workstation.nix +++ b/modules/workstation.nix @@ -171,6 +171,8 @@ in { "podman" "input" "uinput" + "scanner" + "lp" ]; subUidRanges = [{