<?xml version="1.0" encoding="US-ASCII" ?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.21b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
    <!-- Field: Doc-Info; Name: Misc; Value: +6spw7xRiXhun8uCbn1MSaOA2bP9w5dzaelBtm98HQmafyopwU66JC8DaGWGUbkL -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:fix="http://comfortsystemsusa.com/20231231" elementFormDefault="qualified" targetNamespace="http://comfortsystemsusa.com/20231231">
    <annotation>
      <appinfo>
        <link:roleType roleURI="http://comfortsystemsusa.com/role/Cover" id="Cover">
          <link:definition>00000001 - Document - Cover</link:definition>
          <link:usedOn>link:presentationLink</link:usedOn>
          <link:usedOn>link:calculationLink</link:usedOn>
          <link:usedOn>link:definitionLink</link:usedOn>
        </link:roleType>
        <link:linkbaseRef xlink:type="simple" xlink:href="fix-20231231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Presentation Links" />
        <link:linkbaseRef xlink:type="simple" xlink:href="fix-20231231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Label Links" />
        <link:linkbaseRef xlink:type="simple" xlink:href="fix-20231231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Definition Links" />
      </appinfo>
    </annotation>
    <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
    <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
    <import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd" />
    <import namespace="http://fasb.org/us-types/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd" />
    <import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
    <import namespace="http://xbrl.sec.gov/ecd/2023" schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd" />
    <import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd" />
    <import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd" />
    <import namespace="http://fasb.org/srt-types/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd" />
    <element id="fix_ReportedValueOfStockAwardsMember" name="ReportedValueOfStockAwardsMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_EquityAwardAdjustmentsMember" name="EquityAwardAdjustmentsMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_FairValueOfOutstandingAndUnvestedEquityAwardsGrantedInSameYearMember" name="FairValueOfOutstandingAndUnvestedEquityAwardsGrantedInSameYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_YearOverYearChangeInFairValueOfOutstandingAndUnvestedEquityAwardsMember" name="YearOverYearChangeInFairValueOfOutstandingAndUnvestedEquityAwardsMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_FairValueAsOfVestingDateOfEquityAwardsGrantedAndVestedInTheYearMember" name="FairValueAsOfVestingDateOfEquityAwardsGrantedAndVestedInTheYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_YearOverYearChangeInFairValueOfEquityAwardsGrantedInPriorYearsThatVestedInTheYearMember" name="YearOverYearChangeInFairValueOfEquityAwardsGrantedInPriorYearsThatVestedInTheYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_FairValueAtTheEndOfThePriorYearOfEquityAwardsThatFailedToMeetVestingConditionsInTheYearMember" name="FairValueAtTheEndOfThePriorYearOfEquityAwardsThatFailedToMeetVestingConditionsInTheYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_ValueOfDividendsOrOtherEarningsPaidOnStockOrOptionAwardsNotOtherwiseReflectedInFairValueOrTotalCompensationMember" name="ValueOfDividendsOrOtherEarningsPaidOnStockOrOptionAwardsNotOtherwiseReflectedInFairValueOrTotalCompensationMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_AverageReportedValueOfStockAwardsMember" name="AverageReportedValueOfStockAwardsMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_AverageEquityAwardAdjustmentsMember" name="AverageEquityAwardAdjustmentsMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_AverageFairValueOfOutstandingAndUnvestedEquityAwardsGrantedInSameYearMember" name="AverageFairValueOfOutstandingAndUnvestedEquityAwardsGrantedInSameYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_YearOverYearAverageChangeInFairValueOfOutstandingAndUnvestedEquityAwardsMember" name="YearOverYearAverageChangeInFairValueOfOutstandingAndUnvestedEquityAwardsMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_AverageFairValueAsOfVestingDateOfEquityAwardsGrantedAndVestedInTheYearMember" name="AverageFairValueAsOfVestingDateOfEquityAwardsGrantedAndVestedInTheYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_YearOverYearAverageChangeInFairValueOfEquityAwardsGrantedInPriorYearsThatVestedInTheYearMember" name="YearOverYearAverageChangeInFairValueOfEquityAwardsGrantedInPriorYearsThatVestedInTheYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_AverageFairValueAtTheEndOfThePriorYearOfEquityAwardsThatFailedToMeetVestingConditionsInTheYearMember" name="AverageFairValueAtTheEndOfThePriorYearOfEquityAwardsThatFailedToMeetVestingConditionsInTheYearMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="fix_AverageValueOfDividendsOrOtherEarningsPaidOnStockOrOptionAwardsNotOtherwiseReflectedInFairValueOrTotalCompensationMember" name="AverageValueOfDividendsOrOtherEarningsPaidOnStockOrOptionAwardsNotOtherwiseReflectedInFairValueOrTotalCompensationMember" abstract="true" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
</schema>
