QF7VMCPGQIVJI2CPGJOEWS3ROVCB2CB7STNZ4N55UHMGWOZAHJIAC PGJYSY2D63EFOMDLU3MIHAMCF7KFGEGXJJYCLZSBOV776IVPRW2AC SBZM65IDAB2EJ5AN6MGG5CYEDIEEKUODGUONIPAH3MN6AJC7DTSAC MHJCIXVAULWHQDQPGYJ3Q5WHWWPKFDVHBCCNVNZNO7YD7C36634AC UBNQJFVHTUHQYMCYTDBDHVIK4WQIWW3SCAWK4SFBQ2IH4YKCT7CQC VFRGDYEDRW5VPZDE6J4EZEUCMUACSA4KRWMPS73N3Q2VZ252CULAC 2DOHF7YTTNCYHVAW6TY6AQVQZ3TV3JK4SCF7LZQTLBILP3K5NIWAC V5ZVOMYT5LDNZNQGURAO4GM76ZATAPJHJ76YBO36URAAVAYFFENQC IWXQRSNIUR6NGULYQZ2AJA6T254TWEDOOQJGTLLVT6LAFOFWRTBAC IEQ3LC3LCWZGWJ6I2L2NHBIHMY5RQECYFSUOX4J3DJX2WUFOIVNQC VXESMJDKIRYTNWV6PVDZUSECSP7ESMK5LZPEE72DFBUU5MH7GWLAC E56TRR6IFFHTTJWJ4UUGKDSDGTN4YBIDYJCVLDRLMNY3MS3TWXSQC YBD5JJV7JVV6BVGGMNKQDV4U2QPAOKGNRUK2OVY7LFSDU5RWHCKAC KKCVWPZBCISNT4HY26CC3WPJVYCRYPYS7OL2DS77ILDG5SKCZ67QC 3OAFCHK7EIRUD3ZLAGZ3MAXVYOGFAJVDOF63ZIGNU7I3RWIPMAOQC COUSBBHL5XPZC5KWCYFFAE554D4VFFO55QOD726ODWIRZGWOUSUAC TEJLAHEG6JYVPWBHUHIO6NTSB7HO62RJ6G5J2B6UNPDVG7XK4XIAC 47GPXWYAN5HMMVVIWFEAY63MID4U2UHIBH4HNMDYWNQ2J6E2WX6AC O4DFDXEXZ7ONXUAKX4AKXXL5HXGWOG3T6N7R4JRICGF2OTQISIXQC TAHNZ4UZMQJ5SM5GGVXCSZNX2ZFA5MBPBEDZLBR3NPT6ECC5OEWQC 63V33W2SH4HOO7OZDP34ZPKOTQJI2VZYXTS5JDCZ6DJYC4OE2O3QC T4B2IJ4JIWX4C4QJI2S5TQHBO4U4ZFCIWR2VNIH6MGAOPMIAVHAQC U3DBDNNY3257W2VS7TKQ67EJRGN53CXF2H2XXNKJSNE7QR4W3UPAC IPBSEPO6VM4TEPOL2MN47EINIPMHJB63XUBZRCXO5EN3STGBNNVAC RXBDEA7Y6GVBXK4I3T4WRHGNF4E334QGH7OEBPZWD2GZC7HY7IBAC W6GZ3OOBTJG4IYCGZIB5L2KQ623JSGOTBUTLDVM5JB4LXFFMYCUQC OAVCY7YYCDLYL4V3LMWSFEFIRVNV4XDIIFKAEZBLHUHZTW7QNIGQC YCLCLKWHFN47MFXOEAUAMLI7STJ5O734C5ZHFA65NYR4QEDAAH6AC FOKLIP6Z2B4ZEB4G4U6QHPJXF6Y2RP2I625RHKGCDGYCMMNOAXMQC U6GSJX5ZG4O7R3XO4CA7G62TTDE22HRZ2LL7EQKLQSYCHCAA3CQQC 2KXMUFYOTAZO5GFGRFG6GGFJ3BIFO42O7CXBQRP2XH5WWZUOT6UAC 2DCSBI5WHA34B5NDE27MLEFQALF3O2MN4W75E5Y6EIVBY5C3JM6QC EKNR3UNTAR2MCROCKAYF3UUJBG56ZV2AUJD4BMQYGQJ3KUZT4GKQC WMTJ6SFPQQLGNOQKWJBWDMOX2WQ6H2XB4LH7ASRWMNRN7GZDJHRAC WJXAODNJYL54BUFSRF3G2AEBWEI6Q4YH5DXYLK3UYC6JRJYGG7TQC VBIKNV64COAFFZXT2MWPUFAZPSPFIIK2TOPGBXKIOU7XCVQ4LJ6AC 5IICKR367UII6EKVH5ARJXPNAKEQVWW4L4OTYAZFDNFHJOZRUN6QC SYTPYTMXWHIFHN3ENTDGOGSXWSXPKQUURXJTHSDUGOYA5QPGC45QC 56ZOC57Z47IQIUS67COAGYXGVXKUR2A5EY64DQNVTX6QVR2ZTCFAC ETZODWYHUKPJZ77XGNOLH6RTYPWWA5W236UJRQQWGVDRM5FPECHAC KOJUSLZEOGTPYW2EGQY6PZKGGMOL6PLIQ7NUAJR26S5HZZZQQJYQC WVAJNAJ4EVTTIREWQDTBMGASLMWJUVBHIM2MKKOFTFYVIIMR6CBAC QRSG7RJSX5R255Y2HHTLYBXMBR374QS3PV2UJDWK2ZPMG7V66SSAC 5HLAP6OIMUSEZK2JBMEG7LUHNZZIBWPJBPZBB4S6FUBHD5L43VAQC MW575RFTDFT5GPNR373ECHKFG6T66IKMSIMRGB3ZBKLAYATGVDVQC HQAWYBVCFQ2PBNEKQFMBBJRIJAWU75TAKYMREN6TSXDXNN7ORXWAC HBLAD3UT5OW4AVVJKVN55YQBJNWEACH5IOC5IFBKXJ33XQLUIHGQC 2DRB4ZNFY2X3DCVSWUDGFG5CAHACD3FZ54XEWSLM2ZDSA2QZRTGQC 4A5J4ZQ3HM2ZK6OO7N3RZ2WX3YHNGA3X5WJIB4UQJPQGUG4O3AYQC MCWHHFXCN3EIFDI275QPLOLB3IU4TXNGULKWGLDY4RPFR2M2TPTAC 4PEXC6EE4FNTPUYT64XDSOD6X5IVDY3Y2QDKYTSHEBOYS4JATQTQC CL7RP3ZICLJT7YUI3O54IB2GZY7QMKK7ZC6GZPDXFYQKOOM64CHQC PS2VFJMZVN77RHZFVUVD2DA3MZNMXYPHT6XRHW2EUTZRGLAXF4YQC IKVV4XDUTXIEYX6G3GRZEVXK5IWGKZOMG76BO25GS6K3JOUTXK4AC DIBIWJDRVRG7OISTB7UO2DJ5PVQNZKMZLHBUP6WF4A5OZZWZSQTQC CDPM6DBHOVF7BELYPC27BZNFQ6DFENMCERT2PB45ED2H25GBK2LAC NJ5ENURMCBSNFQPNXXNUBMUXVJEBIGNH2T7EWGB63F3FV723BUWAC INKINKWN6MRRH4CGUVTWI5TQ7VSCHA6ODXMLHVVFCHYPM27AYNNQC WDE4LLYP24YKDAV6PW62DFNWV3WZWQUUPA7CZH6STDZFYU7ARERQC 7UWOMG432IHX7BGGN7PPQUGSSUP6CCQNBXOO7TKNMKMK2R2WFOGAC WWLIQ2NGWGL6JAQ2GS5K2SJEGKXR5I4L5HLSSJCDWLDLSA4FIO2AC TIAN54QWQA6YCIYL6C7YXXELA3SKBSMP2Y3ET2YLRWHHOPDE3Y3AC UGB75SJDEEIESGIBHGNFNLBXDRVG5RTSQGXCPX6YALFUOGDKWZHQC BPBU3VMEUPTXFVYKEPATHO6O5ZUN3I4MW6MRWHPIUXSWJ73WTX5AC UIUV6ER2W7XTLBOLPPZWVW4UOZ4KQWKFOYAEBUGSSCZ7BMSZRP3AC FXR6YZV6PHT4EQ5TEJP5UPDYPWEDGJ5BVULM2C5KQWZD4IBER46AC TXU55BEHKBJLAFQATXNK36M3CM2KNH3YCQCVF54NK7O2CO4LHM4QC MLRHVC6KVWGVDIQMAUMNAGWYBB6AQAJCEJY7MKDGN72JRC74VT6AC VRVC5LOKAOVX4N4BHXKUWVZF54LTFGBGXP5RHLXBOZVDFTCIOXJAC ISTJKNJXBXQUSRXCILUOFWNDHC4N7VM2BJ4IGFGYCBBFXGDEVSQQC IZ6I7IFHKZLD4EUJHSRGGRMVNKMOBNHCV7HPQUK2CUGP5M7EGEFAC BJKOD7ZFG2DJGJ6E4WZJD6ITNMRNNCALRVTNX26LMDSRK6VLNJGAC {}config,pkgs,...}: letgui =if config.wayland.windowManager.sway.enablethen [pkgs.megasync]else [];in {config.home.packages = with pkgs; [megacmd] ++ gui;config.systemd.user.services.mega-cmd-server-init = {Unit.Description = "Try to start mega-cmd when sway starts.";Install.WantedBy = ["graphical-session.target"];Service.Type = "oneshot";Service.ExecStart = "${pkgs.megacmd}/bin/mega-cmd-server";};
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);#tabbrowser-tabs {visibility: collapse !important;}/* makes the treestyle tab view look cleaner */#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {display: none;}/* hides firefox's default tab bar */
dotfiles.shell.enable = true;# xdg.systemDirs.data = [# "/usr/share"# "/var/lib/flatpak/exports/share"# "${homeDirectory}/.local/share/flatpak/exports/share"# ];
dotfiles.shell.python.enable = true;dotfiles.gui.enable = true;dotfiles.gui.sway.enable = false;
imports = [../../firefox../../guiapps../../linux_desktop../../meganz.nix../../sway../../terminal_emulator];
imports = [../../../hm_modulesinput-modules.doom];dotfiles.shell.enable = true;dotfiles.shell.python.enable = true;
imports = [../../../hm_modules];
{config,pkgs,lib,dotfiles_lib,...}: letcfg = config.programs.meganz;inwith lib; {options.programs.meganz = with dotfiles_lib.options; {enable = mkEnableOption "Install meganz and optionally the configured gui app + systemd sync service.";sync.enable = mkDefaultEnabledOption "Enable a systemd service to start mega's sync in the background to initiate syncing any configured sync folders.";gui.enable = mkEnableOption "Install the gui mega app called MegaSync.";};config = mkIf cfg.enable {home.packages =[pkgs.megacmd]++ (if programs.meganz.gui.enablethen [pkgs.megasync]else []);systemd.user.services.mega-cmd-server-init = {Unit.Description = "Try to start mega-cmd when sway starts.";Install.WantedBy = ["graphical-session.target"];Service.Type = "oneshot";Service.ExecStart = "${pkgs.megacmd}/bin/mega-cmd-server";};};}
inherit (pkgs.stdenv.hostPlatform) isLinux;zoom-us = pkgs.zoom-us.overrideAttrs (old: {postFixup =old.postFixup+ ''wrapProgram $out/bin/zoom-us --unset XDG_SESSION_TYPE --set XDG_CURRENT_DESKTOP "GNOME"wrapProgram $out/bin/zoom --unset XDG_SESSION_TYPE --set XDG_CURRENT_DESKTOP "GNOME"'';});in {xdg.configFile."zoomus.conf".text = ''[General]GeoLocale=systemSensitiveInfoMaskOn=trueautoPlayGif=falseautoScale=truebForceMaximizeWM=falseblockUntrustedSSLCert=falsecaptureHDCamera=truechatListPanelLastWidth=230conf.webserver=https://us06web.zoom.usconf.webserver.vendor.default=https://zoom.usenable.host.auto.grab=trueenableAlphaBuffer=trueenableCloudSwitch=falseenableLog=trueenableMiniWindow=trueenableQmlCache=trueenableScreenSaveGuard=falseenableStartMeetingWithRoomSystem=falseenableTestMode=falseenableWaylandShare=Trueenablegpucomputeutilization=falsefake.version=flashChatTime=0forceEnableTrayIcon=trueforceSSOURL=host.auto.grab.interval=10isTransCoding=falselogLevel=infonewMeetingWithVideo=trueplaySoundForNewMessage=falsescaleFactor=1shareBarTopMargin=0sso_domain=.zoom.ussso_gov_domain=.zoomgov.comsystem.audio.type=defaulttimeFormat12HoursEnable=trueupcoming_meeting_header_image=useSystemTheme=false
cfg = config.programs.zoom;inwith lib; {options.programs.zoom = {enable = mkEnableOption "Enable zoom patched to work on wayland + sway";};
[AS]showframewindow=true
config = mkIf cfg.enable {home.packages = [(pkgs.zoom-us.overrideAttrs (old: {postFixup =old.postFixup+ ''wrapProgram $out/bin/zoom-us --unset XDG_SESSION_TYPE --set XDG_CURRENT_DESKTOP "GNOME"wrapProgram $out/bin/zoom --unset XDG_SESSION_TYPE --set XDG_CURRENT_DESKTOP "GNOME"'';}))];
[chat.recent]recentlast.session=
xdg.configFile."zoomus.conf".text = ''[General]GeoLocale=systemSensitiveInfoMaskOn=trueautoPlayGif=falseautoScale=truebForceMaximizeWM=falseblockUntrustedSSLCert=falsecaptureHDCamera=truechatListPanelLastWidth=230conf.webserver=https://us06web.zoom.usconf.webserver.vendor.default=https://zoom.usenable.host.auto.grab=trueenableAlphaBuffer=trueenableCloudSwitch=falseenableLog=trueenableMiniWindow=trueenableQmlCache=trueenableScreenSaveGuard=falseenableStartMeetingWithRoomSystem=falseenableTestMode=falseenableWaylandShare=Trueenablegpucomputeutilization=falsefake.version=flashChatTime=0forceEnableTrayIcon=trueforceSSOURL=host.auto.grab.interval=10isTransCoding=falselogLevel=infonewMeetingWithVideo=trueplaySoundForNewMessage=falsescaleFactor=1shareBarTopMargin=0sso_domain=.zoom.ussso_gov_domain=.zoomgov.comsystem.audio.type=defaulttimeFormat12HoursEnable=trueupcoming_meeting_header_image=useSystemTheme=false
home.packages =if isLinuxthenwith pkgs; [darktablekeepassxcgit-credential-keepassxcsignal-desktopwrite_styluszoom-us]else [];}
[zoom_new_im]is_landscape_mode=truemain_frame_pixel_pos_narrow="376,680"main_frame_pixel_pos_wide="1908,2120"'';};}
colors:primary:background: "0x232136"foreground: "0xe0def4"cursor:text: "0xe0def4"cursor: "0x56526e"vi_mode_cursor:text: "0xe0def4"cursor: "0x56526e"line_indicator:foreground: Nonebackground: Noneselection:text: "0xe0def4"background: "0x44415a"normal:black: "0x393552"red: "0xeb6f92"green: "0x3e8fb0"yellow: "0xf6c177"blue: "0x9ccfd8"magenta: "0xc4a7e7"cyan: "0xea9a97"white: "0xe0def4"bright:black: "0x6e6a86"red: "0xeb6f92"green: "0x3e8fb0"yellow: "0xf6c177"blue: "0x9ccfd8"magenta: "0xc4a7e7"cyan: "0xea9a97"white: "0xe0def4"hints:start:foreground: "#908caa"background: "#2a273f"end:foreground: "#6e6a86"background: "#2a273f"
config.systemd.user.services.swayidle = {Unit = {Description = "Sway Idle Manager";Documentation = "man:swayidle(1)";PartOf = ["graphical-session.target"];};
config = lib.mkIf config.dotfiles.gui.sway.idle.enable {systemd.user.services.swayidle = {Unit = {Description = "Sway Idle Manager";Documentation = "man:swayidle(1)";PartOf = ["graphical-session.target"];};
Service = {ExecStart = ''${pkgs.swayidle}/bin/swayidle -w \timeout 240 '${displayOff}' \resume '${displayOn}' \timeout 180 '${displayLock}' \resume 'swaymsg "${displayOn}"' \timeout 1200 'systemctl suspend'\resume 'swaymsg "${displayOn}"' \before-sleep '${displayLock}''';
Service = {ExecStart = ''${pkgs.swayidle}/bin/swayidle -w \timeout 240 '${displayOff}' \resume '${displayOn}' \timeout 180 '${displayLock}' \resume 'swaymsg "${displayOn}"' \timeout 1200 'systemctl suspend'\resume 'swaymsg "${displayOn}"' \before-sleep '${displayLock}''';};
{config,pkgs,...}: letwallpapers = "${config.home.homeDirectory}/dotfiles/hm_modules/gui/sway/wallpapers";in {wayland.windowManager.sway = {config.fonts.names = ["DejaVu Sans Mono" "FontAwesome5Free"]; # TODO don't hardcodeconfig.bars = [{command = "waybar";}];config.floating.criteria = [{app_id = "pavucontrol";}{app_id = "zenity";}{class = ".zoom";}];config.floating.titlebar = false;config.focus.mouseWarping = true;config.gaps.inner = 3;config.gaps.outer = 3;config.gaps.smartGaps = true;config.input."*".natural_scroll = "enabled";config.input."type:touchpad".tap = "enabled";config.output."*".bg = "${wallpapers}/1.jpg fill";config.startup = [{command = "${pkgs.kanshi}/bin/kanshi";always = true;}];config.window.titlebar = false;config.workspaceAutoBackAndForth = true;wrapperFeatures.base = true;wrapperFeatures.gtk = true;extraConfig = ''seat seat0 xcursor_theme breeze 62for_window [app_id="scratch_terminal"] move scratchpad, resize set 800 610exec ${pkgs.alacritty}/bin/alacritty --title=scratch_terminal'';};}
config.xdg.configFile."swappy/config".text = ''[Default]save_dir=$HOME/screenshotssave_filename_format=%Y%m%d-%H%M%S-screenshot.pngshow_panel=falseline_size=5text_size=20text_font=sans-serif'';config.home.packages = with pkgs; [grimslurpswappy];
config = lib.mkIf config.wayland.windowManager.sway.enable {xdg.configFile."swappy/config".text = ''[Default]save_dir=$HOME/screenshotssave_filename_format=%Y%m%d-%H%M%S-screenshot.pngshow_panel=falseline_size=5text_size=20text_font=sans-serif'';home.packages = with pkgs; [grimslurpswappy];};
config.home.packages = [nwg-drawernwg-bar];
config.home.packages =if config.wayland.windowManager.sway.enablethen [nwg-drawernwg-bar]else [];
wallpapers = "${config.home.homeDirectory}/dotfiles/nixpkgs/sway/wallpapers";in {imports = [./kanshi.nix./keybindings.nix./screenshots.nix./waybar.nix./swayidle.nix];config.wayland.windowManager.sway = {enable = true;config.fonts.names = ["DejaVu Sans Mono" "FontAwesome5Free"];config.bars = [{command = "waybar";}];config.floating.criteria = [{app_id = "pavucontrol";}{app_id = "zenity";}{class = ".zoom";}
dotfiles_cfg = config.dotfiles;cfg = dotfiles_cfg.gui.sway;inwith lib; {imports = [./kanshi.nix./keybindings.nix./screenshots.nix./waybar.nix./swayidle.nix./sway.nix
config.floating.titlebar = false;config.focus.mouseWarping = true;config.gaps.inner = 3;config.gaps.outer = 3;config.gaps.smartGaps = true;config.input."*".natural_scroll = "enabled";config.input."type:touchpad".tap = "enabled";config.output."*".bg = "${wallpapers}/1.jpg fill";config.startup = [{command = "${pkgs.kanshi}/bin/kanshi";always = true;}];config.window.titlebar = false;config.workspaceAutoBackAndForth = true;wrapperFeatures.base = true;wrapperFeatures.gtk = true;extraSessionCommands = ''export MOZ_ENABLE_WAYLAND=1export MOZ_DBUS_REMOTE=1'';extraConfig = ''seat seat0 xcursor_theme breeze 62for_window [app_id="scratch_terminal"] move scratchpad, resize set 800 610exec ${pkgs.alacritty}/bin/alacritty --title=scratch_terminal'';};
options.dotfiles.gui.sway = {enable = mkEnableOption "Use highly configured sway as the window manager.";idle.enable = mkEnableOption "Use my configured swayidle or not.";};config = mkIf cfg.enable {wayland.windowManager.sway = {enable = mkDefault cfg.enable;config.terminal = dotfiles_cfg.gui.terminal;};programs.waybar.enable = mkDefault cfg.enable;services.kanshi.enable = mkDefault cfg.enable;
# notifications daemonconfig.services.mako = {enable = true;anchor = "top-center";defaultTimeout = 2750;};
# notifications daemonservices.mako = {enable = mkDefault true;anchor = "top-center";defaultTimeout = 2750;};
config.services.blueman-applet.enable = true;config.services.gammastep = {enable = true;latitude = "36.174465";longitude = "-86.767960";};
services.blueman-applet.enable = mkDefault true;services.gammastep = {enable = mkDefault true;latitude = "36.174465";longitude = "-86.767960";};
config.home.packages = with pkgs; [wldashimvlibnotifympvpavucontrolplayerctlpulseaudiorangersource-code-proswaylock-effectswl-clipboard];
home.packages = with pkgs; [wldashimvlibnotifympvpavucontrolplayerctlpulseaudiorangerswaylock-effectswl-clipboard];
config.xdg.configFile."nwg-panel/drawer.css".source = ./nwg-panel.css;config.xdg.configFile."nwg-bar/style.css".source = ./nwg-bar.css;config.xdg.configFile."nwg-bar/icons".source = ./icons;config.xdg.configFile."nwg-bar/bar.json".text = ''[{"label": "Lock screen","exec": "${pkgs.swaylock-effects}/bin/swaylock -f -c 000000","icon": "${config.xdg.configHome}/nwg-bar/icons/system-lock-screen.svg"},{"label": "Sleep","exec": "systemctl hybrid-sleep","icon": "${config.xdg.configHome}/nwg-bar/icons/system-shutdown.svg"},{"label": "Logout","exec": "swaymsg exit","icon": "${config.xdg.configHome}/nwg-bar/icons/system-log-out.svg"},{"label": "Reboot","exec": "systemctl reboot","icon": "${config.xdg.configHome}/nwg-bar/icons/system-reboot.svg"},{"label": "Shutdown","exec": "systemctl -i poweroff","icon": "${config.xdg.configHome}/nwg-bar/icons/system-shutdown.svg"}]'';config.xdg.configFile."swaylock/config".source = ./swaylock.config;}
xdg.configFile."nwg-panel/drawer.css".source = ./nwg-panel.css;xdg.configFile."nwg-bar/style.css".source = ./nwg-bar.css;xdg.configFile."nwg-bar/icons".source = ./icons;xdg.configFile."nwg-bar/bar.json".text = ''[{"label": "Lock screen","exec": "${pkgs.swaylock-effects}/bin/swaylock -f -c 000000","icon": "${config.xdg.configHome}/nwg-bar/icons/system-lock-screen.svg"},{"label": "Sleep","exec": "systemctl hybrid-sleep","icon": "${config.xdg.configHome}/nwg-bar/icons/system-shutdown.svg"},{"label": "Logout","exec": "swaymsg exit","icon": "${config.xdg.configHome}/nwg-bar/icons/system-log-out.svg"},{"label": "Reboot","exec": "systemctl reboot","icon": "${config.xdg.configHome}/nwg-bar/icons/system-reboot.svg"},{"label": "Shutdown","exec": "systemctl -i poweroff","icon": "${config.xdg.configHome}/nwg-bar/icons/system-shutdown.svg"}]'';xdg.configFile."swaylock/config".source = ./swaylock.config;};}
}: {config.home.sessionVariables = {BROSWER = "firefox";};
}: letcfg = config.dotfiles.gui;inwith lib; {config = mkIf cfg.enable {pam.sessionVariables = {LANGUAGE = "en_US:en";LANG = "en_US.UTF-8";LC_NUMERIC = "en_US.UTF-8";LC_TIME = "en_US.UTF-8";LC_MONETARY = "en_US.UTF-8";LC_PAPER = "en_US.UTF-8";LC_NAME = "en_US.UTF-8";LC_ADDRESS = "en_US.UTF-8";LC_TELEPHONE = "en_US.UTF-8";LC_MEASUREMENT = "en_US.UTF-8";LC_IDENTIFICATION = "en_US.UTF-8";PAPERSIZE = "letter";};
config.pam.sessionVariables = {LANGUAGE = "en_US:en";LANG = "en_US.UTF-8";LC_NUMERIC = "en_US.UTF-8";LC_TIME = "en_US.UTF-8";LC_MONETARY = "en_US.UTF-8";LC_PAPER = "en_US.UTF-8";LC_NAME = "en_US.UTF-8";LC_ADDRESS = "en_US.UTF-8";LC_TELEPHONE = "en_US.UTF-8";LC_MEASUREMENT = "en_US.UTF-8";LC_IDENTIFICATION = "en_US.UTF-8";PAPERSIZE = "letter";};
targets.genericLinux.enable = mkDefault false;xdg.enable = mkDefault true;xdg.mime.enable = mkDefault true;
config.targets.genericLinux.enable = false;config.xdg.enable = true;config.xdg.mime.enable = true;# make sure all of the distro's default XDG_DATA_DIRS values are in hereconfig.xdg.systemDirs.data = ["${config.home.homeDirectory}/.nix-profile/share""${config.home.homeDirectory}/.nix-profile/share/applications"];}
# make sure all of the distro's default XDG_DATA_DIRS values are in herexdg.systemDirs.data = ["${config.home.homeDirectory}/.nix-profile/share""${config.home.homeDirectory}/.nix-profile/share/applications"];};}
userChrome = ''@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);/* hides firefox's default tab bar */#tabbrowser-tabs {visibility: collapse !important;}/* makes the treestyle tab view look cleaner */#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {display: none;}'';
{config,lib,pkgs,...}: letcfg = config.dotfiles.gui;inwith lib; {imports = [./alacritty.nix./zoom.nix./firefox.nix./linux_desktop.nix./sway];options.dotfiles.gui = {enable = mkEnableOption "Enables the GUI window manager and apps that I've cofnigured.";terminal = mkOption {type = types.str; # TODO maybe this should be a package instead, that would be nicer.default = "${config.programs.alacritty.package}/bin/alacritty";example = "/path/to/some/terminal/emulator/bin";description = mdDoc "The terminal program to pass to the window manager, by default alacritty.";};};options.programs = {darktable.enable = mkEnableOption "Installs darktable.";keepassxc.enable = mkEnableOption "Installs keepassxc.";signal.enable = mkEnableOption "Installs signal (the messaging app).";write-stylus.enable = mkEnableOption "Installs write_stylus.";};config = mkIf cfg.enable {# these programs we enable by default if gui.enable# but not all of the programs are (like write-stylus)programs.alacritty.enable = mkDefault cfg.enable;programs.darktable.enable = mkDefault cfg.enable;programs.firefox.enable = mkDefault cfg.enable;programs.keepassxc.enable = mkDefault cfg.enable;programs.signal.enable = mkDefault cfg.enable;programs.zoom.enable = mkDefault cfg.enable;# use sway by default if gui is enableddotfiles.gui.sway.enable = mkDefault cfg.enable;# this doesn't install the program but makes it so the gui app# is installed if the program is enabledprograms.meganz.gui.enable = mkDefault cfg.enable;# any of the programs that we're not creating config for we# just add to home.packageshome.packages = with pkgs;[]++ (if config.programs.darktable.enablethen [darktable]else [])++ (if config.programs.keepassxc.enablethen [keepassxc git-credential-keepassxc]else [])++ (if config.programs.darktable.enablethen [signal-desktop]else [])++ (if config.programs.write-stylus.enablethen [write_stylus]else []);};}
{config,lib,...}: letxdgConfigHome = config.xdg.configHome;cfg = config.programs.alacritty;in {config = with lib; {programs.alacritty.settings = {window.option_as_alt = "Both";font.size = mkDefault 16;import = ["${xdgConfigHome}/alacritty/themes/rose-pine.yml"];};# https://github.com/rose-pine/alacritty/raw/main/dist/rose-pine-moon.ymlxdg.configFile = mkIf cfg.enable {"alacritty/themes/rose-pine.yml".source = ./themes/alacritty-rose-pine.yml;};};}
{config,lib,pkgs,secrets,...}: letcfg = config.dotfiles.email;inwith lib; {options.dotfiles.email = {enable = mkEnableOption "enable email via mbsync";address = mkOption {type = types.str;example = "email@example.com";description = "The email address.";};real_name = mkOption {type = types.str;default = "Chris Cummings";example = "Chris Cummings";description = "The name associated with the email address.";};imap.host = mkOption {type = types.str;default = "imap.fastmail.com";example = "imap.fastmail.com";description = "the host url for imap for this email.";};smtp.host = mkOption {type = types.str;default = "smtp.fastmail.com";example = "smtp.fastmail.com";description = "the host url for smtp for this email.";};password_secret = mkOption {type = types.path;default = secrets.fastmail_password.path;example = "";description = "use rage to encrypt secret, pass it to this variable.";};};config = mkIf cfg.enable {programs.mu.enable = mkDefault cfg.enable;programs.msmtp.enable = mkDefault cfg.enable;programs.mbsync = {enable = mkDefault cfg.enable;extraConfig = ''CopyArrivalDate yes'';groups = {personal-inboxes = {"${cfg.address}" = [];};};};services.mbsync = {enable = mkDefault cfg.enable;frequency = "*:0/10";postExec = "${pkgs.mu}/bin/mu index";};# TODO create systemd oneshot job to run `mbsync --all`# and mu init# and mu index# so new systems are auto-setup# without having to run those commands manuallyaccounts.email.accounts = {"${primaryAddress}" = {inherit (cfg) address;userName = cfg.address;realName = cfg.real_name;primary = true;mbsync = {enable = true;create = "both";expunge = "both";remove = "both";extraConfig.account.PipelineDepth = 50;};msmtp.enable = mkDefault cfg.enable;imap.host = cfg.imap.host;smtp.host = cfg.smtp.host;passwordCommand = letname = "mbsync-password-command";in "${pkgs.writeShellApplication {inherit name;runtimeInputs = [pkgs.coreutils];text = "cat ${cfg.password_secret}";}}/bin/${name}";};};};}